💸딱 하루, 인프런 천원샵 오픈!

클린코드 발자국 2주차

## 5. 코드 다듬기

### 요약

- 주석이 많다는 것은 코드가 비즈니스 로직을 명확히 반영하지 못했다는 신호일 수 있다.

- 코드만으로도 의미를 전달할 수 있도록 가독성을 높이는 것이 중요하다.

- 메서드와 변수 정렬 방식에도 신경 쓰자.

- public → private 순서, 상태 변경 > 판별 > 조회 순서를 유지하면 가독성이 올라간다.

- 패키지 구조를 의미 있게 나누는 것이 중요하다.

- 너무 세밀하게 나누면 관리가 어렵고, 너무 큰 단위로 묶으면 유지보수가 어렵다.

- 프로젝트의 규모와 요구사항에 맞는 적절한 구조를 고민해야 한다.

---

## 6. 리팩토링 연습

### 요약

- 리팩토링은 단순한 코드 변경이 아니라, 코드의 응집도를 높이고 결합도를 낮추는 과정이다.

- 리팩토링을 할 때는 단순한 코드 변경이 아니라, 객체 간의 관계와 책임을 다시 한번 점검하는 것이 중요하다.

- DIP(의존 관계 역전 원칙)를 고려하면서 설계해야 한다.

- 의존성을 인터페이스에 두고, 구체적인 구현체를 변경할 수 있도록 설계하면 유연성이 증가한다.

- 일급 컬렉션의 개념을 적극적으로 활용해야겠다.

- 컬렉션을 직접 노출하는 것은 유지보수 측면에서 위험하므로, 이를 감싸는 클래스를 활용하면 더 안전하다.

---

## 7. 기억하면 좋은 조언들

### 요약

- 리팩토링과 코드 리뷰는 꾸준히 해야 한다.

- 직접 코드를 개선해보면서 배우는 것이 가장 좋은 학습법이다.

- 오버 엔지니어링을 피하기 위해 현실적인 선택을 하자.

- 너무 많은 추상화나 인터페이스는 오히려 유지보수를 어렵게 만들 수 있다.

- "한계까지 사용해본 개발자가 적정 수준을 더 잘 안다."

- 새로운 기술을 도입할 때는 충분히 사용해보고, 어느 수준에서 활용해야 할지 감을 잡아야 한다.

---

## 8. Outro

### 요약

- 처음부터 완벽한 추상화를 만들려고 하기보다는, 개선해 나가는 과정이 중요하다.

- 개발을 하면서 추상화의 필요성이 점점 더 명확해지는 순간이 있다.

- 이를 경험하면서 더 좋은 설계를 할 수 있게 된다.

- 변경이 용이한 코드를 작성하는 것이 가장 중요하다.

- 코드의 가독성을 유지하면서도, 변경이 필요할 때 쉽게 수정할 수 있도록 구조를 만들어야 한다.

---

## 최종 결론

- 객체 지향 설계의 핵심은 변경에 유연한 구조를 만드는 것

- 좋은 코드는 단순히 동작하는 코드가 아니라, 이해하기 쉽고 유지보수하기 쉬운 코드

- 완벽한 설계는 존재하지 않으며, 지속적인 개선을 통해 더 나은 구조를 찾아가는 과정이 중요하다.

 

댓글을 작성해보세요.


채널톡 아이콘