프로젝트

TIL-221127- 컨트롤러는 커질수가 없는 친구

혹등고래1호기 2022. 11. 27. 23:10

오늘은 어제 게획했던 리팩토링 부분을 조금 더 수정을 해야 하는 상황이였다. 리팩토링을 해야 하는 이유 어떤 게 이상한 상황인지를 제대로 인지를 못했던 상황이였는데 

 

ProductController의 크기가 너무 커지지 않을까 하는 걱정으로 Controller를 나눴다고 했는데 이것은 한 페이지안에서 여러개의 API를 호출한다 = 여러개의 컨트롤러를 사용한다. 

 

/products/{productId}/inquiries 를 처리하는 컨트롤러는 Product컨트롤러 일줄 알았는데 이건 InquiryController에서 처리를 해줘야 하는 리소스이다. 

 

REST API 구조를 사용한다고하면 하나의 컨트롤러에는 CRUD를 꽉 채워서 쓴다고 하면 최대 5개가 나올 수 있다. 

 

REST API로 설계는 해당 리소스에 대해서 CRUD 메소드 말고는 에러 핸들링 정도 밖에 올 수는 없는 것이다. 애플리케이션 레이어에 모두 위임해서 몇 줄 안되는 코드를 가진 메소드 5개짜리 컨트롤러가 커지는 건 불가능하다.

 

어제 구상했던 리팩토링 내용처럼 ProductController에서 inquiry를 get하고 create하는 형태는 잘못된 REST API설계이다. 

이렇게 수정했으면 다시 또 삽질을 해야 하는 상황이 발생할 뻔했는데 다행이다...

 

 

모달은 사용하지 않도록 하자.

 

현재 문제상황은 가끔 씩 accessToken을 undefined로 store에 보낸 다는 것인데 이게 왜 이런지 도통 모르겠다. 동료도 같은 문제를 가지고 있어서 이 문제에 대해서 조금 이야기를 나눴는데 styled-react-modal이라는 라이브러리를 쓰고 나서 accessToken이 가끔 undefinded가 나오는 경우가 생긴다고 한다. 

 

모달창을 조금 더 간편하게 사용하기 위해서 라이브러리를 썻는데  이런 문제가 생길 줄 은 또 몰랐네... 사실 이것 때문인지는 잘 은 모르겠다. 

 

일단은 임시방편으로 해당 store의 메소드에 console.log를 찍어놓으면 undefinded가 나오지는 않는데 

 

포트폴리오기 떄문에 로그인 기능을 사실 없애 버리거나 체험하기 같은 버튼을 만들어서 해당 모달을 아예 사용하지 않도록 지워버리는 방안을 생각을 해야 할 것 같다. 포트폴리오가 어떻게 되있나 좀 볼까 하고 열었는데 로그인하라고 하면 솔직히 질릴 것 같다. 

 

직접 만든 본인이 보면 뿌듯하지만 다른 사람들이 보는 입장에서는 아무것도 아닌 기능이니까... .

오늘은 긴 밤이 될 듯함니다..