나는 MVC 패턴에 대해 공부했지만 실제로 어떻게 사용하는지는 몰랐다. 때문에 이번기회에
<김영한님의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB"> 강의를 들으며 이해한 내용을 간단한 예제와 함께 써보려고한다.
<무료로 들을수 있다 최고!😆>
우선은 학습을 위해 Spring boot와 IDE는 IntelliJ를 사용하였다
이번에 나는 MVC(Model - View - Controller)에서 View와 Controller를 분리하여 사용하였다.
개발 환경에서는 어떻게 작업을 분담하는지 알아보자.
Controller 와 View를 분리한 모습이다.
Controller 와 Model은 비즈니스 관련 로직이나 내부적인 요소를 처리하고 View는 화면을 표현하기 위해 모든 역량을 집중해야한다.
다음은 기본적인 구조이다.
여기서 "th"는 Thymeleaf 문법을 사용했다. 이를 통해 컨트롤러에서 받은 "model" 안의 데이터를 사용할수있다.
여기서 Model은 맵핑된 주소에 파라미터를 넘기면 Controller를 통해 받고 데이터를 View로 넘어간다.
예)localhost:8080/hello-mvc?name=spring
1.웹 브라우저에서 URL창에
localhost:8080/hello-mvc?name=spring 이라 입력을 하게되면 스프링 부트가 제공하는 내장 서버(Tomcat)을 거쳐 ("hello-mvc") 이라 맵핑되있는 컨트롤러(helloController)를 찾아 작동시킨다.
2. 그 후 name=sunset 이라는 model 즉 데이터를 가지고 스프링 안의 viewResolver가 리턴값에 따라 View를 매칭시켜준다.
3. View는 사용자에게 보여줄 화면을 구성하는데 여기서 컨트롤러에서 넘어온 데이터가 있으면 같이 구성한다.
여기서는 model(name:spring)이 넘어왔다.
4. 사용자 화면
이론적으로 공부하는 것이 아닌 직접 코드를 써보고 결과를 보는 과정이 공부에 많은 도움이 되는것 같다.
최근에는 서버가 View를 보여주는 WEB MVC 방식보다
사용자에게 JSON형식의 데이터를 주고 사용자가 화면을 구성하게 하는 API 방식을 더욱 많이 쓴다고 한다. 하지만 백엔드를 공부하는데 있어 꼭 필요한 과정이였고 부족한점도 많이 알아간다.
부족하거나 틀린부분은 언제든 말씀해주시면 감사하겠습니다.!😊