Jasypt를 이용한 Spring Boot 애플리케이션 설정 정보 암호화 하기

Spring Boot의 application.yml(.properties)과 같은 설정 정보 파일에는 데이터 베이스 연결 정보나 API 키, 비밀번호와 같은 민감한 정보를 설정해야 하는 경우가 있다. 이러한 민감한 정보를 평문으로 설정하게 되면 간혹 정보가 노출되었을 때 심각한 문제를 초래 할 수 있다. Jasypt 라이브러리를 사용하여 어플리케이션의 설정 정보를 암호화하여 민감한 정보를 보호할 수 있다. 간단한 예제 코드와 함께 spring에서 Jasypt 라이브러리를 사용하는 방법에 대해서 정리해 보고자 한다.

java time과 java time convert 마스터가 되자

자바 애플리케이션 개발을 하다 보면 종종 문자열 타입의 시간 정보를 자바의 LocalDateTime 혹은 LocalDate, LocalTime과 같은 인스턴스로 변환을 하거나 역으로 원하는 시간 형식으로 문자열로 변환을 해야 하는 경우가 있다. 또한 지역 시간(timezone)에 맞도록 시간을 변경해야 하는 경우도 있을 것이다. 이번 포스팅에서는 java time과 java time convert(시간 변환)에 대해서 정리해 보고자 한다.

multipass – 가상 머신 쉽게 관리하자

Multipass는 쉽고 빠르게 가상 머신을 생성하고 관리할 수 있는 도구다. MacOS, Linux, Windows 등 다양한 운영체제에서 사용할 수 있으며, 단시간에 클라우드와 유사한 환경을 로컬에 구축할 수 있다. Multipass는 기본적으로 우분투 이미지를 제공하지만, 다른 이미지를 사용할 수도 있어 다양한 개발 환경을 지원한다.

Spring Boot JSON 자동 구성 및 설정

Spring Boot JSON 데이터 처리는 RESTful API를 구축하거나 데이터 전송을 수행할 때 필수적인 요소라고 할 수 있다.
Spring Boot는 기본적으로 Jackson 라이브러리를 사용하여 JSON 직렬화 및 역직렬화를 자동으로 처리한다. 따라서 개발자는 복잡한 설정 없이도 객체를 JSON으로 변환하고, JSON 데이터를 객체로 손쉽게 맵핑할 수 있다.
이번 포스팅에서는 Spring Boot의 JSON Auto Configuration 방식과 주요 설정 방법에 대해서 정리하고자 한다.

Spring Boot RestClient (ver 3.2)

지금까지 대표적으로 사용했던 HTTP 클라이언트 모듈은 WebClient와 RestTemplate가 대표적으로 사용되었다. 하지만 RestTemplate은 이제 maintenance 모드로 변경되었고 (deprecated는 아니다) WebClient는 강력하지만 단순한 동기 호출에는 좀 과한 면이 있었다.
이런 문제를 조금 더 개선해 줄 수 있는 HTTP 클라이언트 모듈이 Spring Framework 6.1 (Spring Boot 3.2) 부터 소개된 RestClient다. RestTemplate의 직관적인 API 디자인과 WebClient와 같이 fluent API를 결합하여 동기 방식의 HTTP 통신을 지원하는 RestClient에 대해서 정리하고자 한다.

spring boot docker compose support 로컬에서 인프라 올려서 테스트 하기 (spring boot 3.1)

애플리케이션 개발을 하면서 로컬에 docker로 인프라 환경을 구성하고 테스트 코드를 수행해 본 적이 있을 것이다. 별도의 인프라 환경을 구성하기 위해서 docker 엔진을 구동하고 docker compose 혹은 docker로 인프라 환경을 컨테이너로 올려서 테스트 코드를 돌리는 일은 참으로 번거로운 일이 아닐 수 없다.
하지만 spring boot docker compose support를 통해서 앞으로는 더욱 손쉽게 테스트를 위한 인프라를 손쉽게 구성할 수 있다. spring boot 3.1부터 지원되는 docker compose를 어떻게 사용하면 되는지 그 사용법에 대해서 정리해 보고자 한다.

Spring Data Redis Autoconfiguration 분석

고성능 인메모리 데이터베이스 스토어인 Redis는 탁월한 데이터 캐싱 및 검색 속도를 제공하며 많은 프로덕션 환경에서 활용되고 있다.
이에 발맞추어 Spring Data 프로젝트는 Redis 상호 작용에 대한 높은 수준의 추상화를 제공하여 개발자에게 최소한의 노력으로 Redis의 성능 이점을 활용하면서 기능이 풍부한 애플리케이션을 구축하는데 집중할 수 있도록 한다.
이번 포스팅에서는 Spring에서 제공하는 Redis 관련 Auto Configuration에 대해서 다뤄보고자 한다. (Lettuce 위주로 살펴봄)

SDKMAN으로 개발도구 버전 쉽게 관리하자

SDKMAN 은 Software Development Kit MANager의 약자로써 유닉스 환경에서 여러 소프트웨어 개발 키트를 손쉽게 관리할 수 있는 CLI 도구이다. SDKMAN 설치와 사용법에 대해서 간단히 정리하고 가겠다.

일반문서 암호문서 파헤치기 – apache tika 라이브러리 사용

Apache tika 라이브러리는 문서 파일에 대한 Mime Type을 탐지하고 파일의 내용과 여러 항목의 메타데이터를 추출할 수 있는 기능을 제공하는 라이브러리다. 단순히 파일의 확장자가 아닌 실제 파일의 내용을 기반으로 한 Mime Type을 알아야 해당 Mime Type에 맞는 적절한 파일 컨트롤을 할 수 있다. 이번 포스팅에서는 Tika 라이브러리를 사용하여 파일에 대한 Mime Type과 여러 가지 메타데이터를 추출하는 방법과 함께 MS Office, PDF 문서에 비밀번호가 설정된 경우에도 Mime Type을 확인해 볼 수 있는 방법을 소개하고자 한다.

MockMvc – Spring Boot Controller 테스트 필수템

Spring Boot Controller 테스트할 때 가장 널리 사용되는 도구가 MockMvc와 WebTestClient다. Spring Boot 3.X부터는 WebTestClient 사용 빈도가 점점 증가하고 있는 추세라고 하지만 MVC 모델에서는 아직도 MockMvc를 많이 사용하고 있다. 이번 포스팅에서는 MockMvc 사용법에 대해서 정리해 보고자 한다.