wonslee / object-study

📔오브젝트 예제 코드를 따라 공부, 토론하는 스터디 그룹
0 stars 1 forks source link

클래스 분리의 기준을 어떻게 생각하시는지?? #25

Open wonslee opened 6 months ago

wonslee commented 6 months ago

저는 프로젝트에서 객체를 선택하고 책임을 할당할 때 항상 고민되더라구요.
책에서는 변경의 이유에 따라 분리하라고 하기는 한데, 저는 늘 변경의 이유가 여러개인 스파게티 객체를 만들어놓은 다음 리팩토링하면서 분리해가는 방식을 써요.

제 프로세스를 간단하게 요약하면
A를 해야 한다 -> A라는 목적을 수행할 클래스를 만들자(일단 클래스부터 생각) -> 목적에 관련된 메서드들 다 넣어놓고 보자 -> 음. 너무 큰가? 책임을 분리해보자

미래의 변경을 미리 생각한다는 게 참 어렵네요.

여러분들은 객체를 만드실 때 어떤 생각을 하시면서 만드시는지 궁금합니다.

kmw2378 commented 6 months ago

객체를 만들 때 우선적으로 확장, 유지보수를 고려해야 된다고 생각해요! 근데 이게 쉽지가 않죠... 저는 하나의 플랫폼을 만든다면

  1. 필요한 객체들을 생각나는데로 다 적어놓는다.
  2. 비지니스 로직 작성하면서 새로운 객체가 필요하다 싶으면 추가한다.
  3. 적절한 책임이 분배되도록 책임을 생각한다.
  4. 이를 토대로 클래스를 설계한다.

식으로 진행하는 것 같아요!

저는 초기 설계에서 책임을 생각하기보단 이를 기반으로 로직을 생각하면서 확장을 생각합니다! 지금 상황에서 뭐가 추가되거나 변경된다면 이런게 불편할것 같은데? 와 같은 생각이요! 다 만들어진 객체에서 확장성을 생각하기보단 만들어지는 과정에서 확장성을 생각하는게 더 많은 가능성을 고려할 수 있는 것 같습니다!

이 과정을 통해 적절히 객체가 분리되면 객체마다 책임이 명확해져 책임 부여가 상대적으로 쉬워지는 것 같아요!