[spring boot] @.์๋ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ๊ธฐ๋ณธ ์ง์ ์๋ฒ์ ํด๋ผ์ด์ธํธโฆ ์๋ฒ ๋? ์๋ฒ(Server)๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ request ๋ฐ์ ์ฒ๋ฆฌํ๋ ์ฃผ์ฒด์ ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ (Post ๋ฐฉ์) , ์๋ฒ ๋ด์์ ์ฒ๋ฆฌ๋ง ํด๋ฌ๋ผ๋ ์์ฒญ์ ํ๋ฉด ํด๋น ์์ฒญ๋ง ์ฒ๋ฆฌํ ์ ๋ ์์ต๋๋ค. (Get๋ฐฉ์) โฆ ํด๋ผ์ด์ธํธ ๋? ํด๋ผ์ด์ธํธ(Client)๋ ์๋ฒ๋ก ์์ฒญํ๋ ํ๋ก๊ทธ๋จ์ ์ผ์ปซ๋ ๋ง์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ธ ํด๋ผ์ด์ธํธ ์ค ํ๋์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด URL์ ์ ๋ ฅํ๊ณ ํ๋ฉด์ ์์ฒญํ๋ ํ๋์ ํตํด ํด๋น ๋งํฌ๋ก์ ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด์ ๊ฐ์ด ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐ(Enter) ํค๋ฅผ ํตํด ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๊ฒ์ "์๋ฒ์ ์์ฒญํ๋ค" ์ฆ, Request ํ๋ ๊ฒ์ด๋ฉฐ, ์ด ํ๋์ ํตํด ์๋ฒ๋ Response ํ๋.. [spring boot] Spring Security ๊ธฐ๋ณธ ๋ก๊ทธ์ธ ํ์ด์ง ์์ ๊ธฐ (6.1 ์ด์ ๋ฒ์ ) ํ๋ก์ ํธ ์งํ ์ค spring security๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ DB์ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ spring security ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ build.gradle์ ์ฃผ์ ํด์ฃผ์๋ค. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'spring security๋ฅผ ์ฃผ์ ํ๊ฒ ๋๋ฉด ์๋์ผ๋ก login ํ์ด์ง๋ก ์ด๋ํ๊ฒ ๋๊ณ , ์ํ๋ url์ ์๋ฌด๋ฆฌ ์ ๋ ฅํด๋ ์ด๋ํ์ง ์๋๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ๋จผ์ , application์์ ์คํ๋๋ Main.java ํด๋์ค ํ์ผ์ @SpringBootApplication ์ด.. [Spring] ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ Spring ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์๋ ฅ์ ๋์ฌ์ผ ํ๋ ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ ๋์ด๋ ์ด์ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ , ์์คํ ์์ ์ฑ ๋ณด์ฅ, ๋น์ฉ ์ ๊ฐ, ๊ธฐ์ ์ ์ ๋ขฐ๋ ์ ์ง ๋ฑ์ด ํฌํจ๋๋ค. 1. ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ด ๋์์๋ก ์ฌ์ฉ์๋ ์๋น์ค ์ค๋จ์ด๋ ์ฅ์ ๋ก ์ธํ ๋ถํธ์ ๊ฒฝํํ๋ ์๊ฐ์ ์ค์ผ ์ ์๋ค. ์ฌ์ฉ์๋ค์ด ์์ ์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ํฅ์์ํค๊ณ ์ฌ๋ฐฉ๋ฌธ๋ฅ ์ ๋์ผ ์ ์๋ค. 2. ์์คํ ์์ ์ฑ ๋ณด์ฅ : ์ฅ์ ๊ฐ ๋ฐ์ํ์ ์ ๋น ๋ฅด๊ฒ ๋ณต๊ตฌํ ์ ์๋ ์์คํ ์ ๋น์ฆ๋์ค ์ฐ์์ฑ์ ๋ณด์ฅํ๋๋ฐ ์ค์ํ๋ค. ํนํ ์จ๋ผ์ธ ๋น์ฆ๋์ค๋ ๊ธ์ต ์๋น์ค์ ๊ฐ์ด ์์คํ ์ ๊ฐ์ฉ์ฑ์ด ์ค์ํ ์ ์ข ์์๋ ์ฅ์ ์ ๋น ๋ฅด๊ฒ ๋์ํ๋ ๊ฒ์ด ๋น์ฆ๋์ค์ ์์กด๊ณผ ์ง๊ฒฐ๋ ์ ์๋ค. 3. ๋น์ฉ ์ ๊ฐ : ์ฅ์ ๊ฐ .. [Spring] ์คํ๋ง์ด ์ฃผ๊ธฐ์ ์ผ๋ก ์์กดํ๋ ๊ฒ์? ์คํ๋ง(Spring)์ ์๋ฐ ๊ฐ๋ฐ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ์ด๋ค. ์์กด์ฑ ์ฃผ์ (Dependenct Injection)๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ชจ๋ํํ๊ณ ์ ์ฐํ๊ฒ ๋ง๋ค์ ์๋๋ก ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋, ์คํ๋ง์ด ์ฃผ๊ธฐ์ ์ผ๋ก ์์กดํ๋ ๊ฒ์ ๋ฌด์์ผ๊น? ์์กด์ฑ ์ฃผ์ ์ปจํ ์ด๋ (Dependency Injection Container) : ์คํ๋ง์ ํต์ฌ์ ์์กด์ฑ ์ฃผ์ (DI) ์ด๋ค. DI Container๋ ๊ฐ์ฒด ๊ฐ์ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ณ , ํ์ํ ์์กด์ฑ์ ์ฃผ์ ํ๋ ์ญํ ์ ํ๋๋ฐ, ์คํ๋ง์ ์ด๋ฅผ ํตํด ๋์จํ ๊ฒฐํฉ(Loose Coupling)์ ์ ์งํ๋ฉฐ ๊ฐ์ฒด ๊ฐ์ ์์กด์ฑ์ ์ ์ดํ๋ค. AOP(Aspect-Oriented Programming) : AOP๋ ์คํ๋ง์ ๋ ๋ค๋ฅธ ํต์ฌ ๊ฐ๋ ์ค ํ๋๋ผ.. [Spring] ์คํ๋ง ๋ถํธ์์ auto-configuration์ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ Spring Boot๋ ์๋๊ตฌ์ฑ(Auto-Configuration)๊ธฐ๋ฅ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๊ณ ์์ํ ์ ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํ์ง๋ง ๋๋ก๋ ํน์ ๋ชจ๋์ ์๋ ๊ตฌ์ฑ์ด ์์น ์๋ ๋์์ ํ ์ ์๋ค. ์ด๋ด๋๋ ํด๋น ์๋ ๊ตฌ์ฑ์ ๋นํ์ฑํํ ํ์๊ฐ ์๋ค. @SpringBootApplication ์ด๋ ธํ ์ด์ ์ Exclude ์์ฑ ์ฌ์ฉ @SpringBootApplication ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ํด๋์ค๋ฅผ ์ ์ํ ๋, exclude ์์ฑ์ ์ฌ์ฉํ์ฌ ํน์ ์๋๊ตฌ์ฑ์ ๋นํ์ฑํํ ์ ์๋ค. @SpringBootApplication(exclude = {SomeAutoConfiguration.class}) public class MyApplication { public static vo.. [Spring] traceld ์ spanld๋? Spring์์ traceId์ spanId๋ ์ฝ๊ฒ ๋งํด, ๋ถ์ฐ์ถ์ ์์คํ ์ ํต์ฌ ๊ฐ๋ ์ด๋ค. ๋ถ์ฐ ์์คํ ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ๋ถ๋ถ์ด ๋์์ ์คํ๋๋ฉฐ, ์ด๋ฌํ ์คํ์ ์ฌ๋ฌ ์๋น์ค ๊ฐ์ ํธ์ถ ๋ฐ ํต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์ถ์ ํ๊ณ ์ดํดํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ฉฐ, ์ด๋ฌํ ๋์์ ํด์ค ์ ์๋๊ฒ TraceID์ SpanID๋ผ๊ณ ํ ์ ์๋ค. TraceID์ SpanID๋? TraceID : ๋ถ์ฐ ์์คํ ์์ ์ ์ฒด ํธ๋์ญ์ ์ ์ถ์ ํ๊ธฐ ์ํ ๊ณ ์ ์๋ณ์ ์ฌ๋ฌ ์๋น์ค๊ฐ์ ํธ์ถ ์ฌ์ด์์ ํ๋ฆ์ ์ถ์ ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ๋ชจ๋ ๋ก๊ทธ ๋ฐ ์ด๋ฒคํธ์๋ ๋์ผํ TraceID๊ฐ ์์ด์ผ ํ๋ค. SpanID : TraceID ๋ด์์ ๊ฐ๋ณ ์์ ๋๋ ๋จ๊ณ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ฐ ์๋น์ค ํธ์ถ์ด Span์ผ๋ก.. [Spring] ์ด๋ ธํ ์ด์ ์ ์ฉ๋ Annotation Annotation์ด๋ ์ฌ์ ์ ์๋ฏธ๋ก๋ "์ฃผ์" ์ด๋ ๋ป์ด์ง๋ง, ์๋ฐ์์๋ "์ฝ๋ ์ฌ์ด์ ํน๋ณํ ์๋ฏธ, ๊ธฐ๋ฅ์ ์ํํ๋๋ก ํ๋ ๊ธฐ์ "์ด๋ ๋ป์ ์๋ฏธํ๋ค. ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ผ๋ถ๊ฐ ์๋ ํ๋ก๊ทธ๋จ์ ๊ดํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๊ณ , ์ฝ๋์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ์ ํํ๋ ๋ฐฉ๋ฒ์ด๋ค. Annotation์ ์ฌ์ฉํ๋ ์ด์ 1. ์ฝ๋๊ฐ ๊น๋ํด์ง๋ฉฐ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. 2. ์ปดํ์ผ๋ฌ์๊ฒ ์ฝ๋ ์์ฑ ๋ฌธ๋ฒ ์๋ฌ๋ฅผ ์ฒดํฌํ๋๋ก ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. 3. ๋ฐํ์ ์ ํน์ ๊ธฐ๋ฅ์ ์คํํ๋๋ก ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. 4. ์ํํธ์จ์ด ๊ฐ๋ฐ ํด์ด ๋น๋๋ ๋ฐฐ์น์ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์๋๋ก ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. Annotation ์ข ๋ฅ -> ๋ง์ Annotation์ค์์ ์์ฃผ ์ฐ์ด๋ฉด์, ์ค์ํ Annotation์ ์ ๋ฆฌํด๋ณด์๋ค @Compone.. [spring boot] Spring Boot ์์ํ๊ธฐ ์์ ์ ์๋ spring ๊ณผ spring boot ์ ์ฐจ์ด์ ์ ๋ํด ์ ์ด๋ณด๋ฉด์ Spring Boot ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ์ ๋ํด ์ ๋ฆฌํด๋ณด์๋ค [spring] Spring ๊ณผ Spring Boot ์ ์ฐจ์ด 'Java'์ ๋ํ์ ์ธ ๋ฐฑ์๋ ๊ฐ๋ฐ ํ๋ ์์ํฌ(Framework)์ธ "spring"๊ณผ "spring boot" ๊ทธ๋์ ๊ทธ๊ฒ ๋ญ ์ฐจ์ด์ธ๊ฑด๋ฐ? ์๋ ์ด๊ธฐ ๋ด ๊ถ๊ธ์ฆ์ ์ํด ์ ๋ฆฌํ๋ ๋ด์ฉ์ด๋ค. Spring spring(= spring framework) ์ Java ๊ธฐ๋ฐ ์ ํ nyung1127.tistory.com ๊ทธ๋์ Spring Boot๋ ์ด๋ป๊ฒ ์ฐ๋๊ฑด๋ฐ? ํ๋ ๋ค์ ๊ถ๊ธ์ฆ์ ํด๊ฒฐ โ๏ธ Spring Initializr ์ ์ํ๊ธฐ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ "์น์ฌ์ดํธ"๋ฅผ ํตํด์ ๋ง๋ค์ ์๋ค. ์ฃผ๋ก ํ๋ ์์ํฌ๋ค.. [spring] Spring ๊ณผ Spring Boot ์ ์ฐจ์ด 'Java'์ ๋ํ์ ์ธ ๋ฐฑ์๋ ๊ฐ๋ฐ ํ๋ ์์ํฌ(Framework)์ธ "spring"๊ณผ "spring boot" ๊ทธ๋์ ๊ทธ๊ฒ ๋ญ ์ฐจ์ด์ธ๊ฑด๋ฐ? ์๋ ์ด๊ธฐ ๋ด ๊ถ๊ธ์ฆ์ ์ํด ์ ๋ฆฌํ๋ ๋ด์ฉ์ด๋ค. Spring spring(= spring framework) ์ Java ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์ํ๋ ์คํ ์์ค ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ด๋ค. spring ๊ณต์๋ฌธ์์ ๋ฐ๋ฅด๋ฉด, ๋๋ณด๊ธฐ " the fact that Spring represented a fresh start after the "winter" of traditional J2EE. " -> ๊ฐ๋ฐ์์๊ฒ ๊ฒจ์ธ์ด ๋๋๊ณ ๋ด์ด ์ฐพ์์๋ค ๋ผ๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์๋ค๊ณ ํ๋ค. ((((((๊ฝค๋ ๊ท์ฌ์,,,ใ ))))))) ์ด ์คํ๋ง์ ์กฐ๊ธ ๋ ์ ๋ฆฌํ์๋ฉด : ์์ ์๋ฐ ๊ฐ์ฒด์ธ P.. ์ด์ 1 ๋ค์