도메인 주도 개발을 들어본 적은 있었다.
뭐 언젠가 적용해볼 날이 있겠지 하고 생각만 했었다.
요만큼에 공유 가계부 기능이 추가되어 가계부 설계를 변경해야했고 고민되는 것이 있어 몇 가지를 개발자님께 여쭤보았다.
두루뭉술하게 얘기하면,,
기존에는 가계부가 1인 1가계부였기때문에 가계부를 생성한 사람인지만을 검증하면 됐지만
지금은 한 사람이 여러 가계부를 생성할 수 있고 가계부 생성자가 아닌 "가계부에 소속되어 있는 사람" 임을 검증해야하는데
기존 코드는 이렇게 createUserId 에서 가져와서 검증하기만 하면 됐었지만
이제는 가계부->가계부유저-> 유저 -> user_id 를 가져와서 검증해야함.
게다가,
- 초대중이 아니라 초대를 수락한 유저인지
- 쓰기/수정/삭제 를 하려고 한다면 그런 권한이 있는지도 검사가 필요.
그래서 수정하게되면
- accountBook서비스나 User 서비스에서 검증 진행
- 세션유저아이디를 DB 들려서 엔티티로 가져와야해서 레포지토리 코드가 필요함.
- UserEntity 에 레포지토리를 선언해서 검증시키는 건 엔티티에 본인 필드가 아닌 부분을 선언하는 거라 좋지 않을 것 같음.
요런 연유로 여쭤보았는데
도메인 내부의 checkAuthorizedUser 메소드 구현만 변경해주면 된다고 한다.
권한 검사 같은 도메인 규칙은 도메인 내부에서 처리해주는 게 맞고 가계부 관련 로직이 user 에 있는 것은 도메인 설계 원칙에 어긋난다고,,
감사하게도 덧붙여 DDD 책을 추천해주셨다!
그런 연유로 나의 알라딘에는 이렇게 이북이 추가가 되었다(왠지 eBook 보단 이북이라고 하는 게 좋다 거북이같고)
오늘 출근길에 읽어보았는데 지금 내게 굉장히 도움이 될 것 같다..ㅎㅎ
길지 않으니 얼른 읽어주어야지
도메인 주도 설계 마스터가 되어 돌아오겠다..
오늘 포스팅의 내용은~ !!
끝.
728x90
'개발 잡담' 카테고리의 다른 글
CI/CD 도입..(with Jenkins) (0) | 2024.05.29 |
---|---|
조회 쿼리로 성능 개선기 ^ㅅ^ /) ( 1.47s -> 886ms ) (1) | 2024.04.26 |
"IT 엔지니어를 위한 네트워크 입문"을 마치며 (0) | 2024.04.22 |
티스토리에 도메인을 연결했다 (0) | 2024.04.19 |
간단하게 DNS 개선을 했다고 해야 하나 이걸 표현을 어떻게 한담. (0) | 2024.04.03 |