처음 자바를 배울 때, 어디서 시작해서 어떻게 흘러가는지 파악하기위해 애를 썼었다. 익숙해지려고하니 Spring을 시작하게되어, 마찬가지로 어디서부터 프로세스가 진행되는지 감을 이제 초큼 잡은 정도.. 아마 다음과 같이 이루어 지는듯 하다.
A. 프론트엔드로부터 다양한 방식으로 데이터를 받는다. JSON형식일수도 아닐수도, PathVariable 일수도, Request Param일수도..
A'. 더 정확하게는 Controller가 RequestDto에 데이터를 받는다.
B. RequestDto를 Service에 넘긴다.
C. Service가 받은 RequestDto를 주어진 요청(CRUD)에 맞게 '준비?시켜서' Repository로 보낸다.
D. Repository에서 준비된 데이터로 DB와 상호작용한다.
E. 상호작용한 DB를 ResponseDto에 담아서 반환한다.
강의에서 배운 프로젝트는 이렇게 흘러가던데, 일단 흐름정도는 파악한것 같아 간신히 따라가는 중이다.
두시간동안구글링하면서환장하는줄알았다. 결국 운좋게 튜터님께 물어볼 기회가 생겨서 해결할 수 있었고 더 깊은 지식도 얻어갈수있었다.
처음엔, 날짜를 DB자체에 current값으로 자동생성되게 한 후 responsedto로 받을때 출력이 되지않아 난항이었다. mysql과 spring 데이터 맵핑하는게 힘들어서 고생하다가 튜터님과 만나서 잘 해결했다. 캠프 동기분이랑도 얘기한건데, 웬만하면 service에 뭘했는지 몰아놓는게 좋을것 같다고 판단했다. (db자체에서 생성하는건 service에서 볼수가 없기때문) 그래서 entity에는 localdatetime으로 넣고 출력할때는 String필드에 dateformat으로 받아 출력하였다. 산 하나 넘은것 같아 기쁘다