Carnival7
Change Developer
Carnival7
전체 방문자
오늘
어제
  • 분류 전체보기
    • 자바의 정석
    • 프로그래밍 언어별 tools
      • 파이썬
      • 자바
    • 코딩 테스트
      • 백준 강의 기초편
      • 백준 강의 연습편
      • 백준 강의 문제편
      • 삼성 기출
      • 백준 - 일반
      • 카카오 기출
      • 프로그래머스 - 일반
      • 코테 풀이 Tools
    • CS
      • Network
      • 운영체제
      • 알고리즘
      • DB
    • Web_Backend
      • Spring
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • DevOps
    • IT 업무 지식
      • 인프라
      • 클라우드
    • 자격증
      • AWS - CLF
      • 정처기 - 실기
    • 생각 정리

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • code deploy
  • 슬라이딩 윈도우 #덱
  • Github Actions
  • 스프링 #AOP
  • nginx
  • 스프링 부트 무중단 웹 서비스
  • 코딩테스트 #삼성기출 #구현 #시뮬레이션
  • DMZ
  • 삼성기출 #백준강의문제편
  • 삼성기출 #2023 #상반기
  • ci/cd
  • 슬라이딩 윈도우
  • 프로그래머스 #카카오기출 #레벨2
  • 스프링 #인터셉터 #AOP #필터
  • DevOps
  • 알고리즘 #백준강의기초편 #코딩테스트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Carnival7
카테고리 없음

[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런] 2. 스프링 웹 개발 기초

[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런] 2. 스프링 웹 개발 기초
카테고리 없음

[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런] 2. 스프링 웹 개발 기초

2021. 1. 12. 23:07

스프링 웹 개발의 3가지 종류

화면을 보여주는 3가지 방식

1. 정적 컨텐츠(Static Content) - 파일 그대로 웹 브라우저에 보여주는 것

2. MVC와 템플릿 엔진 - JSP/PHP 서버에서 프로그래밍해서 동적으로 바꿔서 보여주는 것

3. API - JSON 데이터 포맷을 이용하여 클라이언트에 데이터를 전달

1. 정적 컨텐츠

: static html 파일과 같이 정적 페이지 웹 브라우저에 그대로 띄우기

정적 컨텐츠 동작 과정

웹브라우저(클라이언트)에서 URL요청이 들어오면 내장 톰캣 서버가 요청을 받고, 스프링 컨테이너에 넘긴다.

스프링컨테이너는 제일먼저 Controller에서 관련 hello-static 이라는 컨트롤러를 찾는데 매핑되는 것이 없으면

스프링부트는 내부에있는 resources 파일에서 파일을 찾는다.

파일이 있으면 반환시킨다.

 

정적 컨텐츠 html 페이지
<resources/static/hello-static.html>

<!DOCTYPE HTML>
<html>
<head>
<title>static content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>

2. MVC와 템플릿 엔진

* View : 화면 ( 프론트 )* Controller : 비즈니스 로직, 서버 뒷단 ( 백엔드 )

* Model : 화면에 필요한 것을 controller로부터 담아 view에게 넘겨줌.

 

 

컨트롤러

@Controller
public class HelloController {
    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name" , name);
        return "hello-template";
    }
}

 

template view

<resources/templates/hello-template>

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

주소를 localhost:8080/hello-mvc 로 치면 오류페이지가 뜬다.

​

컨트롤러에서 name 값이 필수(default)이기 때문이다.

# 참고 : [Ctrl] + P를 누르면 파라미터 정보를 참고할 수 있다.

required = false로 해놓으면 값을 넣지 않아도 실행된다.

대신 url을 이용하여 get 방식으로 클라이언트로부터 직접 name 값을 서버에 전달하자.

http://localhost:8080/hello\_mvc?name=hihi

1. 웹 브라우저에서 주소 호출이 되면 내장 톰캣 서버가 'hello-MVC' URL 요청을 스프링에게 전달한다.

2. 스프링은 mapping되어있는 'hello-mvc' 메서드를 호출하고, 모델에 key-value값을 담아 다시 스프링에게 전달한다.

3. 스프링은 viewResolver에게 전달한다. (viewResolver는 뷰를 찾아주고 템플릿을 연결시켜주는 역할을 한다.)

4. viewResolver는 return에 설정된 'hello-template.html'이라는 이름과 같은 파일을 templates폴더에서 찾는다.

5. "templates/hello-template.html"을 찾은 뒤 타임리프 템플릿 엔진에 처리해달라고 넘긴다.

6. 템플릿 엔진이 랜더링 한 HTML을 웹브라우저에 최종적으로 넘긴다.

  • 1. 정적 컨텐츠(Static Content) - 파일 그대로 웹 브라우저에 보여주는 것
  • 2. MVC와 템플릿 엔진 - JSP/PHP 서버에서 프로그래밍해서 동적으로 바꿔서 보여주는 것
  • 3. API - JSON 데이터 포맷을 이용하여 클라이언트에 데이터를 전달
  • 1. 정적 컨텐츠
  • : static html 파일과 같이 정적 페이지 웹 브라우저에 그대로 띄우기
  • 2. MVC와 템플릿 엔진
  • * View : 화면 ( 프론트 )* Controller : 비즈니스 로직, 서버 뒷단 ( 백엔드 )
  • * Model : 화면에 필요한 것을 controller로부터 담아 view에게 넘겨줌.
Carnival7
Carnival7

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.