과제 내용
이번 과제는 테스트 코드를 연습해보고 기능들을 개선시켜보는 과제입니다.
트러블 슈팅
배경
기능들을 개선 시키는 과제 목록중에 Service에 도메인 로직을 엔티티에 위임시키는 목록을 진행하면서 Service에 있는 Password 체크와 같은 유효성 검사들을 Entity 클래스에 위임하던 중 Entity 클래스는 이미 DB와 소통하는 클래스로서의 책임을 가지고 있는데 과연 Entity 클래스에 유효성 검사와 같은 책임을 맡게해도 될까? 라는 생각이 들었습니다.
해결
구글링을 통해 Entity 클래스가 과연 유효성검사와 같은 책임들까지 맡게 해도 될지 찾아봤는데 Entity 클래스는 이미 DB와 소통하는 클래스로서의 책임을 가지고 있는데 거기에 유효성 검사와 같은 책임들 까지 넘겨주면 SRP 원칙을 위배한다는 글을 보고 Entity로 위임 시키던걸 멈추고 다시 Service에서 검사하도록 수정했습니다.
회고
개인적으로 이번 과제가 지금까지 했었던 과제들보다 어려웠었던 것 같다. 직접적으로 무엇을 구현해라! 이런게 아니라 내가 생각하고 직접 그 문제를 어떤 방법으로? 왜 그방법으로? 라는 생각들을 하며 해결한다는게 정말 힘들었던 것 같다.
하지만 왜 이 방법으로 했고 왜 저 방법보다 이방법을 선택했지 라는 생각을 혼자 하다보니 좀 더 개발적인 지식이 머리에 좀 더 잘 박히는 것 같았다.
'TIL' 카테고리의 다른 글
GCS를 이용한 이미지 업로드 기능 구현 (2) | 2024.11.08 |
---|---|
AOP (0) | 2024.10.31 |
Todo 프로젝트 리팩토링 하기 (0) | 2024.10.30 |
뉴스피드 프로젝트 리팩토링 (1) | 2024.10.25 |
REST, REST API, RESTful (2) | 2024.10.21 |