Spring 12

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [ 3์›” 1์ฃผ์ฐจ ] [ 1 ]

3์›” 1์ฃผ์ฐจ ๋‚ด์šฉ ์ •๋ฆฌ [3/1 ~ 3/10] + ์ด์ „ ๋‚ด์šฉ 3์›” 1์ฃผ์ฐจ์— ๋‹ค๋ฃฌ ๋‚ด์šฉ๋“ค๊ณผ ๊ทธ ์ด์ „์— 2์›”์— ๋‹ค๋ค˜๋˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๋Œ€๋žต์ ์ธ ์ •๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•˜๋Š๋ผ ์ •๋ฆฌํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ๋‚˜์˜ฌ๋งŒํ•œ ๋‚ด์šฉ๋“ค๋กœ ๋‹ค๋ฃจ๊ณ  ์š”์ฆ˜์€ ๊ฑฐ์˜ ํ”„๋กœ์ ํŠธ ์œ„์ฃผ๋กœ ์งˆ๋ฌธ์„ ํ•œ๋‹ค์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ CS๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋“ค์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ์ž˜ ์ •๋ฆฌ๋ฅผ ํ•ด์„œ ๋ฉด์ ‘์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. 1. ์Šคํ”„๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š” ? ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”๋กœ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํˆด์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง์˜ ํŠน์ง•์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋กœ ์ œ์–ด์˜ ์—ญ์ „์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ์–ด๊ถŒ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ๋Š” ์˜์กด์„ฑ..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [15] [JPA]

1. JPA ๋ž€? JPA๋Š” ์ž๋ฐ” ์ง„์˜์—์„œ ORM(Object-Relational Mapping) ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ๊ตฌํ˜„๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„๋œ ํด๋ž˜์Šค์™€ ๋งคํ•‘์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JPA๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค๋กœ๋Š” Hibernate๊ฐ€ ์žˆ๋‹ค. ORM(Object-Relational Mapping) ? ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ ์žˆ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ Class์™€ RDB์˜ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด๋ฅผ RDB ํ…Œ์ด๋ธ”์— ์ž๋™์œผ๋กœ ์˜์†ํ™” ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์žฅ์  1. SQL๋ฌธ์ด ์•„๋‹Œ Method๋ฅผ ํ†ตํ•œ DB๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ 2. Query์™€ ๊ฐ™์ด ํ•„..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [9] [Servlet]

1. Servlet ์ด๋ž€ ? ์„œ๋ธ”๋ฆฟ์ด๋ž€ ๋™์  ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด๋‹ค. ์›น์„ ๋งŒ๋“ค ๋•Œ Request, Response์—๋Š” ๊ทœ์น™์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์›น ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ํ๋ฆ„์„ ๊ฐ„๋‹จํ•œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์ฒด๊ณ„์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. Servlet์˜ ์ฃผ์š” ํŠน์ง• ํด๋ผ์ด์–ธํŠธ์˜ Request์— ๋Œ€ํ•œ ๋™์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ HTML์„ ์‚ฌ์šฉํ•ด Response Java์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉ MVC ํŒจํ„ด์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด์šฉ java.servlet.http.HttpServlet ํด๋ž˜์Šค๋ฅผ ์ƒ์† UDP ๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค HTML ๋ณ€๊ฒฝ ์‹œ Servlet์„ ์žฌ ์ปดํŒŒ์ผ ํ•ด์•ผํ•จ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ž€? ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ž€ ์„œ๋ธ”๋ฆฟ์„ ๋‹ด๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค. ํด..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [5] [Spring AOP]

1. Spring AOP ๋ž€? AOP๋Š” Aspect Oriented Programming ์˜ ์•ฝ์ž๋กœ ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค. ๊ด€์  ์ง€ํ–ฅ์€ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์–ด๋–ค ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๊ด€์ , ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๊ณ  ๊ทธ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋ชจ๋“ˆํ™”ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋กœ๋“ค์–ด ํ•ต์‹ฌ์ ์ธ ๊ด€์ ์€ ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋œ๋‹ค. ๋˜ํ•œ ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์€ ํ•ต์‹ฌ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ–‰ํ•ด์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๋กœ๊น…, ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋“ฑ์„ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค. AOP์—์„œ ๊ฐ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋กœ์ง์„ ๋ชจ๋“ˆํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๋“ค์„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ชจ๋“ˆํ™”ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์ด๋•Œ, ์†Œ์Šค ์ฝ”๋“œ์ƒ์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ์“ฐ๋Š” ์ฝ”๋“œ๋“ค์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ ์ด๊ฒƒ์„ ํฉ์–ด์ง„ ๊ด€์‹ฌ์‚ฌ (Crosscut..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [1]

1. Java ์ž๋ฐ”์˜ ํŠน์ง• - ์ž๋ฐ”๊ฐ€์ƒ๋จธ์‹ (JVM)๋งŒ ์„ค์น˜ํ•˜๋ฉด ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. - ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ํŠน์ง•์ธ ์ƒ์†, ์บก์Šํ™”, ๋‹คํ˜•์„ฑ์ด ์ ์šฉ๋œ ์–ธ์–ด - Garbage Collector๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ง์ ‘ ํ•˜์ง€ ์•Š์•„๋„ ๋จ - ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ(Multi Thread)๋ฅผ ์ง€์› 2. OOP (Object Oriented Programming - ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜์˜ํ•œ ๊ฒƒ์ด๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” C์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ๊ฐ์ฒด์™€ ๊ฐ์ฒด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•œ๋‹ค. OOP์˜ ํŠน์ง• - ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์Œ - ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์šฉ์ด - ์ง๊ด€์ ์ธ ์ฝ”๋“œ๋ถ„์„ - ๊ฐœ๋ฐœ์†๋„ ํ–ฅ์ƒ - ์ƒ์†์„ ํ†ตํ•ด ์žฅ์  ๊ทน๋Œ€ํ™” 3. Object (๊ฐ์ฒด) ob..

๐Ÿ“š [CS๋ฉด์ ‘] ์Šคํ”„๋ง/์Šคํ”„๋ง ๋ถ€ํŠธ๋ž€?

Spring Frame work ? Spring Java์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ - Java๋กœ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ‹€ Java๋ฅผ ์ด์šฉํ•œ Jsp, Mybatis, JPA ๋“ฑ ๊ธฐ์ˆ  ๋“ฑ์žฅ ํ”„๋ ˆ์ž„์›Œํฌ [ Framework ] ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์–ด๋– ํ•œ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ์†์ด์ž ๋„๊ตฌ์ด๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ํ•˜๋‚˜์˜ ๋ผˆ๋Œ€ ์—ญํ•  ์ž์ฃผ ์“ฐ์ผ ๋งŒํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ•œ๊ตฐ๋ฐ ๋ชจ์•„ ๋†“์€ ์œ ํ‹ธ(ํด๋ž˜์Šค)๋“ค์˜ ๋ชจ์Œ ๋ฌด์–ธ๊ฐ€ ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒƒ ๊ฐ™์€ ๊ฐœ๋… ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„๋‚˜ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•Œ์•„์„œ(์˜์กด์„ฑ ์ฃผ์ž…) ํ• ํ…Œ๋‹ˆ ๊ฐœ๋ฐœ์ž๋Š” ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰์— ์ง‘์ค‘ ๊ฐ€๋Šฅ Spring Frame work์˜ ํŠน์ง• IoC(Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „) ๊ฐœ๋ฐœ์ž๋Š”..

๐ŸŸข [Spring] @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž…

๐Ÿšฉ @RequiredArgsConstructor ์ƒ์„ฑ์ž ์ฃผ์ž… ์•ž์„œ ์˜์กด์„ฑ ์ฃผ์ž…์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ํ–ˆ์—ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉ์„ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ด์ „์— ์„ค๋ช…์„ ํ–ˆ๋‹ค. ๊ทธ ๋•Œ ์„ค๋ช…ํ•  ๋‹น์‹œ์—๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“  ์ƒ์„ฑ์ž์— ์ถ”๊ฐ€๋ฅผ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋‚˜ Lombok์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. https://dev-wnstjd.tistory.com/447 ๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [1] ๐Ÿšฉ ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ [ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€โ“] Spring ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋‹ค ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋‹ค. DI๋Š” ์™ธ๋ถ€์—์„œ ..

๐ŸŸข [Spring] Eclipse ์Šคํ”„๋ง(Spring) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„ ์›Œํฌ ์Šคํ”„๋ง์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฉด์ด ์žˆ๋‹ค. ์„ค์ • ํŒŒ์ผ๋„ ๋งŽ๊ณ  ์ž๋ฐ” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์„ค์ •ํ•ด์ค˜์•ผํ•˜๊ณ  ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ธฐ์—๋Š” ์–ด๋ ต์ง€๋งŒ ๊ทธ๋งŒํผ ๋งŽ์ด ์“ฐ์ด๊ณ  ์•„์ง๊นŒ์ง€ ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ๋Š” ์ž๋ฐ”๊ณตํ™”๊ตญ์ด๋ผ๋Š” ๋ง์ด ์žˆ์–ด ๊ผญ ๋ฐฐ์›Œ์•ผ ํ•  ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Eclipse๋ฅผ ํ†ตํ•ด ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์•ž์„œ ๋งํ•œ ์ž๋ฐ” ์„ค์ •์€ ๋‹ค ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์„ค๋ช…์„ ์ง„ํ–‰ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. ๐Ÿšฉ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ผ๋‹จ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด Eclipse๋ฅผ ์ผœ๊ณ  ์™ผ์ชฝ ๋งจ ์œ„์— ์žˆ๋Š” File -> New -> Spring Legacy Project ๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Project name์— ์ž์‹ ์ด ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค. ์•„๋ž˜์˜ Templates์—์„œ๋Š” Spring ..

๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [2]

๐Ÿšฉ ์ƒ์„ฑ์ž ์˜์กด์„ฑ ์ฃผ์ž… [ DI ] ์„ ์จ์•ผํ•˜๋Š” ์ด์œ  ์ €๋ฒˆ ๊ธ€์—์„œ ์˜์กด์„ฑ ์ฃผ์ž…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์˜€๋‹ค. ํ•„๋“œ ์ฃผ์ž…, ์ˆ˜์ •์ž ์ฃผ์ž…, ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์„ค๋ช…ํ•˜์˜€๋Š”๋ฐ ์ด ์ค‘ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์จ์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋‹ค. ์ƒ์„ฑ์ž ์ฃผ์ž…(Constructor Injection)์€ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์˜์กด ๊ด€๊ณ„๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. @Controller public class ControllerTest{ IServiceTest service; @Autowired public Controller(IServiceTest service){ this.service = service; } ์™œ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ? ์ƒ์„ฑ์ž ์ฃผ์ž…์€ ์ƒ์„ฑ์ž์˜ ํ˜ธ์ถœ ์‹œ์ ์— 1ํšŒ ํ˜ธ์ถœ ๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฃผ์ž…๋ฐ›์€ ๊ฐ์ฒด๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด..

๐ŸŸข [Spring] ์Šคํ”„๋ง ์˜์กด์„ฑ ์ฃผ์ž…(DI) - [1]

๐Ÿšฉ ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ [ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€โ“] Spring ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋‹ค. DI๋Š” ์™ธ๋ถ€์—์„œ ๋‘ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์ด์— ๋‘ฌ์„œ ๊ธ€๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ๋Š” ์˜์กด๊ด€๊ณ„๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ์‹œ์— ๊ด€๊ณ„๋ฅผ ๋™์ ์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ ์œ ์—ฐ์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. public class testController{ private testService service; } ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด testController ๊ฐ์ฒด๊ฐ€ testService ๊ฐ์ฒด์— ์˜์กด์„ฑ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ๋Š” ๊ฒƒ์„ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ผ๊ณ  ํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ฃผ์ž…..