์ผ๋ฐํค๋ HTTP ํค๋ ๊ฐ์ ์ฉ๋ : HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด ์) ๋ฉ์์ง ๋ฐ๋์ ๋ด์ฉ, ๋ฉ์์ง ๋ฐ๋์ ํฌ๊ธฐ, ์์ถ, ์ธ์ฆ, ์์ฒญ ํด๋ผ์ด์ธํธ, ์๋ฒ ์ ๋ณด, ์บ์ ๊ด๋ฆฌ ์ ๋ณด ...๋ฑ๋ฑ ํ์ค ํด๋๊ฐ ์์ง๋ง ๋๋ฌด ๋ง๊ณ ํ์์ ์์์ ํค๋ ์ถ๊ฐ ๊ฐ๋ฅํ๋ค. ์) TOKEN : AEJEONG ๊ณผ๊ฑฐ์์ HTTP ํค๋ ๋ถ๋ฅ Request ํค๋ : ์์ฒญ ์ ๋ณด ์) User-Agent : Mozila/5.0 (Macintosh; ..) -> ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ด๊ฒ ์ ์ ์ ๊ธฐ๊ธฐ ์ ๋ณด๋ฅผ ์๋ ค์ค๋ค. Response ํค๋ : ์๋ต ์ ๋ณด ์) Server: Apache -> ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฒ ์ ๋ณด๋ฅผ ์๋ ค์ค๋ค. General ํค๋ : ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋๋ ์ ๋ณด ์) Connection: close Entity..
์ ์ฒด ๊ธ
HTTP ์ํ์ฝ๋๋? ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์์ฒญ์ ์ฒ๋ฆฌ๊ฐ ์ํ๋ฅผ ์๋ตํด์ฃผ๋ ๊ธฐ๋ฅ - 1xx (Informational) : ์์ฒญ์ด ์์ ๋์ด ์ฒ๋ฆฌ์ค ( ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ ) - 2xx (Successful) : ์์ฒญ ์ ์ ์ฒ๋ฆฌ - 200 OK : ๊ฒฐ๊ณผ๋ฅผ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ ํ๋ค. - 201 Created : ์์ฒญ ์ฑ๊ณตํด์ ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋จ ( post ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก Location ์ ์์ฑ๋ ๋ฆฌ์์ค์ url๋ฅผ ์ฝ์
) - 202 Accepted : ์์ฒญ์ด ์ ์๋์์ผ๋ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ง ์์์ -> ๋ฐฐ์น ์ฒ๋ฆฌ ๊ฐ์๊ณณ์์ ์ฌ์ฉ (์์ฒญ์ ํ๊ณ ๋์ค์ ํ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ) - 204 No Content : ์๋ฒ๊ฐ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ์ง๋ง, ์๋ต ํ์ด๋ก๋ ๋ณธ๋ฌธ์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์์ ๋ 2xx ์ฝ๋๋ก ์ฑ๊ณต๋ง..
๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์์ ํฌ๊ฒ 2๊ฐ์ง์ด๋ค. 1. ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก - GET - ์ฃผ๋ก ์ ๋ ฌ ํํฐ(๊ฒ์์ด) 2. ๋ฉ์์ง ๋ฐ๋๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก - POST, PUT, PATCH - ํ์ ๊ฐ์
, ์ํ ์ฃผ๋ฌธ, ๋ฆฌ์์ค ๋ฑ๋ก, ๋ฆฌ์์ค ๋ณ๊ฒฝ ์์) 1. ์ ์ ๋ฐ์ดํฐ ์กฐํ - ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ๋ฏธ์ฌ์ฉ GET /static/start.jpg -> ๋ฆฌ์์ค ๊ฒฝ๋ก๋ก๋ง ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค. 2. ๋์ ๋ฐ์ดํฐ ์กฐํ - ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ฌ์ฉ GET /search?q=hello&hl=ko - ์ฃผ๋ก ๊ฒ์, ๊ฒ์ํ ๋ชฉ๋ก์์ ์ ๋ ฌ ํํฐ(๊ฒ์์ด) - ์กฐํ ์กฐ๊ฑด์ ์ค์ฌ์ฃผ๋ ํํฐ, ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ๋ ์ ๋ ฌ ์กฐ๊ฑด์ ์ฃผ๋ก ์ฌ์ฉ - ์กฐํ๋ GET ์ฌ์ฉ - GET์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ 3. HTML Form ๋ฐ์ดํฐ ์ ์ก - ..
2021.05.03 - [BASIC] - 01. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํฐ๋ท ๋คํธ์ํฌ 2021.05.03 - [BASIC] - 02. HTTP ์น ๊ธฐ๋ณธ ์ง์ - URI 2021.05.03 - [BASIC] - 03. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ๋ชจ๋ ๊ฒ์ด HTTP API URI ๊ณ ๋ฏผ ๋ฆฌ์์ค๋ผ๋ ์๋ฏธ๋ ๋ญ๊น? ํ์์ ๋ฑ๋กํ๊ณ ์์ ,์กฐํ ํ๋๊ฒ ๋ฆฌ์์ค๋ ์๋๋ค ํ์์ด๋ผ๋ ๊ฐ๋
์์ฒด๊ฐ ๋ฐ๋ก ๋ฆฌ์์ค์ด๋ค. ๋๋ DB์ ์ ์ฅ๋์ด์๋ ํ ๋ก์ฐ์ ๋ฐ์ดํฐ๋ผ๊ณ ์ดํดํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์๋ณํ๋๊ฒ ์ข์๊น? ์์ ,์กฐํ ํ๋ ๊ฒ์ ๋ชจ๋ ๋ฐฐ์ ํ๊ณ ํ์์ด๋ผ๋ ๋ฆฌ์์ค๋ง ์๋ณํ๋ค. -> ํ์ ๋ฆฌ์์ค๋ฅผ URI ๋งคํ API URI ์ค๊ณ - ๋ฆฌ์์ค๋ง์ ์๋ณํ๊ธฐ ๋๋ฌธ์ URI ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ค. - ๋ฆฌ์์ค์ํด๋น ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก ํ๋..
2021.05.03 - [BASIC] - 01. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํฐ๋ท ๋คํธ์ํฌ 2021.05.03 - [๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ] - 02. HTTP ์น ๊ธฐ๋ณธ ์ง์ - URI HTTP - HyperText Transfer Protocol HTML, TEXT, IMAGE, ์์ฑ, ์์, ํ์ผ, JSON, XML ๋ฑ๋ฑ ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํ๋ค. ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ HTTP๋ฅผ ์ฌ์ฉํ๋ค. HTTP์ ๋ฐ์ HTTP/0.9(GET๋ง ์ง์ HTTP ํค๋ X) -> HTTP/1.0 (๋ฉ์๋, ํค๋ ์ถ๊ฐ) -> HTTP/1.1 (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ, ๊ฐ์ฅ ์ค์ํ ๋ฒ์ ) -> TCP๊ธฐ๋ฐ ํ๋กํ ์ฝ -> HTTP/2 (์ฑ๋ฅ๊ฐ์ ) -> TCP๊ธฐ๋ฐ ํ๋กํ ์ฝ -> HTTP/3 (์งํ์ค: TCP ..
2021.05.03 - [BASIC] - 01. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํฐ๋ท ๋คํธ์ํฌ 2021.05.03 - [๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ] - 02. HTTP ์น ๊ธฐ๋ณธ ์ง์ - URI 2021.05.03 - [BASIC] - 03. HTTP ์น ๊ธฐ๋ณธ ์ง์ - ๋ชจ๋ ๊ฒ์ด HTTP URI(Uniform Resource Identifier)์ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ URI์ ๋ญ๊น? ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ํตํฉ๋ ๋ฐฉ๋ฒ ๋ก์ผ์ดํฐ(locator), ์ด๋ฆ(name) ๋๋ ๋๋ค ์ถ๊ฐ๋ก ๋ถ๋ฅ๋ ์ ์๋ค. Untiform : ๋ฆฌ์์ค ์๋ณํ๋ ํต์ผ๋ ๋ฐฉ์ Resource : ์์, URI๋ก ์๋ณํ ์ ์๋ ๋ชจ๋ ๊ฒ(์ ํ ์์) Identifier : ๋ค๋ฅธ ํญ๋ชฉ๊ณผ ๊ตฌ๋ถํ๋๋ฐ ํ์ํ ์ ๋ณด URL - Locator : ๋ฆฌ์์ค๊ฐ ์๋ ์์น ์ง์ ..
www.inflearn.com/course/http-์น-๋คํธ์ํฌ# ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํ๋ฐ | ๊ฐ์ ์ค๋ฌด์ ๊ผญ ํ์ํ HTTP ํต์ฌ ๊ธฐ๋ฅ๊ณผ ์ฌ๋ฐ๋ฅธ HTTP API ์ค๊ณ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค., ์น ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ OK!๊ผญ ํ์ํ HTTP์ ํต์ฌ์ ์๋ ค๋๋ฆฝ๋๋ค. ๐ฃ ํ์ธํด์ฃผ์ธ์!๋ณธ ๊ฐ์๋ ์๋ฐ ์ค www.inflearn.com ๊น์ํ๋์ HTTP ์น ๊ธฐ๋ณธ ์ง์ ๊ฐ์๋ฅผ ๋ณด๊ณ ํ๊ธฐํ์ต๋๋ค! ๊ฐ์๋ฅผ ๋ณด๋ฉด ์ดํด๊ฐ ๋ ์ฌ์ฐ๋ ์ถ์ฒ ํฉ๋๋ค. ๐ ์ค๋ฌด์์ ํ์ํ HTTP ๊ธฐ๋ฅ๊ณผ ์ฌ๋ฐ๋ฅธ HTTP API ์ค๊ณ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค! ๊ณต๋ถ ๊ณ๊ธฐ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ HTTP ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ ์น ํ๋ ์์ํฌ๋ ๊ธฐ์ ๋ค์ ์ฌ์ฉํ๋๋ฐ ๋จ์ํ ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ ์์ฃผ๋ก ์ฌ์ฉํ์ง ์๊ณ ์๋ฆฌ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ..
jsp๋ง ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๋ฉด์ ์ต์ํด์ง ๊ฒ์ ๊ณ์ ์ฐ๊ณ ์ถ์์ง๋ง Spring Boot๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด์ Thymeleaf๋ฅผ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค. ์ฐ์ ์ ์ผ๋ก Spring boot์์ jsp ์ฌ์ฉ์ ๊ถ์ฅํ๊ณ ์์ง ์์ต๋๋ค. ์๋ง ๋ด์ฅํฐ์บฃ์ด๊ธฐ ๋๋ฌธ์ war๋ก ํจํค์ง์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ Spring boot๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์
์ฅ์์๋ ์ฝ๊ฐ ๐คจ์
๋๋ค. Thymeleaf๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์์กด์ฑ์ ๋จผ์ ์ถ๊ฐ ํด์ค๋๋ค. build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' application.yml์๋ ๊ด๋ จ ์ค์ ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. jsp๋ฅผ ์ฌ์ฉํ ๋ ์ฒ๋ผ ์์น์ ํ์ผํ์์ ์๋ ค์ค๋๋ค application.yml spri..
Jpa pageable์ ์๋ชจ๋ฅด์๋ ๋ถ์ ์๋์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์~! 2021/02/03 - [WEB/JPA] - JAP Pageable ์ฌ์ฉํ๊ธฐ JAP Pageable ์ฌ์ฉํ๊ธฐ Page๊น์ง ์๋ค๋๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์๊ณ ๊ณ์ ์ํ๋ก ์ดํดํ๊ณ ์์ฑํ๊ฒ ์ต๋๋ค! ํ ์ผ : ๊ฐ๋จํ ๋ฆฌ์คํธ ๋ฐ์ดํฐ์ Page, Sort ๊ตฌํํ์ฌ API๋ฅผ ๊ตฌํํ๋ค. Service Entity์์ฒด๋ฅผ ๋ฐํํ๋๊ฑด ์ ๋๋ก ํ์ง ์ aejeong.com ์ค์ ์ธํ
๋ถํฐ ํด๋ณผ๊ฒ์ ~! 1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 2. application.yml spring: thymeleaf: prefix: classp..
Page๊น์ง ์๋ค๋๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์๊ณ ๊ณ์ ์ํ๋ก ์ดํดํ๊ณ ์์ฑํ๊ฒ ์ต๋๋ค! ํ ์ผ : ๊ฐ๋จํ ๋ฆฌ์คํธ ๋ฐ์ดํฐ์ Page, Sort ๊ตฌํํ์ฌ API๋ฅผ ๊ตฌํํ๋ค. Service Entity์์ฒด๋ฅผ ๋ฐํํ๋๊ฑด ์ ๋๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ Response dto๋ฅผ ๋ง๋ค์ด์ ๋ฐํํ๊ธฐ๋ก ํฉ๋๋ค. Repository์์ ๋ฐ์์จ Page UserEntity๋ฅผ Response์ ๋งตํํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐํํ ๋ ์์ฑ์์ stream์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ ๋งตํ ํด์ค๋๋ค! ์ฌ๊ธฐ์ finAny().orElse("") ๋ user์ ์ด๋ฏธ์ง๊ฐ ํ์๋ ์๋๊ธฐ ๋๋ฌธ์ NPE์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ null์ผ ๊ฒฝ์ฐ String ํ์
์ null์ ๋ฐํํ๊ฒ ํ์ต๋๋ค. ์ด๋ถ๋ถ์ ์ข๋ ์ฐพ์์ ์
๋ฐ์ดํธ ํ๋๋ก ํ๊ฒ ์ต๋๋ค! public Page..
์์ฃผ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๊น์ง ๋ชจ๋ ์์ต๋๋ค.. ์๋๋ฉด... ์ ๋ ๊ธฐ์ ๋ธ๋ก๊ทธ๋ค์ ๋ณด๋ฉด์ ๋น ์ ธ์๋ ๋ถ๋ถ์ ๋ณด๋ฉด ๋๊ฐ์ ์ด๋ณด๋ ์ด์ฉ๋ผ๊ณ ํ๋ฉฐ ์ฌํผํ๊ธฐ ๋๋ฌธ์,,, ์ฌ์ค Security์ ์ฌ๋ฌ๊ฐ์ง Filter๋ฅผ ์ฌ์ฉํ์ฌ JWT ๋ฐฉ์์ ์ด์ฉํ๋๊ฒ ๋ง์ง๋ง ํ๋ก์ ํธ ํฌ๊ธฐ,, ๊ธฐ๊ฐ์ ๋ถํ์ํ๋ค ํ๋จํ๊ฒ ๋์ด์ JWT ๋ง์ ์ฌ์ฉํ์ฌ ๊ตฌํํ์๋ค. ๋์ค์ Security๋ ๊ฐ์ด ๊ตฌํํ์ฌ ์ฌ๋ฆฌ๋๋ก ํ๊ฒ ์! ์ด๋ฒ์๋ git์ ์ฌ๋ ค ์ฝ๋๊น์ง ๊ณต์ ํ๊ธฐ๋ก ํ๋ค! ์ฒ์๋ณด๋ฉด ์ฝ๊ฐ ๋ณต์กํ๋ค๊ณ ์๊ฐ๋๊ณ ๋๋ํ ๊ทธ๋ฌ๋ค ใ
ใ
,, (๋ถ๋๋ฌ์ด) ๊ตฌํ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ดํดํ๊ณ ํน์ ์ด์ํ๊ณณ์ PRํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค...(๊ฐ์ ,,) git ์ฃผ์ (์ค๋ฌด์์ ์ค์ ๋ก ์ฌ์ฉํ๋ฉด์ ์์ ํ๊ณ ์์ต๋๋ค ~!) git clone https://github.com/ae..
๊ตฌ์กฐ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด resources์ ๊ฐ์ ๊ฒฝ๋ก์ webapp์ ๋ง๋ค์ด ์ฃผ์๋ฉด ๋ฉ๋๋ค. ์์ WEB-INF๋ ๋๊ฐ์ด ๋ง๋ค์ด์ฃผ์๊ณ application.yml์ ์ค์ ์ ๋ฐ๋ผ ์์ ์๋ ํด๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. application.yml spring: mvc: view: prefix: /WEB-INF/jsp/ suffix: .jsp build.gradle // JSTL implementation 'javax.servlet:jstl:1.2' // JASPER implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' springboot์์ jps๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ธ์ฅํฐ์บฃ์ ์์กด์ฑ์ผ๋ก ์ถ๊ฐํด์ค๋๋ค. jsp๋ ๊ทนํ์ด๋ jstl๋ ์ถ๊ฐํด์ค๋๋ค. ๊ธฐ๋ณธ ํฌํ๋ฆฟ ..