(byte)167이 -89로 표시되는 이유
Java 언어로 TCP 소켓을 통해 IP 정보를 바이트 배열로 전송하는 로직을 구현하고 있었다. 숫자 167을 바이트 배열에 담아 전송하기 위해서…
"작은 성공이 쌓여 산을 이루면 무너지지 않는다."
Java 언어로 TCP 소켓을 통해 IP 정보를 바이트 배열로 전송하는 로직을 구현하고 있었다. 숫자 167을 바이트 배열에 담아 전송하기 위해서…
객체를 구현할 때는 항상 테스트하기 쉽게 설계 되었는지 점검해야 한다. 개발자가 실행 결과를 직접 눈으로 확인하는 것이 아니라 테스트 실행…
ORM(Object-Relational Mapping) 라이브러리를 사용한 코드를 작성하면서 발생할 수 있는 N+1 문제를 이해하고, N+1 문제 발생 시 조치 방법에 대해 알아보자….
Spring Cloud Config 동작 방식 MSA 구조의 프로젝트를 진행하다 보면 많은 수의 애플리케이션(마이크로 서비스)이 만들어집니다. 만약 10개의 애플리케이션이 동일하게 사용하는…
Spring Boot 애플리케이션을 개발하다 보면 외부 설정 파일(application.yaml)을 관리하는 방법에 대해 고민하게 됩니다. 애플리케이션이 실행되는 환경에 따라서 달라지는 값들이 있습니다….
컨텍스트 캐싱 스프링부트를 사용해 개발된 애플리케이션은 구동할 때 애플리케이션 컨텍스트와 필요한 것들을 미리 준비하는 시간이 소요됩니다. Junit5 를 사용하여 통합…
이번 글에서는 Junit5와 함께 Spring Test Context Framework를 사용해서 통합 테스트 코드 작성 시 자주 사용하는 애너테이션에 대해 알아보겠습니다. Spring이…
이번 글에서는 LocalDateTime.now(ZoneId)이 생각하는 대로 동작하는지 확인하기 위해 테스트 코드를 작성했던 일에 대해서 알아보겠습니다. Java8 부터 제공되는 유틸 클래스인 LocalDateTime이…
이번 글에서는 Json 파싱을 위한 라이브러리 중 하나인 jackson-databind에서 제공하는 ObjectMapper 객체를 사용하는 방법을 정리해보겠습니다. ObjectMapper 객체는 JSON 문자열을 파싱해서…
Java에서 지원하는 람다와 스트림은 코드를 더 간결하고 유지보수하기 좋은 코드를 작성하는 데 큰 도움이 됩니다. 이번 글에서는 람다와 Stream 예제…