TIL-20210317

2021. 03. 18.
  • 어제 봤던 뷰 리졸버에 이어서 렌더링 과정을 살펴봤다. 컨텐츠 네고시에이션 뷰리졸버에 등록이 되어있는 듯 한데, 여기서 뷰 리졸버 목록을 찾고 가장 적합한걸 리턴한다. 리스트의 우선순위와 헤더로 찾는 듯 하다. 컨텐츠 네고시에이션이 같은 URL을 공유하는 자원들을 리스폰스 타입에 따라 다르게 리턴해주는 것으로 이해했는데 정확한것인지 모르겠다.

    뷰 리졸버에서 뷰를 찾아오면 해당 뷰에서 렌더링을 진행한다. 템플릿 뷰일 경우 해당 뷰에서 파싱을 진행한 뒤, 서블릿의 PrintWriter에 append해준다. 아마 마지막에 flush를 해주는듯한데, 여기는 다시 찾아봐야 할 것 같다. 후처리 부분에서 보내주는 것 같다. 여기서 또 궁금해진게, 자원들이 한 번에 넘어오지 않고 서로 다르게 넘어간다. 예전에 비슷한 주제로 발표하는걸 들었던 것 같은데 정확한 동작을 봐야할 것 같다.

    가장 궁금했던 것은, 그렇다면 저 PrintWriter에 있는 버퍼는 과연 누구와 연결돼있느냐 였다. 애초에 response와 request가 어디서 오느냐에 관한 문제이기도 한데, 서블릿에서 사용하는 것은 서버와 연결돼있다. catalina에 있는 Connector를 가져온다. 그 뒤 Connector에서 createResponse를 해준다. 브라우저와 직접 연결된 부분은 서버 안쪽까지 봐야하는 것 같다.

  • 미션4를 미리 진행했다. soft delete를 적용했는데, 쿼리처리가 쉽지 않았다. 최대한 쿼리 자동 생성을 이용해보려고 했는데, 그러니 쿼리명이 아주 길어졌다. 이대로 사용해도 되는걸까? 쿼리도 마이크로하게 가져가는게 더 좋을수도 있겠다. 하지만 애매한 부분은, 쿼리를 마이크로하게 가져간 뒤 객체를 따로 조립을 해야한다는 점인데, 이렇게하면 굳이 oneToMany로 연결한 의미가 있는지였다. 다음 미션에서 질문을 해봐야할 것 같다.
  • 파이썬에는 상수가 없다. js에도 있는게 없다는 사실이 놀라울 따름인데, 직접 접근을 막기 위해 js와 비슷한 방법을 쓰는 것 같다. 객체지향을 염두해두고 만든게 아닌 것 같은 느낌이 들었다.
정대화
DaeHwa_Jeong@outlook.com

Powered with by Gatsby 2.0