3D-Asset의 백엔드 파이널 프로젝트의 구조가 DIP에 적합하지 않다.

jaegeunsong97·2023년 6월 27일
0

TIL

목록 보기
139/156
post-thumbnail

2023_6_26_TIL

上男子 되는 길

上男子 TIL

마지막 파이널 프로젝트의 멘토링을 받았다. 역시 가장 강조하신 부분은 객체지향적인 설계였다.

왜냐하면 SOLID 방식으로 설계를 해야 나중에 확장성과 유지보수 측면이 매우 올라가기 때문이라고 하셨다.

따라서 현재 우리가 가지고 있는 프로젝트의 구조는 Controller - Service - Repository 이런 순서로 되어있는데, 반드시 구체화된 Repository로 Service가 접근을 하는 게 아닌 추상적인 것에 의존을 하게 해야한다고 하셨다.

따라서 Impl을 사용해야한다. 하지만 우리 팀의 프로젝트 구조는 매우 다르다. 기본적인 방법으로 하기 때문이다.

따라서 어떤 문제가 있었냐하면

각각의 매소드 마다 무려 6줄에서 10줄이 넘어가는 코드가 만들어졌다. 물론 서비스단에서는 비즈니스 로직을 처리해야하기 때문에 그럴수 있지만, 나 스스로도 뭔가 코드를 만들면서 매우 이상하다고 느꼈다.

보시다시피 구체적인 Repository에 의존을 하고 있다.

이렇게 되면 안좋은 점은 이전에도 말한 것처럼 테스트 코드를 짜기가 너무 힘들다.

반드시 Repository를 Impl 형식으로 따로 만들고 인터페이스를 의존하게 만들자.

또한 가장 큰 단점으로는 유지보수 측면이 너무 힘들다.

만약 서비스 코드가 인터페이스를 의존하고 있다면 추상적인 것을 의존하기 때문에 더 좋은 유지보수와 확장성 환경이 나왔을 것으로 생각이 든다.

上男子

上男子 스케줄

上男子 스케줄

상남자 스케줄

上男子 노션

상남자의 공부 노션

profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글