2018. 11. 18. 15:18ㆍSpring Boot
Spring Boot 기초들
우선 MCV의 중요성에 대해 다시한번 알게 되었다. M은 model(domain)이고 C는 controller, V는 view의 약자들이다.
그림과 같이 컨트롤러를 통해 도메인과 뷰를 다닐수 있지만 도메인과 뷰는 컨트롤러를 지나지 않고 만날 수는 없는 것이다.
일단 다시 한번 상기 시킨다 생각하고 정리한다.
controller
컨트롤러를 지정해주기 위해서는 클래스 위 에너테이션으로 @Controller 라고 import해서 지정해 준다.
static, templates 패키지
Static 패키지는 정적 패키지이다. 바뀌지 않는 것들을 static에 놓게 되는데, 반대로 사용자가 작동하여 바뀌어야 할 것들은 Templates를 사용하면 된다. Templates 패키지에 들어가 있는 클래스들은 MVC에서 V view 또는 UI에 해당 되는데, 컨트롤러에서 templates로 간 후 바꿀 수 있다.
templates는 바로 호출할 수 없다. 그렇기 때문에 컨트롤러를 생성 해야 한다.
Model
model 부분은 핵심객체, 사용자 이름, 아이디, 비밀번호 등이 해당한다.
참고
templates는 properties에서 기본적으로 templates로 지정해주는데, templates를 잘 못 적거나 다른 이름으로 지정해 주지 않았다면 컨트롤러에서 확인 되지 않을 것이다.
mustache
Mustache 은 templates엔진 중 하나이다.
mustache 문법은 {{ }} 만들며, mustache를 통해 빠른 치환이 가능하며, 웬만한 플랫폼을 모두 지원한다
하지만 플랫폼을 공용으로 만들어졌기 때문에 모두 모델안에 넣어 줘야 하는 단점이 있고, 상위를 선택하는 방법이 한정적이다.
Get, Post
get과 post는 http의 메소드의 하나이다. http메소드는 서버로 보낼 때 메소드를 쓰며, 어떤 방식으로 보낼지 정하는데, 그중 대표적인 두가지가 get과 post이다. get과 post의 차이는 url을 어떻게 보내느냐에 따라 달라진다.
get은 url을 보낼때, 정보들을 url에 같이 보내지게 되고, post는 url을 보낼 때, 정보들은 바디로 담아서 url에서 볼 수 없게끔 보내지는 것이다.
예를 들어 회원가입을 해서 아이디, 비밀번호, 이름 과 이메일 등을 보내게 된다면 get을 사용하면 사용자의 모든 정보를 누구든지 볼수 있지만, post를 사용한다면 찾기 힘들 것이다.
get을 사용 할 때는 정보를 가지고 올때, 예를들어 get은 검색 할때나, 페이지를 이동할 때 정보를 head에, url뒤에 붙게 된다. 하지만 post는 서버에서 수정할 때 정보 를 바디에 넣기 때문에 url 뒤에 붙지 않는다고 생각하자.
위의 그림을 보자.
중간 <form name = "question" method ="post" action="user/create">
이 문장이 있고, 아래 보면
<button type ="submit" class ="btn btn-success clearfix pull-right"> 회원가입</button>이라는 글이 있다.
웹 UI를 본다면 회원가입이라는 버튼이 있을 것이다. submit을 통해 위의 문장 method가 post면 post 타입으로, get이라면 get타입으로 만들어진다. 만들어 졌다면 이제 action을 통해 어디로 보내질지 정해지는 것이다.
메서드를 보내진다면 어디서 받는지도 중요하 것이다. 컨트롤러에서 mapping을 통해 html에서 보내진 메소드를 받아야 한다.
아래 사진을보자
get
post
위의 사진과 같이 get이라면 어노테이션을 사용해 @GetMapping, post라면 @PostMapping으로 컨트롤러에서 메서드를 받으면 된다.
요약)
1. MVC model 은 핵심객 체, view는 static과 templates로 나뉘며 static은 정적인 화면을 보여줄때, templates는 동적인 화면을 보여줄때이다.
controller는 model과 view의 연결다리.
2.get과 post의 차이는 url을 보낼때의 방식이 다르다. get은 head에 다 넣어서 보내지만 post는 body에 넣어 보낸다.
'Spring Boot' 카테고리의 다른 글
Ajax란 무엇일까? (0) | 2019.05.15 |
---|---|
스프링 프레임워크(Spring Framework)에 대해서 (3) | 2019.05.05 |
Aop 에 대해서 (0) | 2019.02.05 |
IoC(제어의 역전) 와 DI(의존성 주입)이란 (0) | 2019.01.05 |