Clean Code] 코드 작성에 대한 고찰
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보 개발자 및 중급 개발자
- 코드 가독성/유지보수성 향상이 필요한 프로젝트 팀원
- OOB(Out of Box) 개발 습관을 개선하고자 하는 개발자
핵심 요약
- 변수/DTO 이름은 DB 컬럼이 아닌 UI 사용 목적에 맞춰 명확하게 지정 (예:
reference1
→iconName
) - 메서드 분리는 도메인 중심의 비즈니스 로직에 기반 (예:
createRole()
/updateRole()
은Role
도메인 내부에 구현) - 3-Layer Architecture 패턴 준수 (Service Layer는 비즈니스 흐름만, Domain Layer는 상태/행위 집중)
섹션별 세부 요약
1. 변수/DTO 명명 규칙
- DB 컬럼명과 동일한 필드명 사용은 UI 사용 목적을 반영하지 않아 혼란 유발
- UI에서의 역할을 반영한 명명이 가독성 향상에 기여 (예:
nameValue
→categoryValue
) - 리뷰 피드백을 통해 명명 기준을 '업무 역할 기반'으로 전환
2. 메서드 분리 기준
- 메서드는 '도메인 중심의 비즈니스 행위'에 따라 분리 (예:
Role
도메인 내create()
/update()
메서드) - Service Layer는 비즈니스 흐름만 유지, Domain Layer는 상태/행위 집중
@Transactional
어노테이션을 통해 도메인 내부 로직과 DB 연동 강화
3. 3-Layer Architecture 적용 사례
- Service Layer: 요청 검증 및 흐름 관리 (예:
createRole()
은Role
도메인 생성 호출) - Domain Layer: 상태 및 핵심 비즈니스 로직 집중 (예:
Role
클래스 내create()
메서드) - Builder Pattern을 통해 도메인 생성 로직을 내부화 (예:
Role.create(request)
)
결론
- 코드는 '말'로 작성을 해야 하므로, UI 역할/도메인 행위에 기반한 명명과 메서드 분리가 핵심
- 3-Layer Architecture를 준수하며, Service Layer는 흐름만, Domain Layer는 상태/행위에 집중
- 리뷰 피드백을 통해 '감' 기반 개발에서 '기준' 기반 개발로 전환