Skip to content

Commit

Permalink
Merge pull request #423 from ThinkAboutSoftware/417-객체지향의-사실과-오해-1장-4…
Browse files Browse the repository at this point in the history
…장-총-118페이지-2024-05-31-2

객체지향의 사실과 오해 1장 ~ 4장
  • Loading branch information
jongfeel authored Jun 17, 2024
2 parents 8be8765 + 10aa951 commit 8772cd3
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 0 deletions.
Binary file added .DS_Store
Binary file not shown.
Binary file added 2021/.DS_Store
Binary file not shown.
Binary file added 2023/.DS_Store
Binary file not shown.
Binary file not shown.
Binary file added 2023/RadicalCandor/.DS_Store
Binary file not shown.
Binary file added 2023/TheEssenseOfObjectOrientation/.DS_Store
Binary file not shown.
31 changes: 31 additions & 0 deletions 2023/TheEssenseOfObjectOrientation/harryho/ch01-04.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
객체지향의 사실과 오해 1장 ~ 4장

이 책은 비전공자인 내가 본격적으로 부트캠프에서 iOS 과정을 밟아나가던 프로그래밍에 대해 잘 모르던 시기에 추천 받아서 한 차례 읽었었다. 당시 기본 문법만 익힌 상태에서 읽었을 때는 어떤 개념은 코드로 연상하면서 이해가
되었는데, 어떤 부분은 개념이 잘 와닿지 않았다. 이제 다시 읽었을 때는 객체지향 패러다임이 꽤나 사람의 인지와 자연스러운 성향을 고려해서 만들어진 사람 친화적인 하지만 현실과는 사뭇 다르다는 생각이 든다. 


# 발견과 상상력
객체라는 것은 사람이 인지하고 발견한 것의 상태와 행동을 추상화한 것이다. 추상화라는 것이 세부적인 것 보다는 그 객체를 나타내는 간추려진 특징이라 생각해보면 세부적인 것을 모두 구현하지 않았다는 것에 현실과 객체지향은
다른 점이 명백하다. 예를 들어서 사람을 정의할 때 이족 보행, 눈 코 입 등으로 특징을 정할 수도 있겠지만, 현실에서의 사람은 수많은 원소와 화학적인 반응의 결합체다. 이런 세부적인 것을 모두 발견해내고 원리를 알아냈을 때
비로서 현실과 컴퓨터의 세계는 같아지는 것 아닐까란 생각이 든다. 즉 지금도 로봇이 개발되고 사람 형태를 띄지만 완벽하게 닮지 않은 이유도 현실과 다른 관점을 지니기 때문이 아닐까? 따라서 사람의 인지 능력과 인지한 것의
조합만큼의 상상력이 객체를 결정하기에, 발견과 상상력이 중요한 요소라 생각이 들었다.

# 자율성
커피 공화국과 이상한 나라의 엘리스 등을 통해 객체의 역할, 책임, 협력을 예시로 드는데 관심이 갔던 부분은 객체의 자율성이다. 단순히 객체의 자율성이 무엇인가란 생각을 했을 때 쉽게 와닿지 않았는데, 메세지가 전달 되었을 때
맡은 책임을 스스로 완수 할 수 있다는 관점으로 이해가 되었다. 이 때 완수를 하는 방법은 다양하게 구현할 수 있으며, 메세지에 대한 책임을 스스로 지닌다. 그리고 이런 자율성, 즉 스스로 어떤 책임을 잘 할 수 있는 상태일 때
협력에서 시너지를 발휘할 수 있다는 점에서 공감을 하였고, 내가 객체라면 스스로 어떤 책임을 할 수 있어 협력에 참여할 수 있는가?를 스스로 되물었다.

# 상태와 행동
상태를 행동으로 인해 생겨난 결과로 이야기한 부분도 흥미 깊었다. 그리고 객체지향을 행동 중심으로 바라보는 관점도 인상이 깊었는데, 상황과 맥락에 따라서 행동이 달라진다는 점이, 사람의 심리와도 어느 정도 비슷한 부분이
있다고 생각이 들었다. 사람도 처한 상황과 상태에 따라 행동의 결과가 달라지기도 하니까 말이다. 따라서 행동에 따른 결과가 늘 좋지만은 않겠지만, 좋은 결과를 통해 상태를 좋게 유지한다면 스트레스를 덜 받지 않을까? 란 생각도
하였다. 상태를 애써 바꾸려고 하기 보다는 행동으로 발생한 상태를 잘 파악하면서 좋은 결과를 하는 행동을 하는 것이 중요해 보인다. 그게 쉽지만은 않겠지만

# 협력
어떤 공동의 목표를 위해 객체가 서로 메시지를 주고 받으며 협력하는 관점은 실제 사람이 모여 일을 처리해나가는 방식과 유사하다. 그러나 객체라는 것은 우리가 인지하는 부분으로 추상화된 개념이며, 또 때로는 어떤 비현실적인
부분으로 구현되기에 협업의 형태가 완전히 같다고 할 수 없을 것 같다. 한편으로 사람을 객체로 비유하자면, 어떤 메세지를 받았기에 요청에 응답하는 것일까? 생체적인 변화나 인간의 탄생 이런 것들이 어떤 메세지를 받았기에
나타는 결과일까? 좀 딴길로 새서 생각을 해보기도 했다. 최초로 메세지를 전달한 자는 누구인가?


# 논의할 점
1. 역할, 책임, 협력, 상태, 행동, 타입 및 추상화 등등 개념적인 것들이 실제 컴퓨터 메모리와 성능 관점으로 가면 어떻게 생각해볼 수 있는 것일까? 타입이란 것은 0과 1로 이루어진 것들을 조금 더 쉽게 구분하기 위해 의미를 부여한 것인데, 그렇다면 실제 메모리에서 어떻게 타입이 구분되는 것일까?

2. 잘 설계된 객체? 설명을 곰곰히 고민해보면 잘 설계된 객체는 스스로 자신이 맡은 일을 잘 하는 객체같다. 그리고 신과 같은 객체는 자멸한다고도 하는데, 과연 정말 그런건가? 그래서 신은 없어진건가? 그렇다면 All in one 머신이나 기계들은 잘 설계된 것이 아닌가?
Binary file modified 2024/.DS_Store
Binary file not shown.

0 comments on commit 8772cd3

Please sign in to comment.