기능(메서드) 기반 해석
(흩어져서 기능 처리)
컨트롤러 메서드는 사용되는 기능을 전부 커버하는 것은 아니고,
몇개는 뷰 페이지에서 자바스크립트를 사용, 체크박스, 서브밋 버튼 등으로 직접 처리되고
몇개는(주로 로그인 검증 관련 + 사용하지않을 페이지 뷰 리졸버) securityConfig에서 처리된다.
-
(나머지 컨트롤러 메서드는 19개) -> 외운다
멤버 - 회원가입폼, 폼제출, 로그인폼, 로그인에러폼 / 1~4번
메인 - 메인, 아이템, 페이지뷰 / 5번
오더 - 아이템 직접주문, 오더 캔슬, 오더히스토리 / 6 7 8번
카트 - 카트 페이지, 카트 아이템 주문, 카트에 아이템 넣기, 아이템 삭제, 아이템(수량) 업데이트 / 9 ~ 13번
아이템 - (어드민) 생성폼, 세이브제출, 수정폼, 업데이트제출, 아이템 관리페이지 + (유저가 보는 아이템디테일) / 14 ~ 19번
-
URL or View form에서 시그널을 보내면
컨트롤러가 필요 정보를 받아서 가공 처리. or 필요한 것 공급 or 성공 혹은 실패 시그널 정도만 보낸다.
이때 케이블로는 DTO가 사용되며, DTO는 검증도 한다.
-
뷰나 서비스 등을 전부 훑어봐야 하지만, 최대한 빠르게 전체 그림을 파악하기 위해서는 사실 DTO와 컨트롤러 정도면 충분
결국 유저가 사용하는 서비스는, 어떤 데이터를 가지고 어떤 기능을 하느냐의 문제이기 때문에
* 나머지는 형식의 문제 / 엔티티는 DTO로 대략적 그림 파악이 가능
* DTO가 모든 엔티티의 요소를 가져오는것은 아님
-
나머지 조각들
: 뷰에서 js onclick메서드로 컨트롤러에 커버하지 않는 기능 파악
-
왜 여기에는 모델이 사용되고 왜 여기에는 모델이 사용되지 않는지.
왜 여기에는 pathvariable이 사용되었고 왜 여기서는 requestParam이 사용되는지
왜 여기에는 principal이 들어가는지
-
아이템 조회시 컨트롤러에서 entitynotfoundEx를 직접 캐치해서 처리하지만
어떤 것은 서비스가 처리하기도 한다.