Song's Tech Blog

기술 블로그

객체 분해

“OBJECTS 7장” 인지과부하 : 문제 해결에 필요한 요소의 수가 단기 기억 용량을 초과하여 문제 해결 능력이 급격하게 떨어지는 상황 추상화 : 불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업 분해 : 큰 문제를 해결 가능한 작은 문제로 나누는 작업 프로시저 추상화와 데이터 추상화메인 함수로서의 시스템 기능 분해 알고......

메시지와 인터페이스

“OBJECTS 6장” 훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아니라 객체를 지향 애플리케이션의 가장 중요한 재료 = 객체들이 주고받는 메시지 객체가 수신하는 메시지들이 객체의 퍼블릭 인터페이스를 구성 애플리케이션은 클래스로 구성되지만 메시지를 통해 정의된다. 협력과 메시지클라이언트 - 서버 모델 협력 안에서 메시지를 전송하는 객체 ......

책임 할당하기

“OBJECTS 5장” 데이터가 아닌 책임에 초점을 맞추자. GRASP 패턴 책임 주도 설계를 향해 데이터보다 행동을 먼저 결정하라 협력이라는 문맥안에서 책임을 결정하라 데이터보다 행동을 먼저 결정하라 객체에게 중요한 것은 데이터가 아니라 외부에 제공하는 행동임 “이 객체가 수행해야 하는 책임은 무엇인가” 를 결정하느 후에 “이 책임을 수행......

설계 품질과 트레이드오프

“OBJECTS 4장” 책임 주도 설계라는 이름에서 알 수 있는 것처럼 역할, 책임, 협력 중에서 가장 중요한 것은 ‘책임’ 이다. 결국 책임이 객체지향 애플리케이션 전체의 품질을 결정하는 것이다. 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다. 훌륭한 설계 : 합리적인 비용안......

역할, 책임, 협력

“OBJECTS 3장” 객체지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsibility), 협력(collaboration) 이다. 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것 협력을 위해 어떤 역할과 책임이 필요한지 고민하지 않은 채 너무 이른 시기에 구현에 초점을 맞추는 것은 변경하기 어렵고 유연하지 못한 코드......

객체지향 프로그래밍

“OBJECTS 2장” 영화 예매 시스템요구사항 살펴보기 온라인 영화 예매 시스템 할인조건(discount condition), 할인 정책(discount policy) 할인 조건 : 순서 조건(조조 상영, 10회 상영 등), 기간 조건(월요일 10 ~ 12 사이 상영 시작 등) 할인 정책 : 금액 할인 정책(할인액 800원 등), 비율 할인 정책(......

SpringBatch Testcase 예제 살펴보기

“SpringBatch Testcase” 스프링 배치로 프로젝트를 구성할 때 테스트 케이스는 필수라고 생각된다. 일괄 처리라는 배치의 특성 상 잘못된 배치가 수행 되었을 경우 그에따라 미칠 파장은 클 것이다. 실제로 수십만건의 메일을 발송해야 하는 배치 프로젝트를 구성하다가 db update 시 값이 잘못되어 중간에 배치를 중지해야 하는 일이 있었다.......

객체, 설계

OBJECTS - Item 01

“OBJECTS 1장” 이론? 실무? 이론이 먼저일까, 실무가 먼저일까? - 로버트 L.글래스 결론은 이론보다 실무가 먼저다. 실무의 발전 -> 이론이 모습을 갖춰감 -> 해당 분야가 성숙해지는 시점에서야 이론이 실무를 추월 소프트웨어 분야는 아직 걸음마 단계에 머물러 있으므로 이론보다 실무가 더 앞서있으며, 중요 01 티켓 판매 ......

빠져 있는 장

Clean Architecture - Item 34

“CleanArchitecture 34장” 사례 설정 온라인 서점 고객이 주문 상태를 조회할 수 있는 유스케이스 구현 계층 기반 패키지수평 계층형 아키텍처기술적인 관점에서 해당 코드가 하는 일에 기반해 코드를 분할한다. 계층 기반 패키지 계층 이라는 얇은 수평 조각으로 나뉨 각 계층은 유사한 종류의 것을 묶음 엄격한 계층형 아키텍처의 경우 ......

사례 연구 : 비디오 판매

Clean Architecture - Item 33

“CleanArchitecture 33장” 사례 연구 적용하기 제품 웹 사이트에서 비디오를 판매하는 소프트웨어 판매되길 원하는 비디오들을 웹 사이트를 통해 개인과 기업에게 판매 개인 - 단품가격을 지불하여 스트리밍으로 보거나, 다운로드하여 영구소장 시청자인 동시에 구매자 기업 - 스트리밍 전용, 대량 구매시 할인 비디오 구매자가 따로있음 ......