클린코드 발자국 2주차
## 5. 코드 다듬기
### ✨ 요약
- 주석이 많다는 것은 코드가 비즈니스 로직을 명확히 반영하지 못했다는 신호일 수 있다.
- 코드만으로도 의미를 전달할 수 있도록 가독성을 높이는 것이 중요하다.
- 메서드와 변수 정렬 방식에도 신경 쓰자.
- public → private
순서, 상태 변경 > 판별 > 조회 순서를 유지하면 가독성이 올라간다.
- 패키지 구조를 의미 있게 나누는 것이 중요하다.
- 너무 세밀하게 나누면 관리가 어렵고, 너무 큰 단위로 묶으면 유지보수가 어렵다.
- 프로젝트의 규모와 요구사항에 맞는 적절한 구조를 고민해야 한다.
---
## 6. 리팩토링 연습
### ✨ 요약
- 리팩토링은 단순한 코드 변경이 아니라, 코드의 응집도를 높이고 결합도를 낮추는 과정이다.
- 리팩토링을 할 때는 단순한 코드 변경이 아니라, 객체 간의 관계와 책임을 다시 한번 점검하는 것이 중요하다.
- DIP(의존 관계 역전 원칙)를 고려하면서 설계해야 한다.
- 의존성을 인터페이스에 두고, 구체적인 구현체를 변경할 수 있도록 설계하면 유연성이 증가한다.
- 일급 컬렉션의 개념을 적극적으로 활용해야겠다.
- 컬렉션을 직접 노출하는 것은 유지보수 측면에서 위험하므로, 이를 감싸는 클래스를 활용하면 더 안전하다.
---
## 7. 기억하면 좋은 조언들
### ✨ 요약
- 리팩토링과 코드 리뷰는 꾸준히 해야 한다.
- 직접 코드를 개선해보면서 배우는 것이 가장 좋은 학습법이다.
- 오버 엔지니어링을 피하기 위해 현실적인 선택을 하자.
- 너무 많은 추상화나 인터페이스는 오히려 유지보수를 어렵게 만들 수 있다.
- "한계까지 사용해본 개발자가 적정 수준을 더 잘 안다."
- 새로운 기술을 도입할 때는 충분히 사용해보고, 어느 수준에서 활용해야 할지 감을 잡아야 한다.
---
## 8. Outro
### ✨ 요약
- 처음부터 완벽한 추상화를 만들려고 하기보다는, 개선해 나가는 과정이 중요하다.
- 개발을 하면서 추상화의 필요성이 점점 더 명확해지는 순간이 있다.
- 이를 경험하면서 더 좋은 설계를 할 수 있게 된다.
- 변경이 용이한 코드를 작성하는 것이 가장 중요하다.
- 코드의 가독성을 유지하면서도, 변경이 필요할 때 쉽게 수정할 수 있도록 구조를 만들어야 한다.
---
## 최종 결론
- 객체 지향 설계의 핵심은 변경에 유연한 구조를 만드는 것
- 좋은 코드는 단순히 동작하는 코드가 아니라, 이해하기 쉽고 유지보수하기 쉬운 코드
- 완벽한 설계는 존재하지 않으며, 지속적인 개선을 통해 더 나은 구조를 찾아가는 과정이 중요하다.
댓글을 작성해보세요.