[코딩의 신 아샬] 객체지향이란 무엇인가?
내용 요약
- 객체지향은 문제를 분석하고 솔류션을 설계하는 과정을 어떻게 하면 효율적이고, 효과적으로 할 수 있을까? 하는 부분에서 쓰이는 것
- 어떤 문제나 해법을 잘게 나눠서 보기에 효율적인 방법이다
- 각각이 능동적인 주체를 가질 수 있기 때문이다.
- 추가 내용
- 객체지향은 단순 class 가 아닌, 객체 그 자체로 바라봐야한다.
- 객체로 협력하는 공동체가 객체 지향이라고 한다.
- 각각 객체들은 역할과 책임을 가진다.
- 분할 기준을 다르게 한다.(절차지향(함수, 프로시저 단위)과 달리 객체 기준으로)
- 객체는 상태와 행동을 가진 실체다
- 객체는 요청과 응답을 통해서 협력한다.
- 위의 방법을 메시지를 통해서 한다.
- 캡슐화, 정보 은닉
- 메세지의 행동을 최대한 드러내고, 상태는 숨겨 놓는다
- 캡슐화, 정보 은닉
- 기능 = 책임
- 책임을 분할해야한다
- 어떤 특정 객체가 혼자서 할 수 없으니, 다른 객체에 위임을 한다. → 책임 연쇄
- 및 기타 등등..
느낀점
- 음.. 객체지향이 무엇인가요? 에 대한 면접 질문을 받은 적이있다. 당시에는 인터넷에서 그럴듯한 내용을 달달 외워서 얘기했던 기억이 난다. 당시에 내용이 전혀 이해가 되지 않았다. 그냥 얼추, 대충 이런 거 이겠거니? 한 채로 사실은 아직도 확실하고 명확하게 정의하기 힘들다
- 그렇기 때문에, 이 영상을 한번 본적도 있지만, 아직까지도 객체지향의 의미에 대해서는 확실히 무엇이다라고 말을 하기 힘든 것 같다. 그래서
객체지향의 사실과 오해
라는 책을 요약한 영상도 같이 있어서 같이 보았다. - 요지는 객체지향에서는 클래스, 상속, 다형성 등 객체 지향의 문법 요소들이 중요하다기 보다는 객체 자체가 어떻게 역할과 책임을 가진채 협력하는지를 바라보아야 한다는 점이였다.
- 단순히 문법적 요소로가 아닌, 객체를 중심으로한 상호작용에 더 초점을 맞춘 느낌 이였다.
- 결론적으로는 요약된 영상을 보는 것만으로는 와닿지 않았다
- 관련된 서적을 좀 더 읽어 본후 따로 포스팅을 남길 필요가 있을 것 같다.