홍팍 님의 스프링 부트, 입문! 강의를 보고 작성한 내용이며 이미지 또한 강의에 나오는 이미지를 따라 만들었습니다.
https://www.youtube.com/watch?v=Ym7cAtE2jQs&list=PLyebPLlVYXCiYdYaWRKgCqvnCFrLEANXt&index=29
웹 서비스는 클라이언트와 서버의 요청과 응답으로 동작
클라이언트 : 서비스를 사용하는 프로그램 혹은 컴퓨터 (브라우저)
서버 : 서비스를 제공하는 프로그램 혹은 컴퓨터 (스프링부트)
localhost:8080
localhost : 서버의 주소를 의미, 내 컴퓨터를 의미
8080 : 포트 번호, 여기서 스프링 부트가 동작
localhost:8080/파일명
을 붙여주면 스프링 부트는 resources/static에서 파일을 찾는다
resources에는 외부 파일들이 위치
resources.static에 html 파일 위치
실행은 main method를 실행
View template : 화면을 담당하는 기술
웹 페이지를 틀로 만들고, 변수를 삽입
mustache : view template을 만드는 도구
{{variable}}
: 뷰 페이지에 변수 삽입
main/resources/templates
에 위치
<greetings.mustache>
<body>
<h1>Hello {{username}}!</h1>
</body>
Controller : 처리 과정을 담당
java class 파일
@Controller
: 컨트롤러 선언
@GetMapping("접속할 url 주소")
: url 요청 연결
return "페이지명"
: 응답 페이지 설정, 페이지명에 해당하는 파일을 찾아 브라우저에 전송
@GetMapping()
에 명시된 url 주소가 입력되면 templates 디렉터리에서 return에 적힌 파일을 찾아서 반환
main/java/기본패키지/새로운패키지(controller)
에 위치
Model : 데이터를 관리
Controller의 메소드에서 파라미터로 사용됨
View template에 선언된 변수 사용을 위해 필요
model명.addAttribute("변수명", 값)
: 변수 등록
<firstController>
@Controller
public class firstController {
@GetMapping("/hi")
public String niceToMeetYou(Model model) {
model.addAttribute("username", "HJ");
return "greetings";
}
}
웹 서비스는 클라이언트와 서버의 요청과 응답으로 동작
스프링부트가 서버의 역할
서버의 역할을 하면서 Model, View, Controller의 유기적 역할 분담이 존재
Controller : 클라이언트로부터 요청을 받는다 (@GetMapping
어노테이션을 통해)
View : 최종 페이지를 만든다
Model : 최종 페이지에 쓰일 데이터를 View에게 전달
레이아웃 : 화면에 요소를 배치
템플릿화 : HTML 코드를 하나의 파일로 만들어서 변수화 시킨다
<greetings.mustache>
<!-- 레이아웃 템플릿 삽입 ( header 페이지 삽입 ) -->
{{>layouts/header}}
<!-- content -->
<div class = "bg-dark text-white p-5">
<h1>Hello {{username}}!</h1>
</div>
<!-- 레이아웃 템플릿 삽입 ( footer 페이지 삽입 ) -->
{{>layouts/footer}}