본문 바로가기
반응형

2020/047

Objects 시리즈_4장.설계 품질과 트레이드 오프 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다. 이 정의에는 객체지향 설계에 관한 두 가지 관점이 섞여있다. 첫 번째 관점은 객체지향 설계의 핵심은 책임이라는 것이다. 두 번째 관점을 책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 깊이 연관되어 있다. 설계는 변경을 위해 존재하고 변경에는 어떤 식으로든 비용이 발생한다 훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만든느 것이다. 적절한 비용 안에서 쉽게 변경할 수 있는 설계는 응집도가 높고 서로 느슨하게 결합돼 있는 요소로 구성된다. 결합도의 응집도를 합리적인 수준으로 유지할 수 있는 중요한 원칙이 있다. 객체의 상태가 아니라 객체의 행동에 초점을 맞추는.. 2020. 4. 22.
Objects 시리즈_3장.책임, 역할, 협력 객체 지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsibility), 협력(collaboration) 이다. 객체 지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라고 한다. 객체가 협력에 참여하기 위해 수행하는 로직을 책임이라고 부른다. 객체들이 협력 안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다. 협력 협력이란 어떤 객체가 다른 객체에게 무엇인가를 요청하는 것이다. 한 객체는 어떤 것이 필요할 떄 다른 객체에게 전적으로 위임하거나 서로 협력한다. 즉, 두 객체가 상호작용을 통해 더 큰 책임을 수행하는 것이다. 객체 사이의 협력을 설계할 때는 객체를 서로 분리된 인스턴스가 아닌 협력하는.. 2020. 4. 22.
Objects 시리즈_2장.객체지향 프로그래밍 객체지향 패러다미으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다. 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야한다. 도메인 정의 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야 클래스 구현 혹은 다른 개발자가 개발한 클래스 사용시 중요한 것. 클래스의 경계를 내, 외부로 구분 짓는 것. 어떤 부분을 외부로 공개하고 어떤 부분을 감출지 결정하는 것 객체 정의 객체가 상태와 행동을 함께 가지는 존재 스스로 판단하고 행동하는 자율적인 존재 캡슐화(데이터와 기능을 한 덩어리로 내부에 묶는 것)하여 문제 영역의 아이디어를 적절하게 표현할 수 있게 한 것. 접근 수정자(acc.. 2020. 4. 20.
[오리뎅이] 쿠버네티스 네트워킹 깨알 강의 자료 https://blog.naver.com/PostView.nhn?blogId=goduck2&logNo=221680050346&parentCategoryNo=&categoryNo=8&viewDate=&isShowPopularPosts=false&from=menu [오리뎅이의 네트워크 엔지니어를 위한 쿠버네티스 네트워킹] 몸풀기 퀴즈 6 - 10 & 1 - 5 정답 및 해설 안녕하세요? 오리뎅이입니다.​몸풀기 퀴즈 두번째 문제 6 - 10을 먼저 올리고, 문제 1 - 5에 대한 정답 및... blog.naver.com 발표 자료 https://www.slideshare.net/InfraEngineer/ss-186475759 2020. 4. 20.
Objects 시리즈_1장.객체, 설계 오브젝트의 1장인 객체, 설계를 간단히 정리해보았다. 객체, 설계 패러다임 정의 모델, 패턴, 또는 전형적인 예를 의미 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계 과거의 패러다임이 새로운 패러다임에 의해 대체됨으로써 정상 과학의 방향과 성격이 변하는 것을 패러다임 전환이라 함. 예) 우주를 바라보는 패러다임이 천동설에서 지동설로 변화 . 특성 패러다임과 패러다임을 채용하는 언어는 특정한 종류의 문제를 해결하는데 필요한 일련의 개념들을 지원한다. 두 개의 패러다임은 하나의 언어에 함께 존재할 수 있으며, 함께 공존함으로써 서로의 장단점을 보완할 수 있다. 이러한 언어를 다중패러다임 언어라고 한다. 절차 + 객체 = C++ 함수 + 객체 = Scala . 결론 은총알은 없으며, 객체.. 2020. 4. 14.
Objects 시리즈_0장.오리엔테이션 오브젝트란 책은 지금까지 내가 해왔던 자바 프로그래밍을 돌아보게 하는 책이다. 지금까지의 코드가 전혀 객체 지향 적이지 못했으며, 고객의 수정 요청이 발생했을 때 코드가 진도 9.0 지진처럼 흔들렸던 이유를 깨닫게 해주기 충분했다. . 캡슐화, 응집도와 결합도, 상속, 합성, SOLID, 서브 클래싱, 서브 타입 등 객체 지향과 관련된 내용들이 정말 알차게 구성되어 있고 쉽게 이해 되었다. . 하지만 말로 표현하지 못하는 지식은 완전히 숙지하고 있는 지식이 아니라고 배워왔다. . 이 Objects 시리즈를 연재하며 책에서 핵심이 되는 내용을 우선 정리하며 명확히 정립하고, 이를 기반으로 2부에서 나의 말과 언어로 다시 한번 정리해볼 계획이다. . 시리즈를 읽으며 이해가 안되거나 의문이 가는 사항은 비판 .. 2020. 4. 14.
필독서 리스트 이펙티브자바3판 - 75%. 모던 자바 인 액션을 읽은 후 마저 읽을 예정. 리팩토링 - 구할 수 없음 클린코드 - 요약 본 대체 자바 최적화 자바 병렬 프로그래밍 그림으로 배우는 HTTP & Network - 1회독 DevOps와 SE를 위한 리눅스 커널 이야기 모던 자바 인 액션 테스트 주도 개발 자바 ORM 표준 JPA 프로그래밍 - 50퍼 토비 스프링 - 기선님 강의 대체 오브젝트 - 1회독 2020. 4. 6.
반응형