프로젝트가 끝난지 벌써 1주일이 지났다.
예상은 했다만 새로 코드를 짜는게 좋지 않을까 싶을 정도로 다시 알아보기 어려웠다.
일단 MVC 모델을 적용하겠다고 controller, service, model 레이어를 나눠 적용한다고 했다. 하지만, service 레이어에 모델에 대한 제어까지 모두 들어간 코드였다.
현재 MongoDB를 사용하는데, Postgresql을 사용하려 한다면?
Model만 바뀌는 것이 아니라 Service 레이어까지 완전 손 봐야 하는 상황이다..
테스트 코드도 통합 테스트로 짜왔는데, 서비스마다 유닛테스트도 필요하다고 느껴졌다.
Service 레이어의 함수들이 하나의 서비스 객체로 이루어지는 것이 아니라 각각 함수만 정의되어있고, 컨트롤러에서 서비스를 호출할 때, 각각 함수를 호출에 사용하게 되어있다.
흠...
의존성 주입면에서 클래스로 코드를 구현해 Service 레이어에 Model을 주입해 사용하는 것이 더 좋지 않을까?
Model과 Service의 역할을 분명히 나눠야겠다.
먼저, mongoose의 static 함수로 Service에서 참조하는 Model 함수를 정의하는 것이 좋겠다.
그리고 Service를 클래스로 정의하여 Controller에서 인스턴스로 사용한다. (생성자에 Model 주입)
유닛 테스트 하는 것을 목표로 한다.
먼저, Jest의 mock 함수를 이해하고, mocking을 시도한다.
처음 팀 프로젝트로 구현하다보니 기능을 빠르게 구현해야 한다는 마음이 급했다.
더 깊이 공부하면서 좋은 프로젝트 구조에 대한 고민도 놓지 않아야겠다.
다음 프로젝트는 1월 말인데, 그 전까지 더 좋은 코드를 짤 수 있도록 준비해보자!