Skip to content
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

The essense of object orientation review and discussion, chapter 1 ~ 4 #422

Conversation

jongfeel
Copy link
Member

@jongfeel jongfeel commented May 30, 2024

저는 세 번째 읽는 책인데
아는 만큼 보인다고 몰랐을 때 알게 되는 내용과
알고 나서 이해가 되는 내용의 차이가 확실히 크다고 느껴집니다.

저번과 마찬가지로 책 내용만 정리하고
리뷰 내용과 논의 주제는 pull request 본문 내용으로 적습니다.

1장 협력하는 객체들의 공동체

과거에는 바리스타 예제를 통해 객체지향이 뭔지를 설명해준다고 생각을 했는데
지금 다시 보니 이 예제에서 객체지향에서 중요하다고 생각하는 키워드를 잘 설명했다는 느낌이 듭니다.
즉 2, 3, 4장에서 설명하는 내용의 핵심을 1장에서 설명했다는 점이 좋았습니다.

2장 이상한 나라의 객체

객체의 상태와 행동에 대해 생각해 본 적이 있나? 를 다시 돌아본 것 같습니다.
사실 테스트 코드 작성할 때는 행위 위주로 봤으면서 평소에 코드를 작성할 때는 그런 걸 의식을 잘 하지 못한다는 느낌이 듭니다.
그리고 이 부분을 읽고 나서 회사에서 코드를 짤 때 다시 의식해서 행위 위주로 생각해 보고 코드를 작성하고 바로 테스트 코드 케이스를 만들어 봤습니다.

3장 타입과 추상화

꼭 객체지향이 아니더라도 개발을 잘 하는 덕목중의 하나로 추상화는 잘 알고 있었는데
이 챕터를 읽고 다시 리마인드를 하게 되는 계기가 되었습니다.

4장 역할, 책임, 협력

역할, 책임, 협력에 관한 설명은 반복적으로 설명해서 이해가 잘 되는 부분이었고
마지막에 설계 방식에 대한 설명 중에 책임-주도 설계는 객체지향 설계 방식에서 적용할 수 있는 중요한 방법이라고 생각합니다.
그리고 테스트 주도 개발은 이 책 외에도 다른 책에서 언급하는 내용이 여기서도 언급되서 기분(?)이 좋습니다.
테스트 주도 개발의 핵심은 설계이고 설계에서 만들어진 메서드, 즉 객체의 메시지에 대해서 테스트 코드를 작성한 후에 객체의 책임을 코드로 작성한다는 내용을 여기서도 확인할 수 있었습니다.

논의 주제

설명

사실 제가 issue에 챕터 당 논의주제가 아니라 하나의 논의 주제라고 했는데
그 이유는 이번에 다시 8분이 참여를 하고
각자 얘기를 하는 시간을 15분 밖에 할당을 못하기 때문에 그렇게 정했습니다.
그래서 여러 논의 주제를 준비하신 분은 하나만 해주셔야 할 것 같습니다.

이제 저의 논의 주제

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.

저는 역할과 책임 정도는 이 책 이전에도 알고 있었던 부분이었는데
협력에 대해서는 이 책을 통해 잘 파악한 부분이었던 터라 이번에 다시 리마인드를 하게 됐습니다.

@jongfeel jongfeel added 2024 객체지향의 사실과 오해 역할, 책임, 협력 관점에서 본 객체지향 labels May 30, 2024
@jongfeel jongfeel self-assigned this May 30, 2024
Copy link

우측에 있는 Projects, Milestone, Development를 확인 후 할당 해주세요~! 🙇

@github-actions github-actions bot removed the 2024 label May 30, 2024
@jongfeel jongfeel changed the title Add 'the essense of object orientation' chater 1 to 4 summary files The essense of object orientation review and discussion May 30, 2024
@jongfeel jongfeel changed the title The essense of object orientation review and discussion The essense of object orientation review and discussion, chapter 1 ~ 4 May 30, 2024
Copy link
Contributor

@dhlee3994 dhlee3994 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.

객체와 클래스 정도는 구분하지만 그냥 실체와 껍데기 정도로만 구분합니다.
메시지와 메서드는 거의 구분하지 않습니다.

@yeslee-v
Copy link
Member

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.

제 PR에도 작성했듯이 클래스와 객체를 틀과 그 틀로 만들어진 무언가(?)로 이해했습니다. 유명한 예시로는 붕어빵 틀에 반죽을 넣으면 붕어빵이 되는 것처럼요.
메시지와 메서드는 구분을 잘 하고 있지는 않았네요.

@fkdl0048
Copy link
Contributor

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.

단순하게 말을 한다면 전자는 동적인 형태의 구조를 그릴 수 있다는 점이고 후자는 정적인 모델에 가까운 것 같습니다.

객체와 메시지는 협력과정에서 상대방이 누구인지, 상관하지 않고 자신의 역할과 책임을 지닌 상태로 요청(메시지)를 하는 것이고 이를 객체는 자율적으로 받아 처리하는 구조라면, 클래스와 메서드는 앞선 과정을 그려내기 위한 청사진이나 도구에 가까운 것 같습니다. 이 개념으로 봤을 때는 두 개는 전혀 다른 개념 같다는 생각도 드네요.

@hemil0102
Copy link
Contributor

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.

객체와 메시지는 상호 작용을 하는 협력 관점에 더 가깝다고 생각합니다. 메시지 자체가 다른 객체에게 협력을 요청하는 수단이므로 협력이라는 관점에 가깝다고 생각합니다.

클래스와 메서드는 상호작용 보다는 해당 클래스 자신이 할 수 있는 행위에 집중되는 것 같습니다. 여기서 메서드는 외부의 메시지를 받아서 클래스가 할 수 있는 행동이 될 수도 있습니다.

@TaeHyoungKwon
Copy link
Collaborator

객체와 메시지 vs 클래스와 메서드
이 둘의 구분을 평소에 어느 정도 하고 있는지 생각해 보고 얘기해 보는 시간을 가져보면 좋을 것 같습니다.


사실 현업에서 일할 때는 객체의 협력을 표현하기위해서 메세지 라는 표현을 거의 사용하고 있진 않습니다

제가 맡고 있는 업무와 작성해야할 비즈니스로직이 객체지향 설계를 빡세게 해야 할만큼의 난이도도 아니기도 하고, 대부분 간단한 로직 설계 만으로도 문제를 해결할 수 있기 때문 인 것 같습니다

그래서 클래스와 메서드를 인지하고 활용하는 수준 입니다

다만, 책을 읽고 공부를 할 때는 더 엄밀하게 바라보려고 하는 편 입니다

@jongfeel jongfeel merged commit 8be8765 into main Jun 17, 2024
4 checks passed
@jongfeel jongfeel deleted the 417-객체지향의-사실과-오해-1장-4장-총-118페이지-2024-05-31-1 branch June 17, 2024 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
객체지향의 사실과 오해 역할, 책임, 협력 관점에서 본 객체지향
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

<객체지향의 사실과 오해> 1장 ~ 4장, 총 118페이지, 2024-05-31
7 participants