본문 바로가기 메뉴 바로가기

개발자 박진 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발자 박진 블로그

검색하기 폼
  • 분류 전체보기 (173)
    • 내 정보 (1)
    • 회고 (1)
    • 개발 언어 (104)
      • 코틀린 (42)
      • 자바 (1)
      • NodeJS (21)
      • 파이썬 (6)
      • 기타 웹개발 지식 (34)
      • Vibe-Coding (0)
    • 프레임워크 (7)
      • 스프링 & 스프링 부트 (7)
    • 개발도구 (6)
      • 도커(Docker) (1)
      • k8s (1)
      • aws (4)
    • 디자인 패턴 (22)
    • 독서 (12)
      • 오브젝트 (5)
      • 객체지향의 사실과 오해 (7)
    • 기타 북마크 (13)
    • 이사 (4)
    • 기타 암거나 (2)
  • 방명록

오브젝트 (5)
Object Chapter 04. 설계품질과 트레이드 오프

객체 지향 설계 역할, 책임, 협력 중 가장 중요한 것은 `책임`이다. 책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 연관되어 있다. 객체들의 책임이 적절히 할당되지 못한다면 원활한 협력을 기대할 수 없으며 역할은 책임의 집합이기 때문에 역할 역시 협력을 이루지 못한다. 설계란 변경을 위해 존재하며 훌륭한 설계란 합리적인 비용안에서 변경을 수용할 수 있는 구조를 만드는 것이다. 이를 위해서는 객체의 상태가 아닌 행동에 초점을 맞춰야 한다. 객체를 단순한 데이터의 집합으로만 본다면 내부 구현을 퍼블릭 인터페이스에 노출되어 변경에 취약해진다. 이번장에서는 데이터 중심의 설계를 보고 객체지향적 설계와의 차이점을 살펴본다. 두 가지 시스템 객체 분할 방법 상태(데이터) 기준 분할 - 데이터를 조작하는..

독서/오브젝트 2020. 1. 14. 11:32
Object Chapter 03. 역할, 책임, 협력

객체지향 패러다임 관점에서의 핵심 역할: 객체들이 애플리케이션의 기능구현을 위해 수행하는 상호 작용. 책임: 객체가 협력에 참여하기 위해 수행하는 로직. 협력: 수행하는 책임들이 모여 객체가 수행하는 구성. 협력 객체 지향에서의 객체는 고립된 존재가 아닌 애플리케이션 기능을 수행하기 위해 다른 객체와 협력하는 사회적 존재. public class Screening { private final Movie movie; public Reservation reserve(Customer customer, int audienceCount) { return new Reservation(customer, this, calculateFee(audienceCount), audienceCount); } private Mon..

독서/오브젝트 2020. 1. 13. 08:46
Object Chapter 02. 객체지향 프로그래밍 - 영화 예매 시스템

영화 예매 시스템 영화는 영화에 대한 기본 정보를 의미한다. - 제목, 상영시간, 할인정책, 할인조건 상영은 관람객이 영화를 관람하는 정보를 의미한다. (실제 관람객이 예매하는 대상) 할인 조건에 따른 할인 정책이 존재한다. 할인 조건 순서 조건 상영 순번을 이용해 할인 여부를 결정. 기간 조건 상영 시작시간이 특정 기간인 경우 할인 여부 결정. 할인 정책 금액 할인 정책 예매 금액에서 일정 금액을 할인해 주는 방식. 비율 할인 정책 예매 금액에서 일정 비율의 금액을 할인해 주는 방식. 객체 지향 설계의 초점 클래스를 고민하기전에 어떤 객체가 필요한지부터 고민하라. (도메인 결정을 먼저하라는 의미인듯?) 객체를 독립적인 존재가 아닌 협력하는 공동체의 일원으로 생각하라. (각 객체는 자율적인 존재) 영화 ..

독서/오브젝트 2020. 1. 5. 16:34
Object Chapter 01. 객체, 설계 - 티켓 판매 어플리케이션

티켓 판매 어플리케이션 공연장의 공연을 보기 위해서 관람객은 티켓이 필요하다. 이벤트를 진행하는데 관람객이 초대권을 가지고 있을경우 무료로 관람 가능하다. 초대권이 있을경우 초대권을 교환하여 입장가능하며 없을경우 돈을 지불하고 입장 가능하다. 개선 전 소스 관람객의 경우 소유금액, 티켓, 초대권을 가지고있는 가방을 소유하고있다. /** * 관람객 도메인 클래스 * 소지품을 보호하기 위해 가방을 소지한다. */ @RequiredArgsConstructor @Getter public class Audience { private final Bag bag; } /** * 관람객의 가방을 나타내는 도메인 오브젝트 */ public class Bag { /** * 보유 금액 */ private Long amount..

독서/오브젝트 2020. 1. 3. 09:43
오브젝트 - 읽게된 동기

한달전에 구매해서 초반만 읽다가 집에서 썩혀두고있다가 이번에 다시 읽기로 다짐했다.최근 사내에 저자가 강의도 와서 들었는데 개인적으로 상당히 충격이었다.나름대로 객체지향 언어를 사용하고 있다고 생각했지만 객체 지향 언어를 사용은 하고있지만 제대로 사용하고 있지 않았던것이다.평소에도 DDD에 관심은 있었지만 실제로 찾아보고 공부한적은 없어서...이책으로 시작해보려 한다.언제 끝까지 읽을지 모르지만 읽으면서 블로그에 짧게나마 정리하여 올리려고한다.

독서/오브젝트 2020. 1. 2. 11:00
이전 1 다음
이전 다음
250x250
최근에 올라온 글
최근에 달린 댓글
TAG
  • structured concurrency
  • nodejs
  • 파이썬
  • DevOps
  • 자바스크립트
  • kotlin
  • Spring Boot
  • 비동기프로그래밍
  • Coroutine
  • 디자인패턴
  • CoroutineScope
  • git
  • async
  • 코틀린
  • 일기
  • 웹개발
  • 운동
  • Docker
  • 객체지향
  • 오브젝트
more
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바