🧠 이번 주에 새로 배운 것
- 각 레이어 간의 역할과 비즈니스 로직을 도메인에 응축 시키는 구현 방법과 장점에 대해 알게되었어요.
- 도메인 모델링할때 고려해야 되는 점을 알게 되었어요. 관심사, 생명주기에 따라 바운디트 컨텍스트, 내부/외부 애그리거트를 나눌 수 있는 감이 생겼습니다.
- 클래스 다이어그램 작성시 합성, 참조, 조합의 관계를 알게 되었어요.
💭 이런 고민이 있었어요
- 값 객체를 언제 사용할지 고민이 있었어요. 정책, 범용성, 검증 책임 등을 고려하였습니다.
- 백엔드 개발자가 LLM을 어느 범위까지 학습을 해야하고, 구현 한다면 어떻게 할까 고민이 있었어요. 팀원들과 멘토님의 조언을 받고 방향성을 알게 되었습니다.
- XxxValidator, XxxFactory 클래스의 로직을 도메인으로 옮길 수 있는 방법을 연구하였습니다. 로직에 필요한 domain을 applicatino layer에 조회하여 domain의 메서드 인자에 넘겨주는 방식으로 구현하였습니다.
💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트
- 도메인 집약적인 코드로 리팩터링을 진행할 예정입니다. 코드를 보는 사람도 해당 도메인의 프로덕션 코드와 테스트 코드만 보고도 파악하는데 용이할 것이라 기대됩니다.
- 객체지향의 TDA(Tell don't ask) 기법을 한층 더 이해하고 사용할 수 있게 되었습니다.
🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것
- 과제 양이 많아서 구현에 급급하였습니다. 시간 관계상 요구사항을 창조하여 확장성 있는 설계를 하지 못한게 아쉽습니다. 과제를 진행하면서 조금씩 보완해갈 예정입니다.
- AI를 적극적으로 활용하였는데, 너무 의존해서 구현했나 싶습니다. 코틀린 학습에 조금씩 시간을 투자 해야겠습니다.