🍃SpringBoot 5

1. Spring Data JPA 이론: SQL 중심적인 개발의 문제점과 JPA 등장

1. Spring Data JPA: SQL 중심적인 개발의 문제점1.1 SQL에 의존하는 개발의 한계자바, C# 처럼 객체 지향 언어로 애플리케이션을 개발하면서, 데이터 저장소로는 대부분 관계형 데이터베이스(RDB)를 사용합니다. 이 조합은 너무나 보편적이어서 자연스럽게 느껴지지만, 실제 개발을 깊이 해보면 근본적인 불편함을 계속 마주하게 됩니다. 불편함이라는 문제의 출발점은 단순합니다. 객체를 데이터베이스에 저장하려면 반드시 SQL이 필요하다는 점입니다.객체를 한 개 저장한다고 해서 save() 버튼 하나로 끝나지 않습니다. INSERT, SELECT, UPDATE, DELETE 같은 모든 CRUD 작업을 위해 개발자는 SQL을 직접 작성해야만 합니다. 이 순간부터 애플리케이션은 점점 객체 중심이 아니..

🍃SpringBoot 2026.01.10

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

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