일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 그리드 알고리즘
- 역방향 반복자
- 다이나믹 프로그래밍
- 재귀
- 자료구조
- dfs
- AWS
- 트리
- 도커
- 알고리즘
- SQL
- 이분탐색
- 컴퓨터 네트워크
- HTTP
- 순열
- GIT
- 스프링
- 다이나믹프로그래밍
- 백준
- 그래프
- 그리드
- BFS
- 자바
- 브루트포스
- 분할 정복
- TCP
- github action
- Spring
- 분할정복
- CI/CD
- Today
- Total
코딩성장스토리
spring 도전기 본문
김영한 선생님의 무료강의를 듣고 따라 해보며 배운 점들을 적어 보겠다.
https://github.com/MyunghyunNero/Spring-pratice
GitHub - MyunghyunNero/Spring-pratice
Contribute to MyunghyunNero/Spring-pratice development by creating an account on GitHub.
github.com
실습해본 코드들은 내 깃허브에 있다.
일단 가장 궁금했던 정적 컨텐츠와 MVC와 API에 대해서 정리해보겠따.
1.정적컨텐츠
정적 컨텐츠는 말그대로 있는 그대로 화면을 출력하는 것이다.
!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 와 템플릿 엔진
MVC는(model.view,controller)의 약자이고 템플릿 엔진은 웹에서 호출받는 것을 동적으로 데이터를 반환하게 도와주는 것이다.
아래 코드가 controller에 적은 것이다.
설명하자면 웹에서 hello-mvc를 호출 받으면 거기서 요구 받은 name값을 hello-template에 보낸다(hello-template는 아래코드다) ##name 값 받는 것은 아래 나와있다.
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
이 밑에 있는 코드가 hello-template이고 여기에 있는 ${name}이 컨트롤러에서 받은 값으로 치환이 되면서
웹으로 반환 되게 된다.
즉 동적으로 페이지가 변하게 만들 수 있다.
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
위에 있는 사진이 결과 값이고 name값을 입력 받는 것은 URL을 보면 ?name=spring!이 있다
이처럼 name값을 입력 받는 것이고 그에 따라 페이지가 동적으로 바뀐다.
페이지 소스 코드를 보자
기존 HTML에서 name값만 바뀌며 나온다.
3.API
api또한 동적으로 변하게 할 수 있다. 여기서 MVC템플릿엔진과 차이점은 MVC는 반환값을 사이트로 해서 사이트를 따로 작성을 해야한다는 것이다. 그에 비해 API는 바로바로 적용이 가능하다.(이유는 BODY부로 바로 치환이 된다.)
코드를 보여주겠다.
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
이 코드가 전부이다 따로 html을 만들어 주지않고도 가능 하다.
이것만 보면 템플릿이랑 차이를 못 느낄 수도 있다. 확실하게 보여주기 위해 페이지 소스 코드를 보도록하자
놀랍게도 이게 전부다 BODY를 그냥 "hello" + name 으로 치환 했기 때문이다.
최근에는 api쓰는 방식으로 객체를 이용하는 것이다.
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
결과 코드는 저렇게 KEY:VALUE 값으로 나오게 된다.
그리고 이를 JSON 방식이라고 하고 요즘 쓰고있는 방식이라고 한다.
아직 이거에 대해서는 잘 모르지만 알아두고 공부해보자
'백 엔드 > spring' 카테고리의 다른 글
스프링 빈 스코프 (0) | 2022.02.20 |
---|---|
스프링 의존관계 자동 주입 (0) | 2022.02.17 |
스프링 컨포넌트스캔 (0) | 2022.02.15 |
스프링 싱글톤 (0) | 2022.02.15 |
스프링 IOC,DI,컨테이너 (0) | 2022.02.14 |