https://www.youtube.com/watch?v=NaeXpswLvxk&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=2
함수/ 메서드/ 클래스가 너무 커지면, 프로그램 분석 & 수정이 어려워 진다.
ex : if-else, if 중첩 과다, 코드 안에서 중복 발생 등
이런 경우, 필요한 기술은 나누기
의미가 있는 단위로 코드/구성 요소를 나누어야 한다.
패턴은 나누는 기술의 전형적인 예시
- 웹 개발 : 컨트롤러 - 서비스 - DAO
- DDD : 엔티티, 밸류, 레퍼지토리
- 디자인 패턴
나누기는 기능을 여러 작은 기능으로 분리하는 것
나누기 수행 결과는 하위 기능들이 메서드나 클래스로 분리된다.
기능을 분리하는 기준은?
기능에서 '의미' 있는 하위 기능 단위로 나누는 시도가 어느정도 의미 있게 나눌 수 있어 보임.
- ex : 주문 취소 기능
- 취소 사실 통지 vs PUSH 테이블에 insert
- 결제 승인 취소 vs PG사가 제공하는 API 실행
나누기를 잘하면
구조의 복잡도가 증가하지만 상위 수준에서 실행 흐름을 이해하기 좋다.
코드 변경이 쉬워질 가능성이 높다
'클린코드' 카테고리의 다른 글
WHAT과 HOW로 나눠 생각하기 (0) | 2023.02.16 |
---|---|
변수 아껴 사용하기 (0) | 2023.01.27 |
10. 클래스 (1) | 2022.10.29 |
6. 객체와 자료구조 (1) | 2022.10.27 |
5. 형식 맞추기 (0) | 2022.10.26 |
댓글