pile·
최신
  1. 백엔드·네이버페이네이버페이·

    Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록

    문제Spring Data JDBC 의 Composite ID 적용을 위해 Spring Boot 3.5 → 4.0.1 업그레이드 시 Spring Batch, Kotlin, Jackson 등 전체 스택 메이저 전환 필요.

    접근Spring Boot 4 / Spring Batch 6 / Spring Framework 7 / Kotlin 2.3 / Jackson 3 / Kotest 6 / Gradle 9 / ojdbc11 순차 업그레이드. Composite ID 는 Persistable 인터페이스로 구현, JdbcDefaultBatchConfiguration 상속으로 메타데이터 저장.

    결과기술 부채 해결 + 장기 유지보수성 개선. 운영 DB 접근 정책 충돌을 사전 식별해 안정적 배포 달성.

    #kotlin#spring#spring-boot+3
  2. 아키텍처·카카오페이카카오페이·

    카카오페이 여신코어 DDD(Domain Driven Design, 도메인 주도 설계)로 구축하기

    문제카카오페이 후불결제(BNPL) 의 여신코어는 대출·심사·승인 같은 복잡한 도메인 규칙을 다룬다. 절차적 설계로는 도메인 변경이 곧 코드 곳곳의 수정으로 번지기 쉽다.

    접근DDD(Domain Driven Design) 를 적용. 도메인 전문가와 공용하는 유비쿼터스 언어를 정의하고, Spring Multi Module 환경에서 도메인·애플리케이션·인프라 모듈을 분리한다. Entity 와 Repository 의 책임을 명확히 한다.

    결과도메인 규칙 변화가 도메인 모듈 안에서 닫힌다. 신규 시스템 구축 시 DDD 적용 패턴과 실패 포인트를 코드 레벨로 공유.

    #ddd#spring#domain-modeling+1
  3. 아키텍처·카카오페이카카오페이·

    Spring 기반 멀티모듈 프로젝트 환경변수 설정 방법

    문제멀티모듈 프로젝트에서 각 모듈별 환경변수 관리 방식이 팀마다 상이하고 일관성 부족.

    접근spring.config.import, spring.profiles.include, @PropertySource, @Profile + @PropertySource 조합 등 4 가지 방식 비교.

    결과@Profile + @PropertySource 조합 선택. 프로필별 명시적 설정 클래스로 "어떤 프로필에서 어떤 파일 수정할지" 명확해져 유지보수성 향상.

    #spring#environment-variables#multi-module+2