Spring Cloud Config Server가 정적 페이지를 응답하지 않은 이유

Config Server에 간단한 관리용 페이지를 하나 붙이려 했는데, /tools/properties-manager.html을 요청하자 HTML 대신 JSON 설정 응답이 내려왔어요. Spring REST Docs로 API 문서까지 깔끔하게 정리해뒀는데, 정작 그 문서를 보여줄 페이지도 열리지 않는 상황이었습니다. 처음엔 정적 리소스 경로 설정 문제인 줄 알았습니다. classpath:/static/에…

(byte)167이 -89로 표시되는 이유

Java 언어로 TCP 소켓을 통해 IP 정보를 바이트 배열로 전송하는 로직을 구현하고 있었다. 숫자 167을 바이트 배열에 담아 전송하기 위해서 (byte)167 이렇게 강제 형 변환 과정을 거쳤다. 변환된 값을 출력해서 어떻게 전송되는지 확인해보려고 했는데 -89 라는 값이 표시되었다. 왜 내가…

@SpringBootTest 컨텍스트 캐싱

@SpringBootTest 테스트 실행 시간 줄이기

컨텍스트 캐싱 스프링부트를 사용해 개발된 애플리케이션은 구동할 때 애플리케이션 컨텍스트와 필요한 것들을 미리 준비하는 시간이 소요됩니다. Junit5 를 사용하여 통합 테스트를 할 때도 역시 테스트용 애플리케이션 컨텍스트를 준비하는 과정이 필요합니다. 실행해야 할 테스트가 10개 있을 때 각 테스트가 실행 될…

@SpringBootTest 관련 애너테이션 정리

@SpringBootTest 관련 애너테이션 정리

이번 글에서는 Junit5와 함께 Spring Test Context Framework를 사용해서 통합 테스트 코드 작성 시 자주 사용하는 애너테이션에 대해 알아보겠습니다. Spring이 제공하는 @SpringBootTest를 사용하면 스프링 프레임워크 환경에서 동작하는 통합 테스트 코드를 작성할 수 있습니다. 예를 들어 스프링 IoC 컨테이너를 통해 Bean생성하고…

LocalDateTime.now() 테스트 방법

LocalDateTime.now(ZoneId) 메서드 테스트하기

이번 글에서는 LocalDateTime.now(ZoneId)이 생각하는 대로 동작하는지 확인하기 위해 테스트 코드를 작성했던 일에 대해서 알아보겠습니다. Java8 부터 제공되는 유틸 클래스인 LocalDateTime이 제공하는 LocalDateTime.now(ZoneId) 메서드는 특정 타임존에 해당하는 현재 시간을 반환합니다. 즉, 고정된 값이 아니라 매 초 다른 값을 반환한다는 것을 의미합니다….

ObjectMapper 사용법

JSON을 DTO로 변환하는 방법 (ObjectMapper 사용법)

이번 글에서는 Json 파싱을 위한 라이브러리 중 하나인 jackson-databind에서 제공하는 ObjectMapper 객체를 사용하는 방법을 정리해보겠습니다. ObjectMapper 객체는 JSON 문자열을 파싱해서 Obejct로 변환하는 역할을 합니다. 대표적인 세 가지 JSON 유형으로, 단일 객체 유형, 배열에 객체가 포함된 유형, 단일 객체가 객체 배열을…

람다와 Stream 예제로 이해하기

람다, Stream 예제로 이해하기

Java에서 지원하는 람다와 스트림은 코드를 더 간결하고 유지보수하기 좋은 코드를 작성하는 데 큰 도움이 됩니다. 이번 글에서는 람다와 Stream 예제 코드를 통해 기본적인 구조를 파악해보고 기본적인 설명과 함께 이들을 활용하여 코드를 어떻게 더 간결하고 효율적으로 작성할 수 있는지 살펴보겠습니다. 람다가…

Optional 예제로 배우기

Optional 예제로 이해하기 (많이 쓰이는 패턴 정리)

어떤 객체가 예상치 못하게 null이 되었을 때 그 객체의 메서드를 호출하면 NullPointerException이 발생합니다. 그래서 우리는 메서드를 호출하기 전에 객체가 null인지 확인하기 위한 코드를 반복적으로 추가하게 됩니다. 똑같은 예외 처리를 반복하다 보니 좀 더 효율적인 null 처리 방법을 찾게 되었고, 이를…

OpenFeign 예제로 배우기

Spring Cloud OpenFeign 예제로 배우기

Spring Cloud OpenFeign은 스프링에서 제공하는 오픈소스 HTTP Client 입니다. 애플리케이션 내부적으로 다른 시스템과 HTTP 통신을 해야 할 때 간편하게 사용할 수 있습니다. OpenFeign 예제로 사용법을 간단하게 배워 봅시다. 간단한 Client Application과 Server Application을 만들어서 테스트합니다. 그런데 서로 다른 애플리케이션이 통신하는…

jjwt 사용 방법

JWT 생성 및 검증하기 (jjwt 사용 방법)

이번 글에서는 jjwt(Java Json Web Token)라는 오픈소스 라이브러리를 사용해서 JWT를 생성하고 검증하는 방법을 알아보겠습니다.jjwt 사용 방법을 이해하실 수 있도록 기본적인 JWT 생성 예시와 JWT 검증 예시, 테스트 코드를 작성해 보았습니다. https://jwt.io/libraries 👈여기에서 JWT를 생성하고 검증하기 위해 제공되는 오픈소스 라이브러리들을 찾을…