[오브젝트] 04. 설계 품질과 트레이드오프
Life/BOOK2025. 5. 15. 07:59[오브젝트] 04. 설계 품질과 트레이드오프

책에서 기억하고 싶은 내용객체 지향의 핵심은 3가지역할책임협력응집도는 높고, 결합도는 느슨하게 → 객체의 행동에 초점을 맞춰라.설계의 트레이드 오프캡슐화내부 구현 감추기, 수정하더라도 전체시스템에 영향이 덜 가게 파급효과를 조정할 수 있다.변동 가능성이 높은 부분은 구현, 상대적으로 낮은 안정적인 부분을 인터페이스외부에서는 인터페이스에만 의존하게 설계할 것.설계가 필요한 이유는 요구사항 반영캡슐화가 중요한 이유는 불안정 부분과 안정적 부분 분리하여 변경 통제변경될 확률이 매우 적은 모듈은 결합도가 높아도 상관 없다. ( ex. js 기본 제공 메서드 )데이터 중심의 시스템 문제캡슐화 위반변경에 취약해진다. 높은 결합도1개가 변경 될 때, 다른 많은 변경이 생길 수 있음. 낮은 응집도요구사항을 반영하기 위..

[오브젝트] 03. 역할, 책임, 협력
Life/BOOK2025. 5. 14. 10:32[오브젝트] 03. 역할, 책임, 협력

책에서 기억하고 싶은 내용협력협력은 두 개 이상 객체가 메세지 전송을 통한 커뮤니케이션을 나누며, 수신한 메세지는 각 객체의 메서드를 실행해 요청에 응답한다.이런 객체를 자율적으로 만드는 가장 기본적인 방법은 내부 구현을 “캡슐화” 하는 것이다. 이를 통해 변경에 대한 파급효과(사이드이펙트)를 제한할 수 있다.객체는 자신의 상태를 스스로 결정하고 관리하는 자율적인 존재, 따라서 객체가 수행하는 행동에 필요한 상태도 함께 가지고 있어야함. 책임객체가 “무엇을 알고 있는가’와 ‘무엇을 할 수 있는 가’로 구성된다. 하는 것객체 생성, 계산 등 스스로 행하는 것다른 객체의 행동을 시작다른 객체의 활동 제어 조절아는 것사적인 정보(자기 상태?)관련된 객체자신이 유도하거나 계산할 수 있는 것에 대해책임은 객체가 ..

[오브젝트] 02. 객체 지향 프로그래밍
Life/BOOK2025. 4. 1. 17:18[오브젝트] 02. 객체 지향 프로그래밍

[오브젝트] 00. 시작하기[오브젝트] 01. 객체, 설계 책에서 기억하고 싶은 내용어떤 객체가 필요할지 먼저 고민하자, 객체에 초점을 맞추는게 객체 지향이다.+ 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야를 도메인이라고 한다 객체가 다른 객체와 상호 작용할 수 있는 유일한 방법은 메세지를 전송하는 것 뿐이다.다른 객체로 부터 요청이 도착할 때 해당 객체가 메세지 수신 했다고 한다. 메세지를 수신한 객체는 스스로의 결정에 따라 자율적로 메세지를 처리할 방법을 찾는다. 수신된 메세지를 처리하기 위한 자신만의 방법은 메서드라 한다. 추상화상속다형성상속은 부모 클래스가 제공하는 모든 인터페이스를 자식 클래스가 물려받을 수 있기 때문에 가치가 있다.인터페이스는 객체가 이해할 수 있는 메시지의 목록을 ..

[EBook] E-Book 리더기 살까?
Life/COLUMN2025. 4. 1. 17:06[EBook] E-Book 리더기 살까?

내가 전자기기를 구매하면서 가장 오래 고민했던 기기는 바로 E-Book 리더기였다.많은 사람들이 본 적이 있을 테지만, “굳이 필요해?” 라는 생각을 한번쯤 해봤을 것이다.나 역시 그랬다. 기기를 봤을 때, 이 조잡한 기기에 이 금액을 지불해야 한다는게 쉽게 납득되지 않았다.그리고 나는 아이패드 11인치를 가지고 있었다. 게이밍 태블릿으로 유명한 Y700 2세대와 비교해보면 좋을거 같아 대략적인 정보를 가져와 봤다.Y700 2세대는 출시 직후 직구로 약 35만 원 정도에 구매할 수 있었고, 할인 기간엔 20만 원대까지 떨어지기도 했다. 성능은 스냅드래곤 8+ Gen1이 들어갔으며, 영상 감상에 최적화된 16:10 비율 스크린까지 갖췄다.사실상 스펙 차이만 보면 비교 불가다. 그럼에도, 난 Onyx Lea..

[오브젝트]  01. 객체, 설계
Life/BOOK2025. 3. 19. 23:57[오브젝트] 01. 객체, 설계

[오브젝트] 00. 시작하기 우리는 멀티 패러다임 프로그래밍 시대에 살고 있다.이 책을 통해 다양한 패러다임 중 하나인 객체 지향 프로그래밍에 대해 올바르게 이해해 보자. Point.객체는 하나의 유기체처럼 코드에서 살아 숨쉰다.객체는 자율성과 책임을 가지고 있다. 따라서 객체 간의 의존성을 얼마나 적절하게 관리하는지가 중요하다. 자율성을 보장하기 위해, 캡슐화라는 개념이 등장한다. 세부적인 사항을 감추고 인터페이스만 제공하여, 객체간의 결합도를 낮추고 문제를 스스로 해결하는 자율적인 존재가 된다는 것이다. Idea.객체간 메세지를 통해서만 상호작용한다는 말에 뭔가 "허?!" 하는 울림이 있었다. Question.적절한 의존성은 어디까지일까? Comment저자의 앞선 책인 객체 지향의 사실과 오해처..

image