TIL

TIL-220707

혹등고래1호기 2022. 7. 7. 23:42

오늘도 todolist만들기가 주력 어제와는 코드를 다르게 짜서 요구사항을 만족하게 일단은 완성을 시켰다. 하지만 어제와 마찬가지로 도메인 모델을 어떻게 만들어야 할까 고민하다가 결국 굉장히 간단한 프로그램이여서 도메인 모델을 안 만들고도 요구사항은 충족하게 만들어 버렸다.  어제 같은 경우에 나는 도메인 모델을 어떤 식별자 값을 속성으로 줄려고 했는데.. 엥  도대체 어떤 걸 식별자로  줘야 하는거야... 그래서 오늘은 도메인 모델에 대해서 조금 더 공부를 했는데 정확히는 뭔지는 아직 잘 모르겠다. 직접 만들어 보고 경험을 해봐야 하는 영역인 것 같지만 일단은 오늘 공부한 도메인 모델이라는 녀석을 정리 하는 시간을 가져보자 

 

도메인(domain)

 

도메인은 소프트웨어 엔지니어링에서 사용되는 용어로써, 프로그래밍으로 해결하고자 하는 주제에 대한 영역과 핵심 비즈니스 요구사항을 의미하는 단어다. 도메인은 다시 하위 도메인으로 나뉘어질 수도 있다. 

위의 그림 처럼 쇼핑몰을 개발한다면 온라인 쇼핑몰 자체가 도메인이 될 수 있고 "상품", "회원", "주문" 이 하위 도메인이 되며 또 다시 하위 도메인 들이 있는 형태가 될 것이다. 

 

도메인 모델(domain model)

 

도메인 모델은 강의에서는 account라는 모델을 사용하였는데 계좌는 실제로 은행에서 사용하는 용어이다. 바로 실세계에 있는 개념을 코드로 녹여 낸것이다. 우리가 일상 생활에서 볼 수 있는 패션 모델이나 모델 하우스에서 쓰이는 그 모델과 비슷한 개념인 것 같다. 모델이란 것이 결국 현실 세계에 존재하는 것을 가공해서 사용자에게 정보를 제공해주는 역할이니 소프트웨어에서는 가공과정을 바로 코드로 녹여내는 것이 도메인 모델이다. 

도메인 모델은 왜 사용하는 걸까? 도메인 모델을 사용하면 여러 관계자들이 동일한 모습으로 도메인을 이해하고 도메인 지식을 공유하는 데 도움이 된다 라고 한다. 일종의 관계자들끼리 괴리감을 줄이기 위한 방법의 한 종류? 로 볼 수 있을 것 같다. 

 

계속해서 엔티티와 밸류 레포지토리에 대해서 알아보기