-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docs: Add Chapter 05~07 / SupplementA #427
The head ref may contain hidden characters: "426-\uAC1D\uCCB4\uC9C0\uD5A5\uC758-\uC0AC\uC2E4\uACFC-\uC624\uD574-5\uC7A5-7\uC7A5-\uBD80\uB85D-\uCD1D-118\uD398\uC774\uC9C0-2024-06-14"
Conversation
우측에 있는 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2024 academic conference에 잘 참여해 주셔서 감사합니다.
아직 학생인데도 객체지향에 대한 이해도가 높아서
내년에도 또 같이 했으면 좋겠습니다.
|
||
#### 논의사항 | ||
|
||
- 반대로 결합도를 높이며, 응집도가 낮아지는 사례에 대해서 이야기 해보면 좋을 것 같습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
결합도가 높은 예제는 싱글턴 객체의 남용을 생각해 볼 수 있을 것 같습니다.
싱글턴 객체가 순수 함수로만 이뤄져 있다면 상관 없을 수 있고 (그렇다면 싱글턴 객체로 만드는 의미가 없다고 봅니다)
상태를 가지고 있는 순간부터 싱글턴을 참조하는 엄청난 결합도가 우후죽순처럼 퍼지게 되면
리팩터링도 어려운 수준까지 갈 수도 있습니다.
또다른 결합도 예시로는
과도하게 큰 매니저 객체로 볼 수 있는데
책에 얘기한 은유를 빗대서 설명해 보면
관리자는 실무를 해야 하는 사람이 아니고 관리 그 자체를 해야 하는 사람인데
코드에서의 매니저는 관리를 하고 있다기 보다는 실무를 하고 있는 쪽으로 코드가 작성되는 사례가 많습니다.
그러다 보면 필연적으로 다른 객체들의 참조를 많이 하게 되는데
그게 결합도를 높이는 과정으로 이해해볼 수 있을 것 같습니다.
응집도가 낮은 예제는 어떤 한 작업의 흐름이 객체들끼리 모여서 진행되고 있지 않고
전혀 다른 객체들의 도움을 받거나 시키면서 파편화 되는 모습이라고 보고 싶습니다.
저는 이런 현상이 일어나는 이유로 팀원들끼리 설계 리뷰나 코드 리뷰가 제대로 이뤄지지 않고
필요한 대로 비슷한 기능을 구현했을 때 발생하는 문제를 많이 겪어 봤습니다.
모듈이나 패키지 개념을 잘 잡아 두면 나중에 응집도가 낮아지는 일을 크게 막을 수 있다고 봅니다.
Pull Request 본문의 논의사항은 코멘트로 추가하겠습니다. 객체지향의 사실과 오해는 이미 "객체지향"이라는 단어에서 객체라는 단어가 드러나 있음에도 불구하고 이건 마치 "디자인 패턴"이라는 단어에서 디자인이라는 단어가 드러내는 의미를 생각하지 않고 이런 사실과 오해를 하지 않기 위해서는 |
정안님의 경험을 들어볼 수 있어서 좋았습니다, 이번 북클럽도 수고 많으셨습니다! 전에 잠깐 읽었을 때나 지금이나 여전히 저를 관통하는 한 문장이 있습니다. '행동이 상태를 결정한다.' 객체지향하면 자연스럽게 '클래스'라는 개념을 떠올렸는데요. 클래스는 그 중 하나일뿐, 결국 객체를 역할, 책임, 협력 세 가지 관점에서 바라보라는 이야기가 가장 와닿았습니다. |
객체지향 사실과 오해 컴퓨터는 단순히 명령을 통해서 동작하는 기계로 바라보는 관점이 있는가 하면, 알게된 사실은 컴퓨터가 단지 현실 세계의 무언가를 모방해내는 것뿐 아니라 은유를 통해서 새로운 세계를 창조할 수 있다는 것입니다. 이 책은 개념과 이론으로 컴퓨터 세상을 다르게 바라보는 관점을 제공해주는 필터를 준다는 점에서, 선언형이 뜨고 있지만 저는 아직 객체지향을 더 선호하는데 그 이유는 책에 설명 되어있지만, |
중간책은 못 읽었지만, 책을 같이 읽을 수 있어서 너무 좋았습니다. 이런 모임을 만들어주신 종필 님께 감사드리며, 같이 읽고 생각을 나눠주신 분들에게도 감사드립니다..!
14일 온라인 토론은 기말고사로 참여가 어려울 것 같습니다. 가능하다면 꼭 참여하겠습니다!
논의 사항