객체지향 프로그래밍을 공부하다 보면 간단한 예시에서는 이해가 되지만 조금 복잡해지면 클래스를 어떻게 나누어야 할지, 어떤 부분을 추상화 해야하는 지, 함수는 어떻게 분리하는 게 좋은 지 헷갈리는 경우가 정말 많다.
이번 글에서는 내가 공부하면서 가졌던 의문들과 튜터님에게 들은 답변을 정리해보자.
1. 등장인물(객체)의 책임이 조금 많은 것과, 더 많은 등장인물이 나타나서 서로의 협력 관계(의존성)가 많아지는 것의 trade-off에서 나은 방향을 판단하는 기준은 무엇인가?
2. 계산기 기능같이 '연산'이라는 키워드로 묶여있는 것들의 추상화는 쉬울 것 같다. 근데 그게 아닌 경우에 추상화는 어떻게 진행할까
3. 만약 비슷한 기능을 하는 함수들이라 추상화를 하고 싶은데, 각각의 함수의 입력이나 출력의 형태가 모두 다른 경우는 어떻게 하나?
혼자 고민하는 것보다 직접 질문하다 보니 예상하지 못했던 내용까지도 배울 수 있었고, 훨씬 더 빠르게 익힐 수 있었던 것 같다.
앞으로 객체 지향 공부하면서 생기는 질문들을 고민하고 질문하면서 여기에 답을 해두어야겠다.