[DDD] 설계를 한번 해보자. 제대로

gnoesnooj·2022년 6월 19일
0

배경

배경은 일단 티모태, 더모티 프로젝트를 경험하면서, 숱하게 겪은
개발단계에서 잘못된 설계로 인한 피해 들 때문이다.

돌아보니 이게 안맞고, 저게 안맞고 해서 그걸 고치고 다시 짜느라 시간과 노력이 곱은 더 들었던것 같다.
이러한 뻘짓들을 줄이기 위해, 한번 이번 프로젝트에서는 제대로된 설계를 해볼까 한다.

우선 시작으로, 다음 하게될 프로젝트는 쇼핑몰 프로젝트여서, 쇼핑몰에 대한 설계를 한번 해보기로 했다.

시도

처음이라서 완벽하게는 아니지만, 그래도 최소한의 틀이라도 될 수 있게 짜보자 했는데, 처음부터 탁 막혔다.

그래서 뭐라도 하는 마음에 뭔가를 막 시도를 했다..

처음에는 기능을 나열했다.

아무래도 더모티 프로젝트를 처음 시작할 때에 이런식으로 시작했던 것 같은데,

이렇게 짜는건 도움이 안 되었던 것은 아니지만, 그럼에도 불구하고 무언가 막막했다.

그래서 Entity 들을 뽑아봤다.

Q&A후기Post 라는 공통으로 묶을 수도 있고, 판매자유저 또한 서로 다른 필드를 갖지 않는 한User 라는 클래스, 또는 추상 클래스로 묶을 수 있을 것이지만, 그런 자세한건 잠시 넣어두고 엔티티를 뽑아봤다.

무언가 가닥이 잡혀간다? 라는 느낌이 들었던 것 같다.

이 다음에는 각각 엔티티나 클래스의 필드들을 쭈욱 나열했다. 중간중간 떠오르는 영감과 의문점들도 넣으면서..

필드를 짜니 또 궁금증이나 문제점들이 몇가지 발견되었다.

Product 하나만으로 모든 쇼핑몰의 상품들을 표현할 수 있을건지, 수량에 대한 것은 어떻게 관리를 해야할지 등 많은 궁금증이 생겨났다.

하지만, 이것들 역시 일단은, 잠시 넣어두기로 한다.

여기까지 와서야 난 무슨 설계를 하고 있는걸까 ? 라는 처음부터 짚고 넘어갔어야 할 생각이 내 머릿 속에 자리잡았다.

이때서야 부랴부랴 검색을 하고, 사놓았던 DDD 책을 뒤져봤다.

드디어 뭔가 가닥이 잡혀나갔다. 기존 스터디를 하며 짚고 넘어갔던, 혹은 알게모르게 스쳐 지나갔던 단어들이 제자리를 잡아가는 듯한 느낌이 들었다.

" 도메인, 어그리거트, 의존성..."

난 책을 보면서 다시한번 설계를 시도해봤다.

아직 수정을 거치지 않은 초안이기는 하나, 위에 메모장에 끄젹거려놨던 것 보다는 훨씬 뭔가 설계다운 설계같다 고 느꼈다.

이제부터 고민 중인 정책들을 하나하나 해결하면서, 완벽한 설계를 위해 고쳐나가야겠다.

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글