주노 님의 블로그

[Spring] 3. 서버가 클라이언트에게 페이지를 전달하는 방식 (MVC와 템플릿 엔진) 본문

공부/Spring

[Spring] 3. 서버가 클라이언트에게 페이지를 전달하는 방식 (MVC와 템플릿 엔진)

juno0432 2024. 7. 27. 20:45

시작하기에 앞서

아래 내용은 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근기술에서 발췌한 내용입니다.

 

 

강의자료 일부를 발췌하는건 괜찮다고 하셨다.

무료강의로 지식을 공유해주신 김영한님께 다시한번 감사의 인사를 올리겠습니다

(_ _) (유료도 샀어요!)

 

MVC는

MODEL : 비즈니스 로직 

VIEW : 유저에게 보여지는 페이지

CONTROLLER : 중간역할

거의 ECB패턴과 유사하다 생각하면된다

 

helloController 클래스에

위 내용을 추가해주고

 

hello-template를 리턴하니까 hello-template.html을 생성한다

 

 

그럼 오류가 뜨게 되는데

콘솔창에 경고가 떴다

메서드의 파라미터인 스트링을 위해서 네임은 파라미터가 요구되는데 지금은 없다.

ctrl + p를 누르면 위 내용이 뜬다 required의 default가 true기 때문에 name을 넘겨줘야한다.

 

http://localhost:8080/hello-mvc?name=juno

가 출력되게 된다

 

위 방식은 http의 get요청 방식중 하나로 ?이후에 쿼리 문자열(쿼리 스트링)을 포함하여 서버에 데이터를 전달한다

키 값쌍으로 되어있으며 여러개의 파라미터를 &로 구분할 수 있다..

키 : name

값 : juno

네이버도 이렇게 검색하게 된다면 그 검색창으로 가게된다

물론 네이버는 이것저것 붙는다 하지만 저렇게도 검색이 된다 ㅇㅇ.

 

https://search.naver.com/search.naver?query=폭염은 준호를 괴롭게한다

 

폭염은 준호를 괴롭게한다 : 네이버 검색

'폭염은 준호를 괴롭게한다'의 네이버 검색 결과입니다.

search.naver.com

 

 

hello-mvc get요청을 받으면

위 코드에서 String에 juno를 담고, 모델에 담긴후

리턴으로 템플릿으로 가게된다

 

 

모델의 키값의 name을 찾아서 치환해준다

 

어떻게 흐르는 것일까??

유저의 localhst:8080/hello-mvc의 get 요청을받으면

내장 톰켓서버에서 hellocontroller에서 있다는 것을 찾고

return의 hello-template를 찾아

model(키name :값 juno)넣은 내용을

 

spring은 viewResolver에서

템플릿 엔진이 처리한 후 변환을 한 내용을 전달해준다