반응형
안녕하세요. 오늘 리뷰할 책은 객체지향의 사실과 오해입니다.
객체지향 프로그래밍은 프로그래밍을 어느 정도 배웠다면 모두가 알게 되지만, 올바르게 사용하려면 많은 학습과 경험이 있어야 한다고 생각합니다. 저도 객체지향 프로그래밍을 알게 된 지 코딩을 하다 보면 어느 순간 책임이 많은 거대한 클래스를 만들곤 했습니다. 이 책을 읽으면서 제가 왜 거대한 클래스를 만들 수밖에 없는 오해를 하고 있었는지와 올바른 객체지향 프로그래밍에 필요한 중요한 개념들을 배우고 생각할 수 있었습니다.
학습할 수 있었던 내용
이 책은 객체지향 프로그래밍에서 오해하기 쉬운 개념들과 중요한 개념들을 여러가지 비유를 통해서 설명합니다. 책을 읽으면서 객체지향 프로그래밍에서 중요하다고 생각한 점들은 아래와 같습니다. 다만, 개인마다 책을 읽고 학습한 내용이 다를 수 있기 때문에 참고만 해주세요.
- 객체지향은 현실세계의 모방이 아니다. 현실은 수동적인 객체지만 소프트웨어의 객체는 자율적이다.
- 객체의 상태는 객체 스스로 관리해야 한다. 다른 객체에게 자신의 상태를 관리하게 하지 마라.
- 객체의 협력, 역할과 책임이란 무엇인가. 객체는 협력하며 메시지를 보내고 받아야 한다.
- 상태를 기준으로 설계하지 말고, 행동을 기준으로 설계하라. 객체는 협력해야 한다.
- 다형성은 역할과 책임을 적절히 분리하면 자연스럽게 따라온다.
- 인터페이스(외부)와 구현(내부)을 분리하라. 다른 객체는 외부의 인터페이스만 사용하고 구현(내부)을 모르게 하라.
좋았던 점
- 객체지향 프로그래밍을 처음 접하는 분이더라도 이해할 수 있게 기초 개념부터 설명합니다.
- 앞 장에서 배웠던 개념을 다음 장에서도 조금씩 반복해서 설명하기 때문에 정독하기만 해도 여러번 반복해서 학습할 수 있습니다.
- 객체의 책임을 적절히 분산할 때 생각해야 하는 개념을 학습할 수 있습니다.
아쉬운 점
- 어느정도 프로그래밍을 접해보신 분, 객체지향 프로그래밍을 알고 있는 분이라면 반복되는 설명에 조금 지루함을 느낄 수 있어 보입니다. 정독하는 것도 좋지만, 시간을 절약하고 싶다면 아는 내용은 가볍게 넘기면서 부족했던 부분만 집중해서 읽는 것도 좋은 방법이라고 생각합니다.
- 예제로 사용되는 코드가 적기 때문에 글과 개념 설명보다 다양한 코드를 읽으며 공부하고 싶은 분들에겐 아쉬운 부분이 있어 보입니다.
결론
객체지향 프로그래밍을 전혀 모르거나 접한 지 얼마 되지 않으신 분이 개념을 잡는데 아주 좋은 책이라고 생각합니다. 그러나 어느 정도 알고 있는 분에게는 반복되는 설명과 비유가 조금 지루하게 느껴질 수 있습니다. 그렇지만 지루함을 이겨내고 책을 읽는다면 객체를 설계할 때, 거대한 객체를 만들게 됐던 이유와 문제점이 무엇인지 발견할 수 있을 것이라고 생각합니다.
평점 ★★★★☆
반응형
'Life' 카테고리의 다른 글
[코딩테스트] 현대오토에버 2024-1 코딩테스트 후기 (4) | 2024.02.04 |
---|---|
[잡담] 조회 수 1등이 롤 오류 해결 글이라니.. (0) | 2023.10.11 |