스택큐힙리스트

자바 스프링 개발 시작하기 - 15일차 실전 프로젝트 완주 본문

개발

자바 스프링 개발 시작하기 - 15일차 실전 프로젝트 완주

스택큐힙리스트 2025. 7. 23. 13:27
반응형

클린 코드로 마무리하는 To-Do API 리팩터링

드디어 실전 프로젝트 마지막 날입니다.
그동안 만들어온 To-Do API를 클린 코드 기준으로 리팩터링하고, Swagger로 문서화까지 마무리해보겠습니다.


✅ 모듈 통합 & 코드 리뷰

To-Do 프로젝트는 다음과 같은 구조로 구성되어 있었습니다:

  • Controller: 클라이언트 요청을 받음
  • Service: 비즈니스 로직 처리
  • Repository: DB와의 통신 담당
  • DTO: 계층 간 데이터 전달 객체

마지막 단계에서는 전체 코드를 정리하며 다음 기준으로 리팩터링을 진행했습니다:

  • 메서드 책임 분리: 하나의 메서드는 하나의 일만 하도록
  • 네이밍 통일성 확보: 직관적인 이름으로 명확히
  • 중복 제거: 반복되는 코드는 유틸리티로 추출
  • 예외 처리 일관성: 커스텀 예외 + 전역 핸들러 활용
  • 응답 포맷 통일: ApiResponse<T> 형식으로 JSON 응답 일관화

이 과정을 통해 협업 가능한 코드, 유지보수 쉬운 코드로 발전시켰습니다.


📘 Swagger/OpenAPI로 API 문서 자동화

API를 개발했다면, 문서화는 필수입니다.
스프링 환경에서는 SpringDoc + OpenAPI 조합이 가장 많이 사용됩니다.

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

설정만 추가하면 /swagger-ui/index.html 주소에서 자동으로 문서를 확인할 수 있습니다.
아래 내용을 문서에 포함시켜야 실용적입니다:

  • 요청/응답 스펙
  • HTTP Method
  • Path Variable 및 Query Parameter 설명
  • HTTP Status 코드 의미

추가로 @Operation, @Parameter, @Schema 같은 어노테이션을 활용해 더 정교하게 문서를 다듬을 수 있습니다.


🚀 최종 배포까지

마지막 단계는 프로덕션 서버에 배포입니다.
이전 배포 자동화 파트에서 만든 GitHub Actions 워크플로우를 통해 브랜치 머지 시 자동 배포되도록 구성해 두었다면, 이제 코드 Push만 해도 서버가 자동으로 갱신됩니다.

프로젝트 배포 후 확인사항:

  • Swagger 문서에 실제 서버 주소 반영 여부
  • CORS 설정
  • API 정상 작동 여부
  • 로깅/모니터링 도구 연동 여부 (Actuator 등)

🎯 마무리하며

15일간의 여정을 통해 단순한 자바 문법부터 시작해서
진짜 동작하는 To-Do 애플리케이션을 직접 만들어보고 배포까지 경험했습니다.

이제 여러분의 프로젝트에 클린 코드, TDD, 보안, 문서화, 배포 자동화 등의 기술을 실전처럼 녹여낼 수 있을 거예요.

다음은 이 프로젝트를 더 확장해나가기 위한 파생 주제들입니다👇

반응형
Comments