반응형
우테코 강의에서 처음 보는 도메인에 접근할 때의 방식 2가지를 소개해줬다.
1. Out -> In 접근 방식
2. In -> Out 접근 방식
1. Out → In 접근 방식 VS In → Out 접근 방식
* Out -> In 접근 방식
- 큰 관점에서 접근하는 방식
ex : 사다리 한 개의 의미가 뭘까? 사다리 한 라인은 뭘까?
사다리 전체가 있고, 사다리 한 라인이 있네!
* In -> Out 접근 방식
- 가장 작은 단위를 찾아서 접근하는 방식
ex : 이게 가장 작은 단위인 것 같으니, 여기부터 시작해보자.
작은 것부터 하고, 이걸 합치다보니 완성되어 있다.
이 접근 방식은 취향의 차이지만 좀 더 적합한 것은 존재한다.
Out → In 방식은 도메인 지식이 없거나 요구사항을 객체로 도출할 수 없을 때 적합하다.
In → Out 방식은 도메인 지식이 있거나 요구사항을 객체로 도출할 수 있을 때 적합하다.
내가 도메인 지식이 없거나, 객체로 도출하기 힘들다! 하면 Out → In 접근 방식으로
큰 그림을 그려나가면서 객체로 만들 수 있는 작은 부분을 찾자.
나의 경우도, Out → In 접근 방식으로 먼저 사다리 전체, 사다리의 한 라인 등등
이 의미가 무엇일까 생각하면서 도메인 지식을 쌓은 후에,
In → Out으로 Out → In에서 발견했던 작은 하나의 객체를 정의했던 것 같다.
둘 중에 어떤 접근 방식이 더 나은지는 중요하지 않고
결국 실제 개발에서는 Out → In, In → Out 접근 방식 둘 중 하나만 사용되지 않고
두 방식이 상호작용하면서 핑퐁처럼 주고 받으면서 개발이 진행된다.
도메인을 이해하기 위해서는 그림을 그리는 등, 실제로 도메인을 체험해보자!
그리고, 객체 단위로 도메인을 바라보자!
* 객체가 될만한 것
1. 사다리 전체
|-----| |-----|
| |-----| |
|-----| | |
2. 사다리 한 줄
|-----| |-----|
3. 사다리 한 줄의 연결
----- / ' '
4. 사다리 한 줄의 연결을 구분하는 구분자?
|
반응형
'우아한테크코스 5기 > 학습 로그' 카테고리의 다른 글
함수형 인터페이스의 정의 & 사용 예제 (0) | 2023.04.10 |
---|---|
instanceof 사용을 지양하기 - Why? Solution? (1) | 2023.03.19 |
VO(Value Object)는 무엇일까? 왜 사용할까? (2) | 2023.03.12 |
포장 값을 View로 전달하는 방식으로 무엇을 사용할까? (2) | 2023.02.27 |
[Java] ArrayList, LinkedList를 직접 구현해보며 이해한 것 (0) | 2023.02.26 |