본문 바로가기
개발 잡담

BDD 는 아는데 DDD는 무엇이냐

by 휴일이 2024. 4. 24.

보성씨 반가워요

 

 

 

도메인 주도 개발을 들어본 적은 있었다.

뭐 언젠가 적용해볼 날이 있겠지 하고 생각만 했었다.

 

 

 

요만큼에 공유 가계부 기능이 추가되어 가계부 설계를 변경해야했고 고민되는 것이 있어 몇 가지를 개발자님께 여쭤보았다.

두루뭉술하게 얘기하면,,

 

기존에는 가계부가 1인 1가계부였기때문에 가계부를 생성한 사람인지만을 검증하면 됐지만

지금은 한 사람이 여러 가계부를 생성할 수 있고 가계부 생성자가 아닌 "가계부에 소속되어 있는 사람" 임을 검증해야하는데

기존 코드는 이렇게 createUserId 에서 가져와서 검증하기만 하면 됐었지만 

이제는 가계부->가계부유저-> 유저 -> user_id 를 가져와서 검증해야함.

게다가,

  • 초대중이 아니라 초대를 수락한 유저인지
  • 쓰기/수정/삭제 를 하려고 한다면 그런 권한이 있는지도 검사가 필요.

그래서 수정하게되면

  • accountBook서비스나 User 서비스에서 검증 진행
  • 세션유저아이디를 DB 들려서 엔티티로 가져와야해서 레포지토리 코드가 필요함.
  • UserEntity 레포지토리를 선언해서 검증시키는 엔티티에 본인 필드가 아닌 부분을 선언하는 거라 좋지 않을 같음.

요런 연유로 여쭤보았는데

 

 

 

도메인 내부의 checkAuthorizedUser 메소드 구현만 변경해주면 된다고 한다.

권한 검사 같은 도메인 규칙은 도메인 내부에서 처리해주는 게 맞고 가계부 관련 로직이 user 에 있는 것은 도메인 설계 원칙에 어긋난다고,,

감사하게도 덧붙여 DDD 책을 추천해주셨다!

 

 

 

 

그런 연유로 나의 알라딘에는 이렇게 이북이 추가가 되었다(왠지 eBook 보단 이북이라고 하는 게 좋다 거북이같고)

오늘 출근길에 읽어보았는데 지금 내게 굉장히 도움이 될 것 같다..ㅎㅎ

길지 않으니 얼른 읽어주어야지

 

 

도메인 주도 설계 마스터가 되어 돌아오겠다..

 

 

 

 

오늘 포스팅의 내용은~ !!

 

 

 

끝.

728x90