Java Refactor로 깔끔한 코드로: 중급 백엔드 개발자 위한 리팩토링 전략
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

혼란에서 깔끔한 코드로: 제 2회 Java 리팩토링 여정

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 중급 이상의 백엔드 개발자
  • DDD(도메인 주도 설계) 및 Clean Architecture 패턴 적용 경험자
  • 코드 리팩토링과 아키텍처 개선에 관심 있는 개발자

핵심 요약

  • @RestController@Bean을 활용한 모놀리식 컨트롤러 분리
  • 컨트롤러, 서비스, 리포지토리, 도메인 엔티티로 4단계 분리
  • nameStartsWithUppercaseValidator() 생성을 통해 도메인 외 인프라 로직 분리
  • config 패키지로 이동하여 DDD 원칙 준수
  • Utils 클래스countLetters() 메서드 추가로 무용한 코드 재사용
  • 입력 이름의 문자 수 계산을 통해 의미 있는 처리 로직 강화

섹션별 세부 요약

1. **모놀리식 컨트롤러의 문제점**

  • ControllerServiceModelRepoControllerHTTP API, 비즈니스 로직, 메모리 저장소를 혼합
  • Tight Coupling으로 인해 테스트 불가능유지보수 어려움

2. **Clean Architecture 적용: 4단계 분리**

  • ThingController/ItemController (HTTP API)
  • ThingService/ItemService (비즈니스 로직)
  • ThingRepository/ItemRepository (데이터 액세스)
  • Thing/Item (도메인 엔티티)
  • 결과: 테스트 가능성아키텍처 원칙 준수

3. **무용한 `uselessBean`의 재활용**

  • nameStartsWithUppercaseValidator() 빈 생성으로 비즈니스 규칙 강화
  • @Bean을 통해 도메인 외 인프라 로직 분리
  • config 패키지 이동으로 DDD 원칙 준수

4. **Utils 클래스의 재사용**

  • countLetters() 메서드 추가로 입력 이름의 문자 수 계산
  • 컨트롤러에서 로깅을 통해 의미 있는 처리 로직 강화

결론

  • Clean ArchitectureDDD 적용을 통해 코드의 유지보수성과 확장성 향상
  • 도메인 외 로직은 config 패키지로 분리하는 것이 아키텍처 정확성 보장
  • 작은 리팩토링장기적인 코드 품질 개선에 기여
  • 다음 단계: Clean Architecture 레이어 도입 및 DDD 기반 도메인 모델링 적용 예정