기본 설계 |
JPA |
매우 높음 |
ORM 기반의 DB 연동, Entity 관리의 핵심 |
|
Service Layer |
매우 높음 |
비즈니스 로직 분리의 핵심 계층 |
|
DTO |
매우 높음 |
계층 간 데이터 전달 객체, 보안 및 응답 제어 |
|
DAO/Repository |
매우 높음 |
데이터 접근 로직을 캡슐화 |
|
ResponseEntity |
매우 높음 |
HTTP 응답 제어 (status, body, header) |
|
전역 Exception 처리 |
매우 높음 |
예외 통일 및 클라이언트 응답 일관성 확보 |
|
TDD / 테스트 코드 |
매우 높음 |
안정성과 유지보수를 위한 핵심 |
코딩 스타일 |
Setter 제한 |
높음 |
무분별한 외부 상태 변경 방지 (불변성 유지) |
|
Builder 패턴 |
높음 |
DTO/Entity 생성 시 가독성과 안정성 확보 |
|
Validator |
높음 |
입력 값 검증, 유효성 확보 |
API 응답 품질 |
공통 응답 포맷 (ApiResponse) |
높음 |
성공/실패 응답의 일관성 유지 |
|
에러 코드 Enum화 |
높음 |
오류 상황의 명확한 정의와 대응 |
보안 |
Spring Security + JWT |
높음 |
인증/인가 필수 요소 |
|
CORS 설정 |
중간 |
클라이언트 도메인 접근 허용 여부 제어 |
|
입력 Sanitization |
높음 |
보안 위협(XSS/SQL Injection 등) 차단 |
성능/확장성 |
Lazy/Eager Loading 전략 |
높음 |
성능 최적화 및 N+1 문제 방지 |
|
QueryDSL |
중간 |
복잡한 조회 쿼리 표현력 강화 |
|
캐싱(Redis 등) |
중간 |
읽기 성능 최적화 |
|
AOP 기반 로깅 |
중간 |
요청/응답 및 성능 분석 로그 자동화 |
|
트레이싱 (Sleuth/Zipkin) |
중간 |
요청 흐름 추적, 장애 분석 |
문서화 |
Swagger / RestDocs |
높음 |
API 명세 공유, 테스트 편의성 향상 |
운영/배포 |
Actuator |
중간 |
시스템 헬스체크 및 모니터링 |
|
Dockerize |
중간 |
환경 이식성 확보 |
|
CI/CD (GitHub Actions 등) |
중간 |
자동 테스트/배포 파이프라인 |
기타 생산성 |
ModelMapper / MapStruct |
중간 |
DTO ↔ Entity 변환 자동화 |
|
코드 컨벤션 / 정적 분석 |
중간 |
코드 품질 유지 (Checkstyle, SonarLint 등) |
|
모듈 분리 (멀티모듈) |
중간 |
유지보수성과 독립성 향상 |