๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅWeb/๐Ÿ”ฅSpringBoot8

[SpringBoot] HttpSession๊ฐ’ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ, ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ Session ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ๊ธฐ๋ณธ์œผ๋กœ HttpSession ๊ฐ’ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์—์„œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ Session ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' ver.. 2022. 6. 13.
[SpringBoot] JPA Auditing์ด๋ž€? Auditing example JPA Auditing์ด๋ž€? Auditing example JPA Auditing์ด๋ž€? ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ๊ฐ์‚ฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์— ์ƒ์† ํ™œ์„ฑํ™” ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ JPA Auditing์ด๋ž€? ๋ณดํ†ต ์—”ํ‹ฐํ‹ฐ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ์‹œ๊ฐ„๊ณผ ์ˆ˜์ •์‹œ๊ฐ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€, ์–ธ์ œ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ๋“ฑ์€ ์ฐจํ›„ ์œ ์ง€๋ณด์ˆ˜์— ์žˆ์–ด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์ •๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ ๋งค๋ฒˆ DB์— ์‚ฝ์ž…ํ•˜๊ธฐ ์ „, ๊ฐฑ์‹ ํ•˜๊ธฐ ์ „์— ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋“ฑ๋ก/์ˆ˜์ •ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋ชจ๋“  ํ…Œ์ด๋ธ”๊ณผ ์„œ๋น„์Šค ๋ฉ”์†Œ๋“œ์— ํฌํ•จ๋˜๋Š”๊ฒƒ์€ ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•œ ์ผ์ž…๋‹ˆ๋‹ค. Spring Data๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•œ ์‚ฌ๋žŒ๊ณผ ๋ฐœ์ƒํ•œ ์‹œ์ ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ์ •๊ตํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์ด์ ์„ ์–ป์œผ๋ ค.. 2022. 6. 6.
[SpringBoot] ์ฟผ๋ฆฌ ๋กœ๊ทธ ํ™•์ธ application.properties, application.yml build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' } group 'com.example.base' version '1.0-SNA.. 2022. 6. 2.
[SpringBoot] build.gradle, repositories, dependencies, repositories, dependencies๋ž€? Gradle์ด๋ž€? Gradle์€ ์œ ์—ฐ์„ฑ๊ณผ ์„ฑ๋Šฅ์— ์ค‘์ ์„ ๋‘” ์˜คํ”ˆ ์†Œ์Šค ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Gradle ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋Š” *Groovy ๋˜๋Š” Kotlin *๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด(DSL)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด(DSL: Domain-specific language) ํŠน์ •ํ•œ ๋„๋ฉ”์ธ์„ ์ ์šฉํ•˜๋Š”๋ฐ ํŠนํ™”๋œ ์ปดํ“จํ„ฐ ์–ธ์–ด ๐Ÿ’กGroovy Groovy๋Š” ์ž๋ฐ”์— ํŒŒ์ด์ฌ, ๋ฃจ๋น„, ์Šค๋ชฐํ† ํฌ๋“ฑ์˜ ํŠน์ง•์„ ๋”ํ•œ ๋™์  ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. Gradle scripts๋Š” Configuration scripts ์ž…๋‹ˆ๋‹ค. script๊ฐ€ ์‹คํ–‰๋˜๋ฉด ํŠน์ • ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด build script๊ฐ€ ์‹คํ–‰๋ ๋•Œ ํ”„๋กœ์ ํŠธ ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐœ์ฒด๋ฅผ ์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€๋ฆฌ์ž ๊ฐœ์ฒด ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ .. 2021. 12. 18.
[SpringBoot] AOP ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ, ๋กค๋ฐฑ, AspectJ ํŠธ๋žœ์žญ์…˜์ฒ˜๋ฆฌtransactionAdvice, transactionAdviceAdvisor example TransactionConfig.java package com.example.base.config; import java.util.Collections; import java.util.HashMap; import org.aspectj.lang.annotation.Aspect; import org.springframework.aop.Advisor; import org.springframework.aop.aspectj.AspectJExpressionPointcut; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.beans.factory.annotation.Autowired; import org... 2021. 1. 19.
[SpringBoot] AOP AspectJ @Aspect ์ ์šฉํ•˜๊ธฐ @Pointcut, @Around, @Before, @AfterReturning, @After, @AfterThrowing, example code AOP ์ฃผ์š” ๊ฐœ๋… AOP๋Š” Aspect Oriented Programming์˜ ์•ฝ์ž๋กœ ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ๊ด€์ ์ง€ํ–ฅ์€ ์‰ฝ๊ฒŒ๋งํ•ด ์–ด๋–ค ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๊ด€์ , ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๊ณ  ๊ทธ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋ชจ๋“ˆํ™” ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋ชจ๋“ˆํ™”๋ž€ ์–ด๋–ค ๊ณตํ†ต๋œ ๋กœ์ง์ด๋‚˜ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ๋Š”๊ฒƒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋กœ๋“ค์–ด ํ•ต์‹ฌ์ ์ธ ๊ด€์ ์€ ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋œ๋‹ค. ๋˜ํ•œ ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์€ ํ•ต์‹ฌ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ–‰ํ•ด์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๋กœ๊น…, ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋“ฑ์„ ์˜ˆ๋กœ ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค. AOP์—์„œ ๊ฐ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋กœ์ง์„ ๋ชจ๋“ˆํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๋“ค์„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ชจ๋“ˆํ™”ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์ด๋•Œ, ์†Œ์Šค ์ฝ”๋“œ ์ƒ์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ์“ฐ๋Š” ์ฝ”.. 2021. 1. 14.
[SpringBoot] Filter(ํ•„ํ„ฐ) OncePerRequestFilter๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•˜๊ธฐ Filter๋ž€ ์„œ๋ธ”๋ฆฟ์˜ ServletContext ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์„œ๋ธ”๋ฆฟ์ด ํ˜ธ์ถœ ๋˜๊ธฐ ์ „/ํ›„๋กœ ์‚ฌ์šฉ์ž ์š”์ฒญ/์‘๋‹ต์˜ ํ—ค๋” ์ •๋ณด ๋“ฑ์„ ๊ฒ€์‚ฌ ๋ฐ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Servlet Filter์™€ HandlerInterceptor์˜ ์ฐจ์ด Filter์™€ Interceptor ๋น„๊ต ํ•„ํ„ฐ๋Š” DispatcherServlet ์•ž์—์„œ ๋จผ์ € ๋™์ž‘ํ•˜๊ณ , ์ธํ„ฐ์…‰ํ„ฐ๋Š” DispatcherServlet์—์„œ Controller(Handler) ์‚ฌ์ด์—์„œ ๋™์ž‘ํ•œ๋‹ค. ํ•„ํ„ฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Context์˜ ๊ธฐ๋Šฅ ์Šคํ”„๋ง ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ธฐ์— ์–ด๋ ค์›€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฝ”๋”ฉ, CORS, XSS, LOG, ์ธ์ฆ, ๊ถŒํ•œ ๋“ฑ ์„ ๊ตฌํ˜„ ์ธํ„ฐ์…‰ํ„ฐ ์Šคํ”„๋ง์˜ Spring Context์˜ ๊ธฐ๋Šฅ์ด๋ฉฐ ์ผ์ข…์˜ ๋นˆ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์ด๊ธฐ์— ๋‹ค๋ฅธ ๋นˆ์„ ์ฃผ์ž…ํ•˜์—ฌ ํ™œ์šฉ์„ฑ์ด ์ข‹์Œ .. 2021. 1. 13.
[SpringBoot] Interceptor(์ธํ„ฐ์…‰ํ„ฐ) HandlerInterceptor๋กœ ๊ฐ„๋‹จํžˆ interceptํ•˜๊ธฐ HandlerInterceptor : ์„ธ์…˜์ด๋‚˜ ์ฟ ํ‚ค, ๊ฒ€์ฆ ๋“ฑ์„ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์š”์ฒญํ๋ฆ„์ด ํ๋ฅด๊ธฐ์ „์— controller ์ „์— ๊ฐ€๋กœ์ฑ„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. Servlet Filter์™€ HandlerInterceptor์˜ ์ฐจ์ด Filter์™€ Interceptor ๋น„๊ต ํ•„ํ„ฐ๋Š” DispatcherServlet ์•ž์—์„œ ๋จผ์ € ๋™์ž‘ํ•˜๊ณ , ์ธํ„ฐ์…‰ํ„ฐ๋Š” DispatcherServlet์—์„œ Controller(Handler) ์‚ฌ์ด์—์„œ ๋™์ž‘ํ•œ๋‹ค. ํ•„ํ„ฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Context์˜ ๊ธฐ๋Šฅ ์Šคํ”„๋ง ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ธฐ์— ์–ด๋ ค์›€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฝ”๋”ฉ, CORS, XSS, LOG, ์ธ์ฆ, ๊ถŒํ•œ ๋“ฑ ์„ ๊ตฌํ˜„ ์ธํ„ฐ์…‰ํ„ฐ ์Šคํ”„๋ง์˜ Spring Context์˜ ๊ธฐ๋Šฅ์ด๋ฉฐ ์ผ์ข…์˜ ๋นˆ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์ด๊ธฐ์— ๋‹ค๋ฅธ ๋นˆ์„ ์ฃผ์ž…ํ•˜์—ฌ ํ™œ์šฉ์„ฑ์ด ์ข‹์Œ ๋‹ค๋ฅธ ๋นˆ.. 2021. 1. 13.
๋ฐ˜์‘ํ˜•