์Šคํ”„๋ง 7

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

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

๐Ÿ“š [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 ๊ฐ์ฒด์— ์˜์กด์„ฑ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ๋Š” ๊ฒƒ์„ ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ผ๊ณ  ํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ฃผ์ž…..

๐ŸŸข [Spring] ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ (XML)

๐Ÿ“Œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์„ค์ • ํŒŒ์ผ ๊ด€๋ฆฌ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ์Šคํ”„๋ง์€ ์„ค์ • ํŒŒ์ผ์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด ์–ด๋ ค์šด ํŽธ์ด๋‹ค. Node.js ๋กœ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ดค๋˜ ๋‚˜๋กœ์จ๋Š” ๊ฝค ํž˜๋“  ์ž‘์—…๋“ค์ด์—ˆ๋‹ค. XML ํŒŒ์ผ๋“ค๋„ ์ฒ˜์Œ์ด์—ˆ๊ณ  JSP ์‚ฌ์šฉ๋„ ์ฒ˜์Œ์ด์–ด์„œ ๊ฝค๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜์˜€๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์„ค์ • ํŒŒ์ผ์„ web.xml / servlet-context.xml / pom.xml / application-config.xml ํŒŒ์ผ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜๋Š” ๋”ฐ๋กœ config ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— application-config.xml ์€ root-context.xml ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์ด ๋‚ด์šฉ์€ ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•œ๋‹ค. 1. Web.xml contextConfigLocation classpath:appl..