TIL 2021.04.01 [스프링/문제해결]

Kyu·2021년 4월 1일
0

TIL

목록 보기
81/322

페이징 처리 문제해결

요약
1. 모델이 잘 들어가는지 디버거 등을 통해서 확인한다
2. 모델이 잘 들어갔는데 왜 난 레포지토리가 잘못됐다고 생각했을까?
3. 모델이 잘 들어갔으면 질문목록이 안나오는거면 뷰에서 문제가 있는거잖아?
4. 어떤 지점에서 문제가 생겼었는지 곰곰히 생각해본다
5. 팀원과 토의하며 어떤 부분에서 문제였는지 힌트를 겟.
해결

이전 TIL 마지막에 자바버전을 마주처주면서 페이지가 나오도록 문제를 해결했다.

근데 이번에 새로운 문제가 나타남.

페이징처리는 되는데 질문목록이 나오지가 않았다.

  1. 오타없음
  2. 모델에 데이터가 잘 들어갔는지 확인

첨에 데이터가 모델로 모두 잘 들어갔지만, 뷰에 나오지 않는 게 이상하게 나는 레포지토리에서 퀘스쳔을 불러오는 과정에서 문제가 생겼다고 생각했다. 음, 지금 다시생각해도 왜 그렇게 생각했는지 이해가 안간다. 왜냐면 일단 모델로 들어갔다는 말은 코드 내에 모든 로직은 잘 처리되어서 정상적으로 템플릿엔진을 통해서 뷰에 전달되기 때문이다.

결론은 내가 템플릿엔진 문법을 잘못사용했다고 생각했다. 그와 관련해서 내가 뭘 잘못했나 생각해봤다. 그러고보니, 무스타치를 쓰다가 핸들바로 변경했었다. 그게 문제였었다.

여러가지 참고한 자료를 바탕으로 그닥 이해는 못했지만 {{#each AttributeName}} {{/each}} 를 써야 페이징을 할 수 있을거라고 생각했다. 그런데 무스타치를 적용한상태로 어플리케이션을 실행하면 자꾸 이부분에서 문제가 생겼다.

핸들바를 저번에 사용했을때 무스타치 문법과 똑같아서 핸들바로 바꾸면 저게 잘 작동할거라고 생각해서 핸들바로 변경했었던거다.
근데 그게 문제였었다.

왜냐면 each를 넣어야 페이징이 잘 작동할거라고 생각했던 예상과 달리 each를 빼도 똑같이 작동했다. 대신에 무스타치에로 해봤을때는 잘작동했는데 다시 핸들바로 옮겨서 똑같이 each를 없애고 해봤을 때는 안되더라.

Model vs Entity vs Domain

Model: model은 mvc에서 나온 단어 모델이 데이터를 저장한다.

Domain: "해결해야하는 문제 집합" 도메인은 우리가 해결해야할 문제 그자체를 도메인 쇼핑몰하면 쇼핑몰 도메인
도메인은 항상 서브도메인을 가진다. 결제도메인 구매도메인 회원가입도메인 등등

EntityL ddd 에서 나오는 하위 개념.

번외
VO vs Entity 식별자가 있고 없고.

profile
TIL 남기는 공간입니다

0개의 댓글