본문 바로가기
스프링 공부/김영한 입문

스프링 웹개발 입문강의

by 코딩마스터^^ 2023. 10. 10.

스프링 학습 인프런 김영한 강의

 

로드맵

입문 강의 무료

스프링 핵심 원리

HTTP웹 기본 지식

스프링 MVC편 백엔드 웹개발 핵심

2

스프링 부트 기본으로 사용한다

원리를 아는 것은 따로 강의가 있다.

JPASQL없이 디비를 사용함

실전 JAP와 스프링 활용1,2

 

스프링 학습의 길잡이 역할

실무 개발에 꼭 필요한 스프링

처음부터 끝까지 다 코딩하기

MVC가 중요하다

 

 

 

https://start.spring.io/

스프링 프로젝트 만들기

테스트 코드가 디폴트로 SRC폴더에 들어가있다. 테스트가 중요하다.

build.gradle 중요하다

 

**정적콘텐츠**

웹브라우저가 요청을 보냄 

스프링 컨테이너가 먼저 우선순위를 가지고 찾는다.

매핑에대한 컨트롤러가없다->static을 찾는다

Static/hello-static.html을 찾는다.

그냥 html을 던저주기만 하는 느낌이다.

 

**MVC와 템플릿 엔진**

model-view-controller

 

옛날에는 jsp로 뷰와 컨트롤러를 분리하지않고 같이 개발했다.

 

Cotroller는 모델과 관련된 부분들은 비즈니스 로직을 처리하는 부분이다.

내부적인것을 처리하는데 집중하는 부분이다.

 

요즘에는 컨트롤러와 뷰를 분리하는것이 기본이다.

 

타임리프

<!DOCTYPE html>
<!--타임리프 템플릿엔진 html을 바꿔주는 역할-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--""안에 있는 값으로 html내용물이 바뀌게 된다...-->
    <P th:text="'hello'+${name}">hello! empty</P>
</body>
</html>

 

@GetMapping("hello-mvc")
//
public String helloMvc(@RequestParam(value = "name", required = true) String name, Model model){
    model.addAttribute("name", name);
    return "hello-template";

}

localhost:8080/hello-mvc?name=spring

required옵션을 true로 넣어줬기때문에 ?뒤에 name을 넣어줘야한다.

 

viewResolver가 찾아서 렌더링을 해서 화면에 보여지게 된다. 

 

**API**

정적컨텐츠 방식을 제외하면 화면에서 렌더링 해서 넘겨주는 방법이 있고 API 방식이 있다.

 

JSON방식으로 나온다.

key 와 value로 이루어진 형식

private은 외부에서 못꺼내기때문에 getter setter를 통해서 꺼낸다.

프로퍼티 접근 방식이라고 한다.

 

@ResponseBody

사용원리

템플릿은 뷰리졸버한테 던진다.

리스폰스 바디가 있으면 http에 그대로 이 응답을 넘긴다.

그런데 문자가 아니고 객체이다.

객체가 반환이 되면 디폴트는 JSON방식으로 데이터를 만들어서 http응답에 반응을 한다.

REsponseBody에 오면 HTTP메세지 컨버터가 동작을 해서 객체이면 JsonXonverter가 동작을 한다.

Json형식으로 바꿔서 요청에대한 응답을 보내준다.

 

기본문자처리는 StringHttpMessageConverter가 해준다.

MappingJacson2HttpMessgeConverter 가 기본 객체처리를 한다.

 

 

 

'스프링 공부 > 김영한 입문' 카테고리의 다른 글

회원관리 예제-백엔드 개발  (1) 2023.10.10

댓글