본문 바로가기

OOP5

Getter와 Setter는 왜 써야 할까? 꼭 써야될까? 들어가기 엘레강트 오브젝트 책을 읽으면서, getter, setter에 대해서 궁금증을 가질 수 있었습니다. 자바 진영에서는 Lombok 때문에라도 Getter, Setter를 더욱 편하게 쓸수 있습니다. 또한, 뜻이 맞는 이와 소통하는 방에서도 비슷한 질문이 나와서 아래와같이 답변했습니다. 왜 Getter와 Setter를 사용할까? Getter와 Setter를 이해하기 위해선는, 자료구조와 객체의 차이점을 먼저 이해해야한다고 생각합니다. 클린코드에서나 또는 구글에서 객체와 자료구조에 대한 차이점을 검색하면 여러 결과물이 나옵니다. 몃가지 내용을 정리하면 아래와 같습니다. 객체와 자료구조의 차이점은 무엇일까? 객체는 추상화된 인터페이스 뒤로 자료를 숨긴 채 데이터를 다루는 함수만 공개합니다. 자료구조는 .. 2021. 2. 27.
PayrollSystem 프로젝트에서 디자인 패턴은 어떻게 사용되었는가?(feat. 클린 소프트웨어) 들어가기 '클린 소프트웨어 - 로버트 마틴 저자' 에서 payroll 아키텍처 코드를 보고... Slipp 스터디에서 디자인패턴에 대한 학습을 하면서, 클린 소프트웨어 책을 학습하고 있습니다. (이 책의 좋은 점은 따로 또 포스팅하겠습니다.) 책의 일부분으로 로버트마틴이 PayrollSystem 코드가 나오는데, 그 부분을 보고 이해한 부분을 적어볼까합니다. 어떻게 만들어졌을가? 이 책에서는 총 5가지의 명세가 나오고 이를 해결하기 위해 다음과 같은 패턴을 활용합니다. 1. 커맨드 패턴와 액티브 오브젝트 패턴 2. 템플릿 메서드와 스트레티지 패턴 3. 퍼사드 패턴 4. 싱글톤과 모노스테이트 패턴 5. 널 오브젝트 패턴 코드에서 어떻게 사용되고 있는지 확인해봅시다. 각 패턴에 대한 자세한 설명은 스킵하고,.. 2020. 9. 9.
패키지 설계의 원칙 이란 무엇일까? Photo by Scott Webb on Unsplash 클린 아키텍쳐의 Ch20 - 패키지 설계의 원칙을 내용을 읽고, 저의 주관과 합쳐 아래 내용을 적었습니다. 혹시라도 잘못된 부분, 잘못 이해된 부분에 대해서는 댓글 남겨주시면 반영하도록 하겠습니다. 들어가기 우리가 객체지향 프로그래밍을 할 때 흔히 SOLID 원칙이라 불리는 내용이 있습니다. SOLID 원칙을 잘 지켜내면서, 코딩을 한다라면- 그 코드는 흔히 질좋은 코드다. 라고 이야기할 수 있습니다. 마찬가지로, 패키지를 구성하는 방법에서도 SOLID 와 같은 원칙이 존재한다고 생각했습니다. 그런 부분이 궁금해고, 그 부분을 해결할 수 있는 요소로서 로버트 마틴의 클린 아키텍처 책을 살펴보게 되었습니다. 저와 같은 고민을 가진 사람들에게 조금이나.. 2020. 9. 5.
[동영상 정리]의존성을 이용해 설계 진화시키기 - 조영호 님 의존성을 어떻게 관리하는가? 그것이 핵심☢️ 의존성의 정의란 무엇일까? A가 B에 의존할수록 위 그림과 같이 점선으로 그린다. 이 그림의 의미는 B가 변경될 때 A도 같이 변경 될 수 있다. 라는 것을 의미한다. 그러므로, B가 뭐가 됐던 A가 같이 변경 될 수 있음을 의미합니다. B클래스의 변경에 따라서 A에 영향을 줄수 또는 안줄 수도 있다. 클래스 의존성의 종류 패키지 의존성 패키지에 포함된 클래스 사이의 의존성 import에 다른 패키지의 이름이 있다면 디팬던시가 있다고 생각하면 된다. 설계 할 때 좋은 규칙이 몇가지 있다. 양방향일 경우, 싱크를 맞추는데- 비용이 많이 든다. 패키지 세계에 사이클이 돈다라는 것은 하나의 패키지라고 봐야 한다. 의존성을 가장 쉽게 이해할 수 있는 방법은 역시 코드.. 2020. 8. 21.
[동영상 정리]애플리케이션 아키텍처와 객체지향 - 조영호님 영화관에서 영화를 상영하는 도메인을 예제로 OOP를 설명합니다. 아키텍처 프로젝트에 참여하는 개발자들이 설계에 대해 공유하는 이해를 반영하는 주관적인 개념 : 주관적이다... 중요한것? 변경하기 어려운 것? 일찍 변경 하기 어려운 것? 관심사의 분리 서로 다르고 관련이 없는 책임들을 분리 좀 더 세분화할수 있다.그러나 우리는 위 3가지로만 나눠서 시작하겠습니다. 여기서 가장 중요한 레이어는 도메인 레이어입니다. 대부분 2가지 종류의 도메인 레이어를 설계합니다. Transaction Script와 Domain Model의 차이점은 무엇일까? 도메인 레이어가 주도하기 때문에 도메인 레이어는 중요합니다. 아래는 도메인 컨셉입니다. 할인을 2가지 정책을 가질 수 있다. 퍼센트 또는 고정 할인가로 할 수 있다... 2020. 8. 21.