객체지향
9월 회고록 및 10월 목표
9월 한 달 동안 무엇을 했는가? 지난 회고를 통해 9월의 목표를 크게 2개로 잡았지만 9월 초에 우테캠프로 3기 모집이라는 메인 목표가 추가되었다. 그리고 진행중인 스터디가 있다. - DDD 세레나데, 매주 화요일 19시 30분 - 사이드 프로젝트, 매일 틈틈이 진행 중. - 우테캠프로 3기, 9월 15일~9월 29일까지 지원받음 - 오브젝트 스터디, 2달 넘게 진행된 스터디 마무리 - 블랙커피 블로그 스터디, 매주 월요일 22시 - 객체지향 스터디, 매주 토요일 20시 - 우아한유스방 스터디, 과제 형식과 피드백 하나씩 풀어보자. 많은 걸 알려준 DDD 세레나데 (매주 화요일 19시 30분) DDD(Domain-Driven Design) 세레나데 edu.nextstep.camp DDD 세레나데를 통해..
6월 3주차 회고 및 4주차 목표
지난주 목표는 지난 주에는 메인으로 스프링만 집중적으로 목표로 설정하고 스프링 공부만 집중적으로 했다. 스프링 서적은 토비의 스프링 vol.1과 인강은 인프런 김영한님의 스프링 핵심 원리 완주가 주 목표였고 서브로 리팩토링이나 포스팅이나 HTTP 인강였지만... 토비의 스프링 vol.1을 읽다보니 다른 것은 전혀 하지도 못했다. 토비의 스프링 vol.1 읽는데만 일주일이나 소비되었다. 토비의 스프링 vol.1 대부분의 개발자가 추천하는 스프링 책은 토비의 스프링이다. 지금도 토비의 스프링으로 스터디를 많이하는 것을 보면 얼마나 좋은 책인지 알 수 있다. 토비의스프링이 궁금해서 후기를 찾아보기도 했다. 내용이 어려워 접었다거나, 너무 오래된 내용이라 현재에는 안쓰는 기술들이 많다고 비권장한다는 후기가 종종..
토비의 스프링 포스팅을 시작하며
스프링 관련 서적을 추천 받으면 대부분 토비의스프링을 추천한다. 스프링에 대한 원리와 이해를 가장 잘 설명하고 지금까지도 변함이 없기 때문이다. 극소수의 사람은 옛날 스프링3.0 버전이라고 필요없는 내용이라 평가한다. 하지만 직접 읽어보면 단순히 스프링 내용이 아니다. 객체지향 설계에 대한 핵심 내용만 가득찬 좋은 책이다. 이 책은 겉표지 제목인 스프링이란 단어 속에 엄청난 내용들이 숨겨져 있다. 객체지향 개념, 디자인 패턴, 리팩토링, 단위테스트 등의 모든 내용을 스프링이란 단어에 가려져있었다. 토비의스프링은 객체지향 설계를 다양한 측면에서 다루는 내용들이 핵심이다. EJB 시절의 객체지향 설계 예제를 시작으로 어떻게 스프링(IoC/DI, 서비스 추상화, AOP)으로 변해왔는지 변화를 모두 경험한다. ..
오브젝트 포스팅을 끝내며
오브젝트 마지막인 마치며, 나아가기에 이런 문구가 있다 어떤 기술을 처음 학습하려는 사람은 '따라가는 수준'에서 시작한다. 나는 객체지향을 코드로 이해하기 위해서 오브젝트를 읽기 시작했다. 처음엔 객체지향 개념도 제대로 안 잡힌 상태여서 오브젝트 내용을 잘 이해하지 못했다. 말 그대로 글과 코드를 보면서 따라갔다. 그러다가 중반부터 한달정도 멈췄다가 다시 읽으면 첫 완주를 했다. 첫 완주 했을 때의 심정은 드디어 다 읽었구나, 나도 이제 객체지향에 대해 좀 알게 된 거 같은 기분이다. 객체가 무엇인지 검색을 해보면 객체란 상태와 행동을 가진 거라 정의하는 사이트가 많았다. 오브젝트 초반 부분도 객체는 행동과 상태를 같이 가진 것이라고 표현한다. 하지만 초반 이후엔 객체는 협력이라는 문맥 안에서 적합한 책..
오브젝트 07_ 객체 분해
객체 분해에 대한 내용이다 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 시작하면서 문제 해결을 위해 사용되는 기억 저장소는 단기 기억이며, 문제 해결에 필요한 요소의 수가 단기 기억의 용량을 초과하면 해결 능력이 급격하게 떨어지는데 이를 인지 과부하(cognitive overload)라 부른다. 이 인지 과부하를 방지하는 방법은 정보의 양을 조절하는 것이다. 문제 해결에 불필요한 세부 내역을 제거하고 핵심만 남기면 되는데, 이 작업을 추상화라 부른다. 일반적인 추상화 방법은 큰..
오브젝트 04_ 설계 품질과 트레이드 오프
설계 품질과 트레이드오프에 대한 내용이다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 객체지향 설계에서는 상태(데이터) 분할의 중심축과 책임 분할의 중심축 두 가지 방법으로 시스템을 객체로 분할할 수 있다. 상태 분할의 중심축은 절차지향 설계라 생각하면 되고, 책임 분할의 중심축은 객체지향 설계라 생각하면 된다. 좋은 설계의 기준으로 사용되는 캡슐화, 응집도, 결합도를 알아보자 캡슐화 객체의 내부 구현을 외부로부터 감추는 걸 캡슐화라 한다. 여기서 나중에 변경이 될 가능성이 ..
오브젝트 02_ 객체지향 프로그래밍
객체지향 프로그래밍에 대한 주제로 내용이다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 영화 예매 시스템을 구현해보기 시스템을 구현하기 위한 요구사항은 다음과 같다. - 시간대 별로 영화를 예매한다. - 요금할인은 할인 정책(discount policy)과 할인 조건(discount condition) 2가지다. 할인 정책은 금액과 비율로 나눠지고 할인 조건은 기간과 순서로 나눠진다. 객체지향 프로그래밍을 향해 진정한 객체지향 패러다임의 전환은 객체에 초점을 맞춰야 얻는다. ..
오브젝트 01_ 객체, 설계
객체, 설계에 대한 주제로 내용이다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 티켓 판매 어플리케이션 구현해보기 이벤트로 티켓권 소유하면 무료관람을 하는 작은 소극장을 구현하면 다음과 같다. public class Theater { private TicketSeller ticketSeller; public Theater(TicketSeller ticketSeller) { this.ticketSeller = ticketSeller; } public void enter(Audi..