00. Spring, Java, jsp

[SpringBoot-IntelliJ] 아주 간단한 MVC 작동 원리

devamy 2024. 6. 27. 11:00

스프링 게시판을 만들면서, 작동 원리를 제대로 파악하지 못하고

강사님의 코드를 그저 코드를 복붙하는 나를 보며 이건 안 되겠다 싶었다.

내가 이해한 MVC 원리를 직접 손으로 그려보았고, 아주 간단하게 설명을 해볼까 한다.

 

 

1. 컨트롤러


 

 

컨트롤러는 클라이언트의 요청을 받아주는 역할이다.

일단 src/main/java/com....에 controller 폴더를 생성해 주고, MyController라는 클래스를 만들어주었다.

생성된 클래스에서 @Controller라는 어노테이션을 잊지 않고 꼭 붙여준다.

 

 

@GetMapping("")는 스프링 부트를 실행할 때 브라우저 url 창에 localhost8080 뒤 "/임의의 이름" 을 입력하여 경로를 설정하면 아래에 입력한 메소드를 실행해주겠다는 어노테이션이다. @RequestMapping(method=RequestMethod.GET)을 짧게 줄여쓴 것이기도 하다. (여기서는 get과 post 방식을 구분할 필요는 없을 것 같아서 따로 설명을 하지는 않겠다.)

아무튼 나는 localhost8080/board를 입력하면 아래 메소드가 실행될 수 있도록 @GetMapping("/board")로 입력해주었다.

 

 

여기서 눈에 띄는 것은 return "boardmaking";

무엇을 return 한단 말인가? boardmaking.mustache이라는 파일을 화면에 보여주겠다는 것이다.

src/main/resources 폴더 안에 templates라는 폴더가 있을텐데 이 폴더는 화면에 보여지는 view 파일을 관리하는 폴더라고 생각하면 된다. 이 곳에 mustache file을 생성하고 2번(뷰)과 같이 입력한다.

 

 

2. 뷰


 

 

 

본격적인 본문 내용이 들어가는 body 태그 안 h1 태그에 중괄호 "2"개를 붙여준 후 변수명을 입력한다.

이 변수명이 등장한 곳은 3번(모델)에 나와있다.

 

 

3. 모델 


 

 

이제 model을 통해 addAttribute라는 메소드를 실행시킬 것인데,

변수명(attributeName)은 comment로 하겠고 값(attributeValue)은 게시판 만들기로 하겠다는 것이다.

 

 

 

이렇게 모델(M), 뷰(V), 컨트롤러(C)의 상호 관계 및 작동 원리를 파악할 수 있었다.

 

결과화면은 어떻게 확인하는가?

Run을 클릭한 후 브라우저 url 창에 localhost8080/board를 입력하면

게시판 만들기라는 글자가 보일 것이다.