Back-End/Spring
-
๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ฉด ํน์ ๋จ๊ณ์์ ์๋ํ๊ฑฐ๋, ์ฌ๋ฌ ๊ณณ์์ ๋ฐ๋ณต๋๋ ๋ก์ง์ ๊ณตํต์ผ๋ก ๊ด๋ฆฌํด์ผ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด Filter , Interceptor, AOP ์ ๋๋ค. ๋ชจ๋ ๋น์ฆ๋์ค ๋ก์ง์ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋ ์ฝ๋๊ฐ ์๋ค๋ฉด ์ค๋ณต์ด ๋์ด๋๊ณ , ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋๋ค. ์ด ์ธ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์์ ์ค๋ณต๋๋ ๋ก์ง์ ์ ๊ฑฐํ๊ณ , ํน์ ๋จ๊ณ์์์ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ธ์์๋ ์ด ์ธ ๊ฐ์ง ๊ธฐ์ ์ ์ ์์ ํน์ง, ๊ฐ ์ฌ์ฉ ์ผ์ด์ค๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค. ์คํ ์์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Request → Filter → Servlet → Interceptor → AOP → Controller ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ Filter๋ Spring๊ณผ ๋ฌด๊ดํ Web Cont..
[Spring] Filter, Interceptor, AOP ์ ๋ฆฌ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ฉด ํน์ ๋จ๊ณ์์ ์๋ํ๊ฑฐ๋, ์ฌ๋ฌ ๊ณณ์์ ๋ฐ๋ณต๋๋ ๋ก์ง์ ๊ณตํต์ผ๋ก ๊ด๋ฆฌํด์ผ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด Filter , Interceptor, AOP ์ ๋๋ค. ๋ชจ๋ ๋น์ฆ๋์ค ๋ก์ง์ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋ ์ฝ๋๊ฐ ์๋ค๋ฉด ์ค๋ณต์ด ๋์ด๋๊ณ , ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋๋ค. ์ด ์ธ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์์ ์ค๋ณต๋๋ ๋ก์ง์ ์ ๊ฑฐํ๊ณ , ํน์ ๋จ๊ณ์์์ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ธ์์๋ ์ด ์ธ ๊ฐ์ง ๊ธฐ์ ์ ์ ์์ ํน์ง, ๊ฐ ์ฌ์ฉ ์ผ์ด์ค๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค. ์คํ ์์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Request → Filter → Servlet → Interceptor → AOP → Controller ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ Filter๋ Spring๊ณผ ๋ฌด๊ดํ Web Cont..
2024.02.21 -
์ ๋ง ๊ฐ๋จํ๊ฒ ๊ธฐ์กด์ ์คํ๋ง๋ถํธ์ ์๊ทธ๋์ฒ ๋ฐฐ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ์๋กญ๊ฒ ์ ๋ํฌํ ๋ฐฐ๋๋ก ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ด๋ฐ ์์ผ๋ก ํน์ ์๋ ์์ ๋ง์ ์ํฐ๋งํฌ๋ฅผ ๋ฌ์๋ ์ ์๋ ๊ฒ์ด ์ ๋ง ๋งค๋ ฅ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌ๋ ์คํ๋ง๋ถํธ ์คํ ๋ฐฐ๋๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ์ด ๋ ๊น์? #1. ๋ฐฐ๋ ์์ฑ ์ฌ์ดํธ ์ ์ http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20 Text to ASCII Art Generator (TAAG) patorjk.com https://devops.datenkollektiv.de/banner.txt/index.html Spring Boot banner.txt generator devops.datenkollektiv...
[SpringBoot] ์คํ ๋ฐฐ๋ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ์ ๋ง ๊ฐ๋จํ๊ฒ ๊ธฐ์กด์ ์คํ๋ง๋ถํธ์ ์๊ทธ๋์ฒ ๋ฐฐ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ์๋กญ๊ฒ ์ ๋ํฌํ ๋ฐฐ๋๋ก ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ด๋ฐ ์์ผ๋ก ํน์ ์๋ ์์ ๋ง์ ์ํฐ๋งํฌ๋ฅผ ๋ฌ์๋ ์ ์๋ ๊ฒ์ด ์ ๋ง ๋งค๋ ฅ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌ๋ ์คํ๋ง๋ถํธ ์คํ ๋ฐฐ๋๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ์ด ๋ ๊น์? #1. ๋ฐฐ๋ ์์ฑ ์ฌ์ดํธ ์ ์ http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20 Text to ASCII Art Generator (TAAG) patorjk.com https://devops.datenkollektiv.de/banner.txt/index.html Spring Boot banner.txt generator devops.datenkollektiv...
2023.02.06 -
๋งค๋ฒ Thymeleaf, Jsp, Pebble, Freemarker ๋ฑ๋ฑ ํ ํ๋ฆฟ ์์ง๋ง ์ฌ์ฉํ๋ค ๋ณด๋ ํผ๋ธ๋ฆฌ์ฑ ์์ ๋ณธ์ ๋ฐ์์ ์ฌ์ฉ์ ํ๋ฉด์ ์์ฑํ๋ ์์ ์ ์ฃผ๋ก ํ๊ฒ ๋์๋๋ฐ, ์ด๋ฒ์๋ ์๋กญ๊ฒ JPA์ React ๋๋ Vue๋ฅผ ์ฌ์ฉํ์ฌ Back / Front๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ๊ณ Back ์ชฝ์์๋ Front ์ชฝ์ผ๋ก API ๊ท๊ฒฉ์๋ง ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋, ์ฌ์ด๋ ํ๋ก์ ํธ๋ก ์งํํ๋ค ๋ณด๋๊น ์๊ฐ์ ์ฌ์ ๊ฐ ๋ง์ง๊ฐ ์์์ API ์ฐ๋๊ท๊ฒฉ์๊น์ง ์์ฑํ๊ธฐ์๋ ์ด๋ ค์์ด ์์์ต๋๋ค. (ํ๊ณ์ธ๊ฑฐ ๋ค๋ค ์์์ฃ ?) ํด์.. ์ด๋ฒ ๊ธฐํ์ ์ค์จ๊ฑฐ(Swagger) API๋ฅผ ํ์ฉํด์ API ์ฐ๋๊ท๊ฒฉ์๋ Swagger์๊ฒ ๋งก๊ฒจ๋ณด๋ ค๊ณ ํฉ๋๋ค. #1. Swagger ์ค์ 1. gradle ์ค์ // swagger implementa..
[Spring] ์ค์จ๊ฑฐ(Swagger) ์ค์ ๋งค๋ฒ Thymeleaf, Jsp, Pebble, Freemarker ๋ฑ๋ฑ ํ ํ๋ฆฟ ์์ง๋ง ์ฌ์ฉํ๋ค ๋ณด๋ ํผ๋ธ๋ฆฌ์ฑ ์์ ๋ณธ์ ๋ฐ์์ ์ฌ์ฉ์ ํ๋ฉด์ ์์ฑํ๋ ์์ ์ ์ฃผ๋ก ํ๊ฒ ๋์๋๋ฐ, ์ด๋ฒ์๋ ์๋กญ๊ฒ JPA์ React ๋๋ Vue๋ฅผ ์ฌ์ฉํ์ฌ Back / Front๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ๊ณ Back ์ชฝ์์๋ Front ์ชฝ์ผ๋ก API ๊ท๊ฒฉ์๋ง ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋, ์ฌ์ด๋ ํ๋ก์ ํธ๋ก ์งํํ๋ค ๋ณด๋๊น ์๊ฐ์ ์ฌ์ ๊ฐ ๋ง์ง๊ฐ ์์์ API ์ฐ๋๊ท๊ฒฉ์๊น์ง ์์ฑํ๊ธฐ์๋ ์ด๋ ค์์ด ์์์ต๋๋ค. (ํ๊ณ์ธ๊ฑฐ ๋ค๋ค ์์์ฃ ?) ํด์.. ์ด๋ฒ ๊ธฐํ์ ์ค์จ๊ฑฐ(Swagger) API๋ฅผ ํ์ฉํด์ API ์ฐ๋๊ท๊ฒฉ์๋ Swagger์๊ฒ ๋งก๊ฒจ๋ณด๋ ค๊ณ ํฉ๋๋ค. #1. Swagger ์ค์ 1. gradle ์ค์ // swagger implementa..
2023.02.06 -
์๋์ ํด๊ฒฐ์ฑ ์ IntelliJ IDEA์ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌ๊ฐ ๋์์ง๋ง, ๋ค๋ฅธ IDE๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ผ๋ ์ฐธ๊ณ ๊ฐ ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋ซ๊ณ ํด๋น ํ๋ก์ ํธ ๊ฒฝ๋ก ์ง์ ํ .idea ํด๋์ iml ํ์ผ ์ญ์ ํ ํ๋ก์ ํธ ์คํ ๋ฐ ํ๋ก์ ํธ ์ฌ๋น๋ ์งํ ๋น๋์๋ํ๋๊ตฌ ์ฌ๋น๋ ์งํ gradle: build.gradle ์ฐํด๋ฆญ → Import Gradle Project ์คํ maven: clean & install ์ฌ๋น๋ ์งํ
[SpringBoot] ์๋ฐ ํ์ผ์ด ์ธ์๋์ง ์์ ๋์๋์ ํด๊ฒฐ์ฑ ์ IntelliJ IDEA์ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌ๊ฐ ๋์์ง๋ง, ๋ค๋ฅธ IDE๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ผ๋ ์ฐธ๊ณ ๊ฐ ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋ซ๊ณ ํด๋น ํ๋ก์ ํธ ๊ฒฝ๋ก ์ง์ ํ .idea ํด๋์ iml ํ์ผ ์ญ์ ํ ํ๋ก์ ํธ ์คํ ๋ฐ ํ๋ก์ ํธ ์ฌ๋น๋ ์งํ ๋น๋์๋ํ๋๊ตฌ ์ฌ๋น๋ ์งํ gradle: build.gradle ์ฐํด๋ฆญ → Import Gradle Project ์คํ maven: clean & install ์ฌ๋น๋ ์งํ
2023.02.04 -
Spring์ ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ MVC ํ๋ ์ ์ํฌ๋ RESTful ์น ์๋น์ค ์์ฑ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค. ์ ํต์ ์ธ Spring MVC ์ปจํธ๋กค๋ฌ์ RESTful ์น ์๋น์ค ์ปจํธ๋กค๋ฌ์ ์ฃผ์ ์ฐจ์ด์ ์ HTTP Response Body๊ฐ ์์ฑ๋๋ ๋ฐฉ์์ ๋๋ค. ๊ธฐ์กด MVC ์ปจํธ๋กค๋ฌ๋ View ๊ธฐ์ ์ ์์กดํ์ง๋ง RESTful ์น ์๋น์ค ์ปจํธ๋กค๋ฌ๋ ๋จ์ํ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ณ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ JSON / XML๋ก HTTP ์๋ต์ ์ง์ ๊ธฐ๋ก๋ฉ๋๋ค. @Controller(Spring MVC Controller) 1. Controller - View ์๋์ ๊ฐ์ ๊ณผ์ ์ ํตํด Spring MVC Container๋ Client์ ์์ฒญ์ผ๋ก๋ถํฐ View๋ฅผ ๋ฐํํฉ๋๋ค. Client๋ URI ํ์์ผ๋ก ์น ์๋น์ค์ ์์ฒญ์ ๋ณด๋ ๋๋ค. Ma..
[Spring] @Controller, @RestController ์ฐจ์ด์ Spring์ ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ MVC ํ๋ ์ ์ํฌ๋ RESTful ์น ์๋น์ค ์์ฑ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค. ์ ํต์ ์ธ Spring MVC ์ปจํธ๋กค๋ฌ์ RESTful ์น ์๋น์ค ์ปจํธ๋กค๋ฌ์ ์ฃผ์ ์ฐจ์ด์ ์ HTTP Response Body๊ฐ ์์ฑ๋๋ ๋ฐฉ์์ ๋๋ค. ๊ธฐ์กด MVC ์ปจํธ๋กค๋ฌ๋ View ๊ธฐ์ ์ ์์กดํ์ง๋ง RESTful ์น ์๋น์ค ์ปจํธ๋กค๋ฌ๋ ๋จ์ํ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ณ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ JSON / XML๋ก HTTP ์๋ต์ ์ง์ ๊ธฐ๋ก๋ฉ๋๋ค. @Controller(Spring MVC Controller) 1. Controller - View ์๋์ ๊ฐ์ ๊ณผ์ ์ ํตํด Spring MVC Container๋ Client์ ์์ฒญ์ผ๋ก๋ถํฐ View๋ฅผ ๋ฐํํฉ๋๋ค. Client๋ URI ํ์์ผ๋ก ์น ์๋น์ค์ ์์ฒญ์ ๋ณด๋ ๋๋ค. Ma..
2023.02.04 -
IntelliJ์์ Springboot ์คํํ๊ธฐ 1. ๊ธฐ๋ณธ์ค์ ํ์ธ ํ Next 2. GroupId์ ArtifactId ์ค์ . ํนํ ArtifactId๋ ํ๋ก์ ํธ์ ์ด๋ฆ์ด ๋๊ธฐ ๋๋ฌธ์ ์ํ๋ ์ด๋ฆ์ผ๋ก ์์ฑ ํ Finish 3. ํ๋ก์ ํธ ์์ฑ์ด ๋ค์๊ณผ ๊ฐ์ด ๋์๋์ง ํ์ธ 4. build.gradle ํ์ผ์ ์ด์ด ์๋์ ์ฝ๋๋ฅผ ์์ฑ ํ ์ฐ์ธก ํ๋จ์ Enable Auto-Import ํด๋ฆญ buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${sp..
[SpringBoot] IntelliJ์์ Springboot + gradle ์คํํ๊ธฐIntelliJ์์ Springboot ์คํํ๊ธฐ 1. ๊ธฐ๋ณธ์ค์ ํ์ธ ํ Next 2. GroupId์ ArtifactId ์ค์ . ํนํ ArtifactId๋ ํ๋ก์ ํธ์ ์ด๋ฆ์ด ๋๊ธฐ ๋๋ฌธ์ ์ํ๋ ์ด๋ฆ์ผ๋ก ์์ฑ ํ Finish 3. ํ๋ก์ ํธ ์์ฑ์ด ๋ค์๊ณผ ๊ฐ์ด ๋์๋์ง ํ์ธ 4. build.gradle ํ์ผ์ ์ด์ด ์๋์ ์ฝ๋๋ฅผ ์์ฑ ํ ์ฐ์ธก ํ๋จ์ Enable Auto-Import ํด๋ฆญ buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${sp..
2023.02.04 -
์คํ๋ง์ด๋ ? Java์ ์น ํ๋ ์์ํฌ๋ก Java์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. Java๋ก ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ํ์ด๋ผ ํ ์ ์์ต๋๋ค. Java์ ํ์ฉ๋๊ฐ ๋์์ก๊ณ ๊ทธ์ ๋ฐ๋ผ์ ํ๋ก์ ํธ ๊ท๋ชจ๋ ์ปค์ก์ต๋๋ค. Java๋ฅผ ์ด์ฉํ ๊ธฐ์ ์ JSP, MyBatis, JPA ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์ฆ, ์ด ๊ธฐ์ ๋ค์ด ํ๋ก์ ํธ์ ๋ง์ด ์ฐ์ธ๋ค๊ณ ํ ์ ์์ต๋๋ค. Spring์ ์ด ๊ธฐ์ ๋ค์ ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ์๋ฌด๋ฆฌ ๋ถ์ ์ ํด๋ ๋ถ๋ช ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ํ๋ฉ๋๋ค. Spring์ ์ด๋ฐ ์ค๋ณต์ฝ๋์ ์ฌ์ฉ๋ฅ ์ ์ค์ฌ์ฃผ๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ๋ ๊ฐ๋จํ๊ฒ ํด์ค ์ ์์ต๋๋ค. Spring์ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ฐธ์กฐํ์ฌ ์ฐ๊ธฐ ํธ๋ฆฌํ๋ฐ ์ด ๋ง์ ์๋ฏธ๋ ์คํ์์ค๋ฅผ ์ข๋..
[Spring] ์คํ๋ง์ด๋ ?์คํ๋ง์ด๋ ? Java์ ์น ํ๋ ์์ํฌ๋ก Java์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. Java๋ก ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ํ์ด๋ผ ํ ์ ์์ต๋๋ค. Java์ ํ์ฉ๋๊ฐ ๋์์ก๊ณ ๊ทธ์ ๋ฐ๋ผ์ ํ๋ก์ ํธ ๊ท๋ชจ๋ ์ปค์ก์ต๋๋ค. Java๋ฅผ ์ด์ฉํ ๊ธฐ์ ์ JSP, MyBatis, JPA ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์ฆ, ์ด ๊ธฐ์ ๋ค์ด ํ๋ก์ ํธ์ ๋ง์ด ์ฐ์ธ๋ค๊ณ ํ ์ ์์ต๋๋ค. Spring์ ์ด ๊ธฐ์ ๋ค์ ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ์๋ฌด๋ฆฌ ๋ถ์ ์ ํด๋ ๋ถ๋ช ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ํ๋ฉ๋๋ค. Spring์ ์ด๋ฐ ์ค๋ณต์ฝ๋์ ์ฌ์ฉ๋ฅ ์ ์ค์ฌ์ฃผ๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ๋ ๊ฐ๋จํ๊ฒ ํด์ค ์ ์์ต๋๋ค. Spring์ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ฐธ์กฐํ์ฌ ์ฐ๊ธฐ ํธ๋ฆฌํ๋ฐ ์ด ๋ง์ ์๋ฏธ๋ ์คํ์์ค๋ฅผ ์ข๋..
2023.02.04