스프링 부트는 자바 프로그램을 보다 쉽고 빠르게 만들게 하는 도구이다.
가령 내가 햄버거 가게를 차린다 하였을 때, 관련 경험이 없다면 어떻게 할까? 햄버거 가게에서 일을 하며 경험을 쌓아야 할 것. 하지만 시간을 절약하고 싶다면? 누군가가 미리 만들어 놓은 레시피, 서비스 등등의 노하우가 집약 되어있는 프렌차이즈에 가입할 수 있다. 프로그램도 마찬가지이다.
자바 프로그램을 만들기 위한 노하우가 스프링 부트에 있다.
프로그램을 만들기 위한 원하는 레시피를 찾아 내 것으로 만들면 되겠다.
JDK란 자바 코드의 번역과 실행을 담당하는 자바 개발 도구.
IDE는 개발 생산성을 높여주는 도구들. 이클립스나 인텔리제이.
나의 JDK는 1.8
웹 서비스의 동작 원리를 알아본다.
웹서비스는 클라이언트와 서버의 요청과 응답으로 동작한다.
여기서 클라이언트란 서비스를 사용하는 프로그램, 또는 컴퓨터를 말하고
반대로 서버는 서비스를 제공하는 프로그램, 또는 컴퓨터를 의미한다.
브라우저가 클라이언트로서 동작을 하고, 스프링부트는 서버의 역할을 수행한다.
개발환경 구축시
6개의 dependencies를 추가하였다.
java 폴더 안에 존재하는 FirstprojectApplication 안에
main 메서드가 존재한다.
resources 안에 static 디렉토리에서 hello.html을 만들고
body에 Hello World라 작성해주었다.
서버를 실행시켜보면 복잡해보이는 텍스트들 중
Tomcat started on port(s): 8080 이라는 말이 나온다.
8080포트에 주소를 html로 찍어보니 원하던 출력값을 띄우는 브라우저가 나왔다.
서버를 수행시켜야지만 브라우저를 통해 접근할 수 있다는 것을 알았다.
로컬호스트와 8080의 의미는 뭘까?
로컬호스트는 서버의 주소를 의미한다. 내 컴퓨터의 주소인 것.
8080은 포트번호라 한다. 우리 집에 8080방 이라고 해석하면 좋을 듯 하다.
8080 방 안에는 스프링부트 프로젝트가 동작하고 있구나.
링크에 파일명을 직접적으로 명시하였을 때 스프링부트는 기본적으로 resources의 static 내부에서 해당 파일을 찾는다.
보통 사이트에 로그인을 하면 ~님 반갑습니다 와 같은 문구가 출력되는데, 이러한 웹페이지는 어떻게 만들어질까?
사용자 수에 따라 수많은 웹 페이지(9999999.html)가 만들어져 있는걸까? 사용자가 매번 가입할 때마다 새로운 페이지를 만들어야 한다면 상당히 괴로울 것.
View Templates 이란, 화면을 담당하는 기술이다.
웹페이지를 하나의 틀로 만들고 여기에 변수를 삽입하게 한다.
다시 말해, 틀이 되는 페이지가 변수의 값에 따라서 수많은 페이지로 바뀔 수가 있다.
프로젝트 처음 만들 때 우리는 Mustache라는 도구를 추가하였는데,
해당 도구가 바로 View Templates을 만드는 도구이다.
화면을 담당하는 View Templates에게는 컨트롤러와 모델 이라는 두 동료가 있다.
컨트롤러는 처리 과정을 담당하고, 모델은 데이터를 관리하는데,
이렇게 화면, 처리, 데이터 분야를 각 담당자 별로 나누는 기법을 MVC 패턴이라 한다.
상단 help에 들어간 후 Find Action 클릭 후 다운로드.
greeting.mustache 파일 생성
일단은 html을 다르게 부른다 정도로 이해하자.
doc 후 탭을 누르면 기본 html 코드 양식이 작성된다.
이제 이 view templates 페이지를 보기 위해 컨트롤러를 만들어보자.
컨트롤러를 선언 후 리턴값으로 보여줄 페이지의 이름을 따서 만들어 준 다음,
@GetMapping 어노테이션에 접속할 URL 주소를 넣는다.
이제 우리는 '동민'이라는 유저 네임이 변수화 되어 다양하게 나오기를 원한다.
즉 템플릿 변수를 활용하기를 원할 때, 이때 mustache 문법을 사용한다.
{{ }} 사용
이제 컨트롤러에서 모델을 받아오자.
모델이라는 객체가 동민이라는 이름을 username에 실어서 보내주는 것.
스프링부트는 서버로서의 역할을 하는데, 컨트롤러 모델 뷰의 유기적 역할 분담이 존재한다. 웨이터가 주문을 받고, 주방장은 요리를 하고, 식재료 담당자가 재료를 준비하는 것과 같은 원리이다.
컨트롤러는 클라이언트로부터 요청을 받고, 뷰는 최종 페이지를 만들어주고, 모델은 최종페이지에 쓰일 데이터들을 뷰에 전달한다.
하나 더 만들어본다