목록분류 전체보기 (14)
To Dare Is To Do!
SOLID란? 좋은 객체 지향 설계를 위해 지켜야 할 5가지 원칙을 의미한다. SRP : 단일 책임 원칙 (Single Responsibility Principle) OCP : 개방-폐쇄 원칙 (Open/Closed Principle LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) SRP - 단일 책임 원칙 한 클래스(객체)는 하나의 책임(기능)만을 가져야 하는 것을 의미한다. 하나의 책임이라는 것에 대한 기준은 책임의 크기 혹은 문맥과 상황에 따라 다르기 때문에 모호할 수 있다. 따라..
먼저 클래스(class)란? 자바에서 객체를 정의하는 설계도의 의미를 가지며 보통 붕어빵(객체 or 인스턴스)를 찍어내는 붕어빵 틀(클래스)에 비유하기도 한다. 여기서 객체는 클래스에서 정의한 속성과 기능을 가진 실체를 의미, 인스턴스는 특정 클래스로부터 생성된 객체를 의미 ex) Student 클래스를 통해 Student1과 Student2를 만들었다고 가정했을 때, Student1은 Student 클래스의 인스턴스라고 말할 수 도 있으나 Student1은 학생1의 속성을 가지는 객체, Student2는 학생2의 속성을 가지는 객체라고 이야기할 수 도 있다. 결국 클래스에서 나온 실체라는 의미에서 비슷하게 사용되나 바라보는 관점에 따라서 용어상 차이가 존재한다고 할 수 있다. 객체가 가지고 있는 속성은..
지난번 DTO와 Entity에 대해서 작성한 글에서 DTO는 레이어 간 객체 전송을 Entity는 DB 테이블 매핑을 위한 객체라고 확인한 적이 있다. https://whitehartlane.tistory.com/11 DTO vs VO vs Entity 과거 프로젝트를 진행할 때 어디서는 domain, 또 다른 곳에서는 DTO 등 비슷한 개념과 역할을 가지는 것 같은데 정확히 어떤 차이가 있는지 궁금했던 경험이 있다. 이번 기회에 DTO와 VO 그리고 Entity whitehartlane.tistory.com 그렇다면 클라이언트에서 데이터를 DTO에 받아 전송하다 DB에 가기 전에는 Entity로 변환해야 하는데 어디서 해야 하는 것일까? 또 어떠한 방법으로 변환해 주어야 하는 것일까? 이번 글을 쓰면서..
DDD(Domain Driven Design)란? 도메인 주도 설계 (DDD)는 설계 단계에서부터 기획자, 디자이너 등 프로젝트 이해관계자를 의미하는 도메인 전문가들이 참가하여 개발자와 도메인 전문가 모두가 이해 가능한 도메인 모델을 도출하고 이를 중심으로 발전시켜 나감으로써 복잡한 비즈니스 상황을 해결하는 개발 방법론이다. 여기서 도메인이란 소프트웨어로 해결하고자 하는 문제 영역을 의미하며 하나의 도메인은 여러 서브 도메인으로 나눌 수 있다. 예를 들어 배달 중계 어플이라는 도메인이 있다면 음식, 식당, 회원, 주문 등의 서브 도메인으로 나눠질 수 있다. 이러한 도메인을 개념적으로 표현한 것이 도메인 모델이다. DDD의 특징 1. 도메인 그 자체와 도메인의 비즈니스 로직에 초점을 둔다. 데이터 중심의 ..
과거 프로젝트를 진행할 때 어디서는 domain, 또 다른 곳에서는 DTO 등 비슷한 개념과 역할을 가지는 것 같은데 정확히 어떤 차이가 있는지 궁금했던 경험이 있다. 이번 기회에 DTO와 VO 그리고 Entity의 개념에 대해서 정리해 보고 해당 개념을 적절한 상황에 사용할 수 있도록 하자! DTO Data Transfer Object의 약자인 DTO는 계층(Controller - Service - Repository)간 데이터 전달을 위해 사용하는 객체이다. 데이터를 주고 받을 때 데이터를 담아서 교환할 수 있도록 하는 바구니라고 하면 이해하기 쉬우며 이 바구니는 주로 View와 Controller 사이에서 많이 사용되곤 한다. DTO는 데이터 교환만을 위한 객체이기 때문에 따로 비즈니스 로직을 갖지..