2025/10 5

Spring Boot: Spring Data JPA With Auditing

질문의 배경최근까지 프로젝트에서 항상 Spring Data Jpa에서 제공하는 Auditing 기능을 사용하지 않고, 각 엔티티 안에서 직접 관리했습니다. 그 이유는 새로운 생성을 하면 @CreatedBy(Date), @LastModifiedBy(Date)가 함께 정보가 저장되는 것이 싫었습니다. 새로운 생성은 @LastModifiedBy(Date) 필드가 null 이어야만 하고, 수정할 때만 반영되는 것이 올바르다고 생각했기 때문이에요. 하지만 정책 관점에서의 차이이므로 이번 기회에 다시 오랜만에 Auditing 기능을 학습과 함께 다른 멀티 모듈 환경에서 Auditing 구성을 어떻게 하는지 학습하기 위한 목적으로 정리한 글 입니다.1. Auditing 이해하기Auditing은 엔티티에 누가, 언제 ..

🍃SpringBoot 2025.10.23

Spring Boot: Gradle(+ 멀티 모듈 고도화 전략 + 의존성 버전 관리)

질문의 배경최근 Spring Boot 프로젝트를 생성할 때 99%는 Gradle-Groovy 를 선택합니다. build.gradle 파일을 통해 필요한 라이브러리를 간편하게 관리하고, Github Action 혹은 AWS 인스턴스에서 배포할 때 gradlew 명령으로 쉽게 배포할 수 있었습니다. 하지만 실무와 근접한 프로젝트를 구성하거나 commons 처럼 라이브러리 모듈을 구현하기 위해서는 라이브러리 버전 관리가 필요합니다. 자연스럽게 Gradle을 좀 더 자세히 알아야 할 필요성 느끼게 되면서 정리하게 된 글 입니다. 1. GradleGradle은 자바, C++, 안드로이드 등 다양한 프로그래밍 언어로 작성된 소프트웨어의 빌드 및 관리를 자동화하는 오픈소스 도구입니다.(빌드 자동화 도구)프로젝트의 의..

🍃SpringBoot 2025.10.22

Spring Boot: 멀티 모듈

질문의 배경멀티 모듈은 단어의 의미 그대로 여러 개의 모듈로 구성된 구조입니다. 구체적으로, 각 모듈을 여러 개의 작은 독립적인 모듈로 나누어 관리하는 소프트웨어 구조를 의미합니다. 그러나 이 사실만으로는 "모듈보다는 패키지로 관리하는 것이 더 쉽고 간편하다는 생각"이 들 수 있습니다. 그래서 멀티 모듈의 이해와 활용 방법을 공부하기 위해 작성된 내용입니다.1. 멀티 모듈 장점멀티 모듈은 각 모듈을 여러 개의 작은 독립적인 모듈로 나누어 관리하는 소프트웨어 구조 입니다.멀티 모듈 사용의 주요 이유는다음과 같습니다. 1. 코드 재사용성 향상여러 프로젝트에서 공통으로 사용하는 코드(예: 엔티티, 유틸리티 함수 등)를 별도의 모듈로 만들어 코드 중복을 제거하고 효율적으로 재사용할 수 있습니다. 2. 명확한 모..

🍃SpringBoot 2025.10.22

MySQL: useSSL의 대안 sslMode

질문의 배경MySQL 데이터베이스 URL을 보면 늘 useSSL이 눈에 띄는데, “SSL = HTTPS처럼 CA 인증서를 두고 통신하는 거 아냐?”라는 의문이 먼저 떠올랐습니다. 정확히 어떤 인증·암호화 매커니즘으로 동작하는지, 그리고 MySQL 8.0 이상에서 이제는 useSSL 대신 사용하는 sslMode 을 올바르게 사용하는 방법을 정리하고 싶었습니다. useSSL과 sslMode는 데이터베이스 연결 시 SSL/TLS 암호화 방식을 설정하는 데 사용되는 옵션입니다. JDBC URL이나 DataSource 속성에서만 쓰는 연결(세션) 단의 정책입니다. MySQL Connector/J 8.0부터 useSSL은 더이상 권장되지 않는 구식 옵션이며, sslMode가 더 정교하고 안전한 연결을 위해 도입되었..

🐬MySQL 2025.10.21

Spring Boot: Docker Compose와 application.yml 설정 기준

질문의 배경Docker Compose와 application-dev.yml 파일에서 둘 다 설정이 가능한 Character Set, Collation, TimeZone, SQL Mode 등의 코드를 중복되게 작성한 코드를 보면서 문득 궁금증이 생겼습니다. Docker Compose와 application.yml에서 설정은 "무엇을 기준으로 설정할까?"에 대해 스스로 질문을 답변하는 정리 내용입니다.1. 설정 기준Docker Compose와 application.yml의 설정 기준을 크게 바라보면 "무엇을 제어하는가"에 따라서 명확하게 구분합니다.Docker Compose: 컨테이너(인프라) 환경을 설정application.yml: 해당 컨테이너에서 실행되는 애플리케이션의 동작을 설정1.1 Docker C..

🍃SpringBoot 2025.10.21