본문 바로가기

읽고쓰고10

[책] 객체지향의 사실과 오해 - 3 객체지향의 사실과 오해를 읽고 정리한 글입니다. 6. 객체 지도 어떤 사람이 길을 물어본다면 첫번째 해결책은 '기능적이고 해결책 지향적인 접근법'이 있다. 직접 길을 알려주는 것이다. 단계별로 상세히 설명할 수 있지만, 재사용이 불가능하다. 두번째 해결책은 지도를 이용하는 것이다. '구조적이고 문제 지향적 접근법'이며, 길을 찾을 수 있는 구조를 제공한다. 전통적인 소프트웨어 개발 방법은 길을 알려주는 것과 유사하며, 객체지향 개발 방법은 기능을 종속시키는 지도의 방법과 유사하다. 설계의 두가지 측면 - 구조, 기능 설계의 목적은 나중 설계를 허용하기 위해, 그리고 변경에 소요되는 비용을 낮추기 위해서이다. 이 목적을 위해 구조, 기능 두 가지 측면을 고려한다. 구조 측면의 .. 2021. 10. 12.
[책] 객체지향의 사실과 오해 - 2 객체지향의 사실과 오해를 읽고 정리한 글입니다. 1, 2장에서 개괄적인 틀을 설명해주었다면, 3,4,5은 좀 더 디테일하게 객체간의 협력, 그리고 협력을 위한 준비물들(역할, 책임, 메시지)을 설명해준다. 역할, 책임, 메시지에 대한 설명을 통해 OOP의 특징인 다형성, 캡슐화를 더 쉽게 이해할 수 있었다. 이러한 특징을 잘 활용한다면 확장성, 재사용성이 좋은 시스템 설계가 가능함을 알려주며, 디자인 패턴, TDD를 활용하면 왜 더 좋은지를 알려준다. OOP에 대해 알아야한다는 의무감에 주먹구구식으로 머릿 속에 우겨넣었던 과거와 다르게, 왜 설계에는 확장성과 재사용성이 중요하며 OOP가 사용되는지 자연스럽게 이해할 수 있어서 유독 재미있게 읽었던 장이었다. 목표 개념(concept)과 타입에 대해 이해하.. 2021. 10. 10.
[책] 객체지향의 사실과 오해 - 1 차근차근 비유법을 써서 설명해주는 책이었다. 객체지향의 개념에 대해 좀 더 직관적으로 이해할 수 있는 계기가 되었다. 중요하다고 생각되는 부분들을 요약했는데, 두고 두고 객체 지향에 대한 개념이 흔들릴 때마다 봐야겠다. 목표 코드를 담는 클래스의 관점에서 메시지를 주고받는 객체의 관점으로 사고 전환 "행동이 상태를 결정한다" 를 이해하자. 1. 협력하는 객체들의 공동체 기능을 구현하기 위해 객체들은 협력한다. 책에서는 협력의 과정을 "커피를 주문하는 과정"을 예시로 아주 상세하게 풀어준다. "커피를 주문하는 과정"은 대략 이러하다. 손님이 캐시어에게 커피를 주문한다. 캐시어가 바리스타에게 커피 제조를 요청한다. 바리스타는 커피를 완성하여 캐시어에게 건내준다. 캐시어는 커피를 완성하여 손님에게 준다. 역할.. 2021. 10. 9.
[책] 클린코드 - 애자일 소프트웨어 장인 정신 (10, 11, 12장) 클린코드(w.로버트 C. 마틴)를 읽고 개인적인 학습을 위해 요약한 글 입니다. 문제 시 댓글 달아주시면 감사하겠습니다. 10. 클래스 클래스는 작아야 한다 함수와 마찬가지로 '작게'가 기본 규칙이다. 메서드의 수를 적게 하라는 것이 아니다. 책임을 줄여야한다. 작명은 클래스 크기를 줄이는 첫번째 관문이다. 간결한 이름이 떠오르지 않는다면 클래스의 크기가 너무 커서이다. 클래스 이름이 모호하다면 클래스 책임이 너무 많아서다. 단일 책임 원칙(Single Responsibility Principle) 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙. SRP는 '책임'의 개념을 정의하며 적절한 클래스 크기를 제시한다. SRP는 중요한 개념이지만 가장 무시하는 규칙 중 하나.. 2021. 4. 23.