원본출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8
우아한형제들 최연소 기술이사 김영한의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의
초반 부분 정리출처 : https://dmaolon00.tistory.com/121
스프링완전 정복 로드맵
-스프링입문
-스프링 핵심원리
-스프링 웹MVC
-스프링 DB데이터 접근기술
-실전! 스프링부트
# 버전 수정 이력
## v2021-12-01
*주의!*
h2 데이터베이스는 꼭 다음 링크에 들어가서 *1.4.200* 버전을 설치해주세요.
최근에 나온 2.0.206 버전을 설치하면 일부 기능이 정상 동작하지 않습니다.
빌드하고 실행하기
CMD로 빌드하는 방법 (window)
1. cd 프로젝트저장폴더
2. cd 프로젝트명
3. gradlew build
4.cd build
5.dir
6.cd libs
7.확인
8.java -jar 위에서 확인했던 jar파일명.jar
스프링 웹 개발 기초
- 정적컨텐츠 *파일을 그대로 고객에게 (웹브라우저에게)전달해주는 것
- MVC와 템플릿엔진 *서버에서 변형을 해서 html을 바꿔서 내려주는 방식 *요즘사용하는 방식
- API *안드로이드,아이폰개발시 제이슨이라는 데이터구조포맷으로 클라이언트에게 데이터 전달하는 방식
정적컨텐츠
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello</title>
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>
MVC와 템플릿엔진
MVC : Model / View / Controller
View는 화면을 그리는데 모든 역량을 집중해야한다.Controller나 Model 관련 부분들은 비즈니스로직과 관련이있거나 내부적인 것을 처리하는데 집중해야한다.그래서 Model / View / Controller로 쪼갠 것이다. → 이것이 요즘은 이런 패턴이 기본이다.
Model - 애플리케이션의 정보/데이터를 나타내며 정보/데이터 가공을 책임지는 컴포넌트
View - 사용자 인터페이스 요소(사용자가 볼수있는 화면) , 데이터 및 객체의 입력,출력 담당
Controller - 데이터와 비즈니스 로직사이의 상호동작을 관리 (모델과 뷰통제), 프로그램의 작동순서, 방식을 제어
controller>HelloController
package com.mytestspring.mytestspring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
//"data" 라는 key 와 "hello!!"라는 value
model.addAttribute("data", "hello!");
return "hello";
}
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
}
templates>hello-template.html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello' + ${name}">hello! empty</p>
</body>
</html>
API
스프링웹개발에서 이야기하는 API
controller>HelloController
@GetMapping("hello-string")
@ResponseBody //http에서 바디부에 직접 내용을 넣어주겠다는 의미
public String helloString(@RequestParam("name")String name){
return "hello "+name;
}
데이터를 그대로 내려주는 것을 확인 할 수 있다.
//객체를 넣는것
@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;
}
}
제이슨방식 - name value
자바빈 표준방식, getter setter
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
'STUDY > SpringBoot' 카테고리의 다른 글
[SpringBoot] 스프링부트 Annotation 정리✔ (0) | 2022.08.05 |
---|---|
[SpringBoot] 22-08-04 자바와 html을 이용한 게시판예제 (1) ☑ (0) | 2022.08.05 |
[StringBoot] Thymeleaf 문법! 정리✔ (0) | 2022.08.02 |
[SpringBoot] 스프링 입문 - 김영한 ✔정리(1) (0) | 2022.08.02 |
[SpringBoot] gradle 배포 + 클라우드 배포 (0) | 2022.08.01 |