spring boot(8)
-
๊ฐ๋จํ Spring Boot Restful API Sample Project ๋ง๋ค์ด๋ณด๊ธฐ #1. Spring Security ์ค์ + CustomFilter ๋ง๋ค๊ธฐ
โ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ ์ด์ -> ์๊ฐ์ด ์กฐ๊ธ ์ฌ์ ๋ก์ด ์์ฆ, ๊ณง ๊ฐ๋ฐ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๊ฐ๋จํ๊ฒ ์ํ ํ๋ก์ ํธ ๋ง๋ค๋ฉด์ ๊ฐ ์ก๊ณ ? ์๊ณ ์ถ์ด์! ๊ทธ๋ฆฌ๊ณ ๋ง๋ ๊น์ ์ค๋๋ง์ ํฐ์คํ ๋ฆฌ์ ๊ธ๋ ๋ง์ด ์ฌ๋ฆฌ๋ฉด์ ์งํํ ์์ ์ด๋ค. โ ๊ฐ๋ฐ ํ๊ฒฝ - Jdk 17 - SpringBoot 3.2.3 - Spring Security - JPA + H2 (์ํ ํ๋ก์ ํธ๋ผ ๊ทธ๋ฅ ๊ฐ๋จํ ๊ตฌํํ ์ ์๋ h2 ์ฌ์ฉํ ์์ ์ด๋ค.) - Spring REST Docs + mockMvc (REST Docs ๋ฅผ ์ด์ฉํด์ api ๋ฌธ์ ์๋ํํ ์์ ์ด๋ค.) โ ์ง๊ธ ์๊ฐํ๋ ๊ธฐ๋ฅ - ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ - ๊ฒ์๊ธ ์์ฑ, ์กฐํ, ์์ , ์ญ์ - ๋๊ธ ์์ฑ, ์กฐํ, ์์ , ์ญ์ ( + ์ฌ์ฉ์ ๊ด๋ฆฌ? ) ์ด๋ ๊ฒ ์๊ฐํ๊ณ ์๋ค. ์ฐ์ ๊ธฐ..
2024.03.07 -
[Spring] ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
์์ฆ์ ์นด์นด์ค, ๋ค์ด๋ฒ๋ฅผ ์ด์ฉํ Login Api ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ค์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด kakao login api ๋์ ๋ฐฉ์์ ์์๋ณผ ๊ฒ์ด๋ค. REST API๋ฅผ ์ฌ์ฉํ ์นด์นด์ค ๋ก๊ทธ์ธ์ PC ๋ฐ ๋ชจ๋ฐ์ผ ์น์์ ์ ํฉํ ๋ฐฉ์์ด๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ์ OAuth 2.0 ๊ธฐ๋ฐ์ ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ก ์นด์นด์ค ๋ก๊ทธ์ธ์ ์ด์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์นด์นด์คํก ๋๋ ์นด์นด์ค ๊ณ์ ์ผ๋ก ์์ฝ๊ฒ ์๋น์ค์ ๋ก๊ทธ์ธ ํ ์ ์๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ ์๋น์ค ๊ณผ์ 1๏ธโฃ ์นด์นด์ค ๋ก๊ทธ์ธ ์ฌ์ฉ์๊ฐ ์๋น์ค์์ ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์๋น์ค๋ ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ก ์ธ๊ฐ ์ฝ๋ ๋ฐ๊ธ์ ์์ฒญํฉ๋๋ค. ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์ธ์ฆ์ ์์ฒญํฉ๋๋ค. (์ฐธ๊ณ : ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ฐ๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ) ์นด์นด์คํก์ผ๋ก ๋ก๊ทธ์ธ: ์นด์นด์คํก ์คํ,..
2024.02.07 -
[Spring] @Async๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์๋ ๋ง๋ค๊ธฐ
https://spring.io/guides/gs/async-method/ Creating Asynchronous Methods this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team spring.io Spring์์ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํด์ค ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก @Async๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด์ ํ์ตํ๋ค. ๊ฐ์ด๋์์๋ GitHub ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฟผ๋ฆฌํ๊ณ GitHub์ API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์กฐํ ์๋น์ค๋ฅผ ๋น๋ํ๋ค. CompletableFuture๋ ์ฌ๋ฌ ๋น๋๊ธฐ ์์ ์ ํ..
2022.06.20 -
Spring boot + h2 database ์ฌ์ฉ, h2 ์ค์น
https://start.spring.io/ ์ด ํ์ด์ง์ ๋ค์ด๊ฐ๋ฉด ๊ฐํธํ๊ฒ ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์๋ค! db ์ ๊ทผ ๊ธฐ์ ์ ๊ณต๋ถํ๊ธฐ ์ํด ํ ์คํธ์ฉ์ผ๋ก ๋ง์ด ์ฐ์ด๋ db์ธ h2 Database๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค. Java : 11 Packaging : Jar Project: Gradle Project Spring boot : 2.6.6 ์์กด์ฑ์ lombok, jdbc api, h2 database ๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์คํธ์์๋ lombok์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์์กด์ฑ์ ์ถ๊ฐํด์ค๋ค. h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Ja..
2022.04.13 -
Spring boot, IntelliJ์์ ๋กฌ๋ณตLombok ์ค์นํ๊ธฐ
1๏ธโฃ ์ฐ์ Gradle์ ์์กด์ฑ์ ์ถ๊ฐํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ฌ์ง์๋ ์๋ณด์ด์ง๋ง ์ฝ๋ผ๋ฆฌ ๋ชจ์์ด ์ค๋ฅธ์ชฝ ์๋จ์ ๋ํ๋ ํ ๋ฐ ๊ทธ ๋ฒํผ ๋๋ฌ์ฃผ๋ฉด ๋๋ค. 2๏ธโฃ Plugins ์ค์นํ๊ธฐ ์๋์ฐ ๊ธฐ์ค Files -> settings - > plugins ๊ฒ์ marktetplace์ lombok ๊ฒ์ํ๊ณ ์ค์นํด์ฃผ๋ฉด ๋๋ค. โ ๊ทผ๋ฐ ๋๋ ๊ฒ์ํ๋ ค๋๊น ์๋์์ ์์ธ๊ฐ ์ฐพ์๋ณด๋ ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด ์์ด์ ๊ฒ์๋์ง ์๋๋ค๊ณ ํ๋ค! ๊ทธ๋์ installed๋ฅผ ํด๋ฆญํด๋ณด๋ Lombok์ด ์ด๋ฏธ ์ค์น๋์ด ์์๋ค. 3๏ธโฃ Enable annotation prcessing ์ฒดํฌ ์๋์ฐ ๊ธฐ์ค File -> settings -> annotation processor ๊ฒ์ ์ ์์ Enable annotation proces..
2021.12.13 -
[Spring boot #4] ์คํ๋ง API @ResponseBody
์คํ๋ง์์ API๋ผ๊ณ ํ๋ฉด RESTful API๋ผ๊ณ ํ ์ ์๋ค. 1๏ธโฃ @ResponseBody ์ด๋ ๊ฒ @ResponseBody๋ฅผ ์ฌ์ฉํ๋ฉด returnํ ๋ ๋ทฐ ์ด๋ฆ์ ์ง์ ํด viewResolver๊ฐ ํด๋นํ๋ ๋ทฐ๋ก ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ , ๋์ ์ HTTP Body์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํํ๋ค. ๊ฒฐ๊ณผ ์ด๋ฉฐ ํ์ด์ง ์์ค๋ณด๊ธฐ๋ก ์์ค์ฝ๋๋ฅผ ๋ด๋ ๋ฌธ์ ๋ด์ฉ๋ง ๋์ค๊ณ , ๋ค๋ฅธ html ํ๊ทธ๋ ์ด๋ฐ๊ฑด ์๊ณ ๊ฐ์ฒด๊ฐ JSON์ผ๋ก ๋ณํ๋๋ค. ์ด๋์๋ ViewResolver๊ฐ ๋์ํ๋ ๊ฒ์ด ์๋๋ผ HttpMessageConverter๊ฐ ๋์ํด ๊ธฐ๋ณธ ๋ฌธ์์ฒ๋ฆฌ๋ฉด StringHtpMessageConverter๊ฐ ๋์ํ๊ณ , ๊ธฐ๋ณธ ๊ฐ์ฒด์ฒ๋ฆฌ๋ฉด MappingJackson2HttpMessageConverter๊ฐ ๋์ํ๋ค.
2021.12.07 -
[Spring boot #2] ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ์์ ์คํ๋ง ํ๋ก์ ํธ ์์ฑํ๊ธฐ
1๏ธโฃ ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ ๊ฒฝ๋ก https://start.spring.io/ 2๏ธโฃ ํ๋ก์ ํธ ์์ฑํ๊ธฐ ์์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ๋ฉด ์ด๋ฐ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. Project : ์ฐ์ Maven Project์ Gradle Project๊ฐ ์๋๋ฐ ์์ฆ์ maven ๋ณด๋ค gradle๋ก ํ๋ก์ ํธ๋ฅผ ๋ง์ด ๋ง๋๋ ์ถ์ธ๋ผ๊ณ ํ๋ค. ๊ทธ๋ผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋๊ฒ ์ข์ผ๋๊น gradle project๋ฅผ ์ ํํ๋ค. Spring Boot : 2.6.2 2.6.1 ๋ญ ์ด๋ ๊ฒ ์๋๋ฐ 2021-12 ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ธ 2.6.1์ ์ ํํ๋ค. SNAPSHOT์ ์์ง ๋ง๋ค๊ณ ์๋ ๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ํ 2.6.1์ ์ ํํ์. Project Metadata : Group์๋ ํจ์งํค๋ช ์ ์ ๋๋ฐ ๋ณดํต ํ์ฌ ๋๋ฉ์ธ๋ช ์ ๊ธฐ๋ ํ๋๋ฐ ์ด๊ฑด ์ฌ..
2021.12.07 -
[Spring boot #1] IntelliJ IDEA Community ์ค์นํ๊ธฐ
1๏ธโฃ IntlliJ ์ค์น ๊ฒฝ๋ก https://www.jetbrains.com/ko-kr/idea/download/#section=windows ๋ค์ด๋ก๋ IntelliJ IDEA: ์ฐ์์ฑ๊ณผ ์ธ์ฒด ๊ณตํ์ด ๋ด๊ธด JetBrains Java IDE www.jetbrains.com 2๏ธโฃ Community์ ๋ค์ด๋ก๋ ๋ฒํผ ํด๋ฆญ ์ปค๋ฎค๋ํฐ ๋ฒ์ ์๋ ๋ช๊ฐ์ง ์ค์ํ ๊ธฐ๋ฅ์ด ์ ์ธ๋๊ธด ํ์ง๋ง ์ผ๋จ Spring Boot ๊ณต๋ถํ๋ฉด์ ์ฒ์์ผ๋ก ์ดํด๋ฆฝ์ค๊ฐ ์๋ IntelliJ๋ฅผ ์ฌ์ฉํด๋ณผ ์์ ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฐ์ ๋ฌด๋ฃ ๋ฒ์ ์..๐ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ฐ๋ก ๋ค์ด์ด ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๊ณ์ next ๋๋ฌ์ฃผ๊ณ , ์ค์น ๊ฒฝ๋ก๋ ๊ธฐ๋ณธ C ๋๋ผ์ด๋ธ์ program File๋ก ์ง์ ๋ ๊ฒ์ด๋ค. (๋๋ D๋๋ผ์ด๋ธ์ ์ค์นํ๊ณ ์ถ์ด์ ๋ณ๊ฒฝํด์คฌ๋ค.) ๊ทธ๋ฆฌ๊ณ I..
2021.12.07