SlideShare a Scribd company logo
1 of 11
Spring Framework 2๋ถ€
์‚ฌ๋‚ด์„œ๋น„์Šค๊ฐœ๋ฐœ์„ผํ„ฐ
๊น€ํฅ๋ž˜
์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ
โ€ข ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ์กด์žฌํ•˜๋˜ ๊ด€๊ณ„ ์„ค์ • ์ฑ…์ž„์„
๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” ์–ด๋””๋กœ ๊ฐ€์•ผ ํ• ๊นŒ?
โ€ข ํ•˜๋˜์ผ1)
โ€“ ๊ด€์‹ฌ์‚ฌ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ •์˜
โ€ข ํ•˜๋˜์ผ2)
โ€“ ์ƒ์„ฑ๋œ ๊ด€์‹ฌ์‚ฌ ๊ฐ์ฒด๋ฅผ ์ œ๊ณต
์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ
โ€ข ์ด๋Ÿฌํ•œ ์ผ์„ ์ „๋ฌธ์ ์œผ๋กœ ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ
ํŒฉํ† ๋ฆฌ(Factory)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
โ€“ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ชฝ๊ณผ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์˜ ์ฑ…์ž„๊ณผ ์—ญํ• ์„
๊น”๋”ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ
โ€“ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ์ œ๊ณต๋œ๋‹ค.
โ€ข Sample : code01
์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ
โ€ข Sample : code02
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์ดˆ๊ธฐ UserDao ์ƒํƒœ
โ€“ UserDao ๊ฐ์ฒด๋ฅผ main() ๋ฉ”์†Œ๋“œ์—์„œ ์ง์ ‘ ์ƒ์„ฑ
โ€“ ์‚ฌ์šฉํ•  ์ปค๋„ฅ์…˜ ์ •์ฑ…๋„ UserDao ์ฝ”๋“œ์†์— ์กด์žฌ
โ€“ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ  ํ•„์š”ํ•œ ์‹œ์ ์— ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉ
โ€ข ์ดˆ๊ธฐ UserDao ์ œ์–ด๊ถŒ์˜ ์œ„์น˜
โ€“ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ž์‹ ์ด ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๋ฅผ ๋ฏธ๋ฆฌ ์ฝ”๋“œ๋กœ ๊ฒฐ์ •ํ•ด๋‘”
์ƒํƒœ
โ€“ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๋ฅผ ์–ธ์ œ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€์— ๋Œ€ํ•œ ์ •์ฑ…๋„ ์ด๋ฏธ ๊ฒฐ์ •
๋จ (Runtime์— ์„ ํƒ ๋ถˆ๊ฐ€)
โ€“ ๋ชจ๋“  ๋กœ์ง์„ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์—์„œ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์ œ์–ด๊ถŒ ์ด์ „์„ ํ†ตํ•œ ์ œ์–ด๊ด€๊ณ„ ์—ญ์ „
โ€“ ์ œ์–ด์˜ ์—ญ์ „(Inversion of Control)์ด๋ž€ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ
์˜ ์ œ์–ด ํ๋ฆ„ ๊ตฌ์กฐ๊ฐ€ ๋’ค๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด๋‹ค.
โ€“ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ž์‹ ์ด ์‚ฌ์šฉํ•  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์Šค์Šค๋กœ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€“ ์ž์‹  ๋˜ํ•œ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ณ  ์–ด๋””์„œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค.
โ€“ ๋ชจ๋“  ์ œ์–ด ๊ถŒํ•œ์„ ์ž์‹ ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋Œ€์ƒ์—๊ฒŒ ์œ„์ž„ํ•œ๋‹ค.
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์‚ฌ์šฉ์˜ˆ
โ€“ Servlet ์ปจํ…Œ์ด๋„ˆ
โ€ข Servlet Life-Cycle
โ€“ Template Method ํŒจํ„ด
โ€ข Abstract Method ๊ตฌํ˜„
โ€“ ํ”„๋ ˆ์ž„์›Œํฌ
โ€ข ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„ ์ œ์–ด (IoC)
โ€ข ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์งœ๋†“์€ ํ‹€์—์„œ ์ˆ˜๋™์ ์œผ
๋กœ ๋™์ž‘ํ•œ๋‹ค.
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ๋ฅผ ๋„์ž…ํ•œ UserDao
โ€“ ๊ด€์‹ฌ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์ฑ…์ž„์„ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ IoC๊ฐ€ ์ 
์šฉ๋˜์—ˆ๋‹ค.
โ€“ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด๋„ IoC๋ฅผ ์ ์šฉํ•œ ์…ˆ์ด๋‹ค.
โ€“ IoC๋Š” ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํญ๋„“๊ฒŒ
์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ์ˆ ์˜ ํ†ต์นญ์ด๋‹ค.
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ
โ€“ ๋Œ€ํ‘œ์ ์ธ IoC ์ปจํ…Œ์ด๋„ˆ
โ€“ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ๊ณผ ๊ด€๊ณ„ ์„ค์ •, ์‚ฌ์šฉ, ์ƒ
๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๋“ฑ์„ ์ „๋ฌธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œ
ํฌ์ด๋‹ค.
โ€“ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  DaoFactory๋„ Simpleํ•œ IoC๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€
๋งŒ IoC ๊ธฐ๋Šฅ์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์Šค
ํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ™์€ ์ „๋ฌธ์ ์ธ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉ
ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
์ œ์–ด์˜ ์—ญ์ „ (IoC)
โ€ข ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ
โ€“ ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ๋ชจ๋“ˆ์„ ์Šคํ”„๋ง
์—์„œ๋Š” BeanFactory (ApplicationContext)๋ผ๊ณ 
ํ•œ๋‹ค.
โ€ข Sample : code03

More Related Content

Similar to Spring di chapter2

[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ [์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
iFunFactory Inc.
ย 
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
NAVER D2
ย 
HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2
SeungHyun Hwang
ย 
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
ukjinkwoun
ย 

Similar to Spring di chapter2 (20)

Spring Framework - Inversion of Control Container
Spring Framework - Inversion of Control ContainerSpring Framework - Inversion of Control Container
Spring Framework - Inversion of Control Container
ย 
Desing Pattern-2
Desing Pattern-2Desing Pattern-2
Desing Pattern-2
ย 
[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ [์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
[์•„์ดํŽ€ํŒฉํ† ๋ฆฌ] 2018 ๋ฐ๋ธŒ๋ฐ์ด ์„œ๋ฒ„์œ„๋”์Šค _02 ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ORM ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๊ณต์œ 
ย 
๋ฉ”์ด๋ธ ๊ธฐ๋ณธ ์ดํ•ด
๋ฉ”์ด๋ธ ๊ธฐ๋ณธ ์ดํ•ด๋ฉ”์ด๋ธ ๊ธฐ๋ณธ ์ดํ•ด
๋ฉ”์ด๋ธ ๊ธฐ๋ณธ ์ดํ•ด
ย 
Java scriptแ„‹แ…ด แ„‹แ…ตแ„’แ…ข
Java scriptแ„‹แ…ด แ„‹แ…ตแ„’แ…ขJava scriptแ„‹แ…ด แ„‹แ…ตแ„’แ…ข
Java scriptแ„‹แ…ด แ„‹แ…ตแ„’แ…ข
ย 
LLVM ARC
LLVM ARCLLVM ARC
LLVM ARC
ย 
[MeetUp][3rd] Prometheus ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”
[MeetUp][3rd] Prometheus ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”[MeetUp][3rd] Prometheus ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”
[MeetUp][3rd] Prometheus ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”
ย 
๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” 15๊ฐ€์ง€ ๊ธฐ์ˆ 
๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” 15๊ฐ€์ง€ ๊ธฐ์ˆ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” 15๊ฐ€์ง€ ๊ธฐ์ˆ 
๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” 15๊ฐ€์ง€ ๊ธฐ์ˆ 
ย 
Design patterns
Design patternsDesign patterns
Design patterns
ย 
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
ย 
ํ† ๋น„์˜ ์Šคํ”„๋ง - DI
ํ† ๋น„์˜ ์Šคํ”„๋ง - DIํ† ๋น„์˜ ์Šคํ”„๋ง - DI
ํ† ๋น„์˜ ์Šคํ”„๋ง - DI
ย 
Node.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธNode.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธ
ย 
[Dev rookie]designpattern
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern
ย 
HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2
ย 
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ
ย 
Uml ์„ธ๋ฏธ๋‚˜
Uml ์„ธ๋ฏธ๋‚˜Uml ์„ธ๋ฏธ๋‚˜
Uml ์„ธ๋ฏธ๋‚˜
ย 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
ย 
Design Pattern 3
Design Pattern 3Design Pattern 3
Design Pattern 3
ย 
์•ผ, ๋„ˆ๋‘ ์งค์ˆ˜์žˆ์–ด - IaC Basic(210131 ๊น€์„ฑ์ต)
์•ผ, ๋„ˆ๋‘ ์งค์ˆ˜์žˆ์–ด - IaC Basic(210131 ๊น€์„ฑ์ต)์•ผ, ๋„ˆ๋‘ ์งค์ˆ˜์žˆ์–ด - IaC Basic(210131 ๊น€์„ฑ์ต)
์•ผ, ๋„ˆ๋‘ ์งค์ˆ˜์žˆ์–ด - IaC Basic(210131 ๊น€์„ฑ์ต)
ย 
1. แ„†แ…ตแ„แ…ตแ„‹แ…ฅแ„‹แ…ด แ„‘แ…ฉแ†ฏแ„ƒแ…ฅแ„€แ…ฎแ„Œแ…ฉ
1. แ„†แ…ตแ„แ…ตแ„‹แ…ฅแ„‹แ…ด แ„‘แ…ฉแ†ฏแ„ƒแ…ฅแ„€แ…ฎแ„Œแ…ฉ1. แ„†แ…ตแ„แ…ตแ„‹แ…ฅแ„‹แ…ด แ„‘แ…ฉแ†ฏแ„ƒแ…ฅแ„€แ…ฎแ„Œแ…ฉ
1. แ„†แ…ตแ„แ…ตแ„‹แ…ฅแ„‹แ…ด แ„‘แ…ฉแ†ฏแ„ƒแ…ฅแ„€แ…ฎแ„Œแ…ฉ
ย 

More from ํฅ๋ž˜ ๊น€

ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ํฅ๋ž˜ ๊น€
ย 
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
ํฅ๋ž˜ ๊น€
ย 

More from ํฅ๋ž˜ ๊น€ (19)

์ƒ์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„ํ•˜๊ธฐ
์ƒ์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„ํ•˜๊ธฐ์ƒ์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„ํ•˜๊ธฐ
์ƒ์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„ํ•˜๊ธฐ
ย 
๊ฒ€์ƒ‰์—”์ง„๊ณผ DB Like ๊ฒ€์ƒ‰์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ 
๊ฒ€์ƒ‰์—”์ง„๊ณผ DB Like ๊ฒ€์ƒ‰์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ ๊ฒ€์ƒ‰์—”์ง„๊ณผ DB Like ๊ฒ€์ƒ‰์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ 
๊ฒ€์ƒ‰์—”์ง„๊ณผ DB Like ๊ฒ€์ƒ‰์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ 
ย 
Elasticsearch์™€ Python์„ ์ด์šฉํ•˜์—ฌ ๋งจ๋•…์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
Elasticsearch์™€ Python์„ ์ด์šฉํ•˜์—ฌ ๋งจ๋•…์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐElasticsearch์™€ Python์„ ์ด์šฉํ•˜์—ฌ ๋งจ๋•…์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
Elasticsearch์™€ Python์„ ์ด์šฉํ•˜์—ฌ ๋งจ๋•…์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
ย 
ํ•œ๊ธ€ ์ž๋™์™„์„ฑ ๊ตฌํ˜„ํ•˜๊ธฐ
ํ•œ๊ธ€ ์ž๋™์™„์„ฑ ๊ตฌํ˜„ํ•˜๊ธฐํ•œ๊ธ€ ์ž๋™์™„์„ฑ ๊ตฌํ˜„ํ•˜๊ธฐ
ํ•œ๊ธ€ ์ž๋™์™„์„ฑ ๊ตฌํ˜„ํ•˜๊ธฐ
ย 
ํ•œ๊ธ€ ์ž๋ชจ ๋ถ„์„ ์›๋ฆฌ
ํ•œ๊ธ€ ์ž๋ชจ ๋ถ„์„ ์›๋ฆฌํ•œ๊ธ€ ์ž๋ชจ ๋ถ„์„ ์›๋ฆฌ
ํ•œ๊ธ€ ์ž๋ชจ ๋ถ„์„ ์›๋ฆฌ
ย 
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ย 
์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ˆ˜์‹ญ์–ต ๊ฑด์˜ ๋ฐ์ดํ„ฐ ์šด์˜ํ•˜๊ธฐ
์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ˆ˜์‹ญ์–ต ๊ฑด์˜ ๋ฐ์ดํ„ฐ ์šด์˜ํ•˜๊ธฐ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ˆ˜์‹ญ์–ต ๊ฑด์˜ ๋ฐ์ดํ„ฐ ์šด์˜ํ•˜๊ธฐ
์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ˆ˜์‹ญ์–ต ๊ฑด์˜ ๋ฐ์ดํ„ฐ ์šด์˜ํ•˜๊ธฐ
ย 
5๊ฐ• ์ฝ”๋“œํšจ์œจ์„ฑ
5๊ฐ• ์ฝ”๋“œํšจ์œจ์„ฑ5๊ฐ• ์ฝ”๋“œํšจ์œจ์„ฑ
5๊ฐ• ์ฝ”๋“œํšจ์œจ์„ฑ
ย 
3. stream api
3. stream api3. stream api
3. stream api
ย 
2. lambda expression
2. lambda expression2. lambda expression
2. lambda expression
ย 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8
ย 
Spring boot์™€ docker๋ฅผ ์ด์šฉํ•œ msa
Spring boot์™€ docker๋ฅผ ์ด์šฉํ•œ msaSpring boot์™€ docker๋ฅผ ์ด์šฉํ•œ msa
Spring boot์™€ docker๋ฅผ ์ด์šฉํ•œ msa
ย 
[์ œ14ํšŒ JCO ์ปจํผ๋Ÿฐ์Šค] ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„์ด์ค‘ํ™” by JAVACAFE
[์ œ14ํšŒ JCO ์ปจํผ๋Ÿฐ์Šค] ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„์ด์ค‘ํ™” by JAVACAFE  [์ œ14ํšŒ JCO ์ปจํผ๋Ÿฐ์Šค] ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„์ด์ค‘ํ™” by JAVACAFE
[์ œ14ํšŒ JCO ์ปจํผ๋Ÿฐ์Šค] ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„์ด์ค‘ํ™” by JAVACAFE
ย 
[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy
ย 
Apache http component
Apache http componentApache http component
Apache http component
ย 
ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ํ”Œ๋žซํผ ํ†ตํ•ฉ์„ ์œ„ํ•œ Client Module ๊ฐœ๋ฐœ & ๋ฐฐํฌ
ย 
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
[JCO ์ปจํผ๋Ÿฐ์Šค] ์›น์‚ฌ์ดํŠธ Front-End ์„ฑ๋Šฅ ์ตœ์ ํ™”
ย 
Spring 3.1์—์„œ ehcache ํ™œ์šฉ ์ „๋žต
Spring 3.1์—์„œ ehcache ํ™œ์šฉ ์ „๋žตSpring 3.1์—์„œ ehcache ํ™œ์šฉ ์ „๋žต
Spring 3.1์—์„œ ehcache ํ™œ์šฉ ์ „๋žต
ย 
[2012 ์ž๋ฐ”์นดํŽ˜ OPEN ์„ธ๋ฏธ๋‚˜] Introduction to google guava
[2012 ์ž๋ฐ”์นดํŽ˜ OPEN ์„ธ๋ฏธ๋‚˜] Introduction to google guava[2012 ์ž๋ฐ”์นดํŽ˜ OPEN ์„ธ๋ฏธ๋‚˜] Introduction to google guava
[2012 ์ž๋ฐ”์นดํŽ˜ OPEN ์„ธ๋ฏธ๋‚˜] Introduction to google guava
ย 

Spring di chapter2

  • 2. ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ โ€ข ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ์กด์žฌํ•˜๋˜ ๊ด€๊ณ„ ์„ค์ • ์ฑ…์ž„์„ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” ์–ด๋””๋กœ ๊ฐ€์•ผ ํ• ๊นŒ? โ€ข ํ•˜๋˜์ผ1) โ€“ ๊ด€์‹ฌ์‚ฌ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ •์˜ โ€ข ํ•˜๋˜์ผ2) โ€“ ์ƒ์„ฑ๋œ ๊ด€์‹ฌ์‚ฌ ๊ฐ์ฒด๋ฅผ ์ œ๊ณต
  • 3. ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ โ€ข ์ด๋Ÿฌํ•œ ์ผ์„ ์ „๋ฌธ์ ์œผ๋กœ ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํŒฉํ† ๋ฆฌ(Factory)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. โ€“ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ชฝ๊ณผ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์˜ ์ฑ…์ž„๊ณผ ์—ญํ• ์„ ๊น”๋”ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ โ€“ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ์ œ๊ณต๋œ๋‹ค. โ€ข Sample : code01
  • 5. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์ดˆ๊ธฐ UserDao ์ƒํƒœ โ€“ UserDao ๊ฐ์ฒด๋ฅผ main() ๋ฉ”์†Œ๋“œ์—์„œ ์ง์ ‘ ์ƒ์„ฑ โ€“ ์‚ฌ์šฉํ•  ์ปค๋„ฅ์…˜ ์ •์ฑ…๋„ UserDao ์ฝ”๋“œ์†์— ์กด์žฌ โ€“ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ  ํ•„์š”ํ•œ ์‹œ์ ์— ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉ โ€ข ์ดˆ๊ธฐ UserDao ์ œ์–ด๊ถŒ์˜ ์œ„์น˜ โ€“ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ž์‹ ์ด ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๋ฅผ ๋ฏธ๋ฆฌ ์ฝ”๋“œ๋กœ ๊ฒฐ์ •ํ•ด๋‘” ์ƒํƒœ โ€“ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๋ฅผ ์–ธ์ œ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€์— ๋Œ€ํ•œ ์ •์ฑ…๋„ ์ด๋ฏธ ๊ฒฐ์ • ๋จ (Runtime์— ์„ ํƒ ๋ถˆ๊ฐ€) โ€“ ๋ชจ๋“  ๋กœ์ง์„ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์—์„œ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ
  • 6. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์ œ์–ด๊ถŒ ์ด์ „์„ ํ†ตํ•œ ์ œ์–ด๊ด€๊ณ„ ์—ญ์ „ โ€“ ์ œ์–ด์˜ ์—ญ์ „(Inversion of Control)์ด๋ž€ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ ์˜ ์ œ์–ด ํ๋ฆ„ ๊ตฌ์กฐ๊ฐ€ ๋’ค๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด๋‹ค. โ€“ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ž์‹ ์ด ์‚ฌ์šฉํ•  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์Šค์Šค๋กœ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค. โ€“ ์ž์‹  ๋˜ํ•œ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ณ  ์–ด๋””์„œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค. โ€“ ๋ชจ๋“  ์ œ์–ด ๊ถŒํ•œ์„ ์ž์‹ ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋Œ€์ƒ์—๊ฒŒ ์œ„์ž„ํ•œ๋‹ค.
  • 7. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์‚ฌ์šฉ์˜ˆ โ€“ Servlet ์ปจํ…Œ์ด๋„ˆ โ€ข Servlet Life-Cycle โ€“ Template Method ํŒจํ„ด โ€ข Abstract Method ๊ตฌํ˜„ โ€“ ํ”„๋ ˆ์ž„์›Œํฌ โ€ข ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„ ์ œ์–ด (IoC) โ€ข ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์งœ๋†“์€ ํ‹€์—์„œ ์ˆ˜๋™์ ์œผ ๋กœ ๋™์ž‘ํ•œ๋‹ค.
  • 8. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ
  • 9. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ๋ฅผ ๋„์ž…ํ•œ UserDao โ€“ ๊ด€์‹ฌ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์ฑ…์ž„์„ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ IoC๊ฐ€ ์  ์šฉ๋˜์—ˆ๋‹ค. โ€“ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด๋„ IoC๋ฅผ ์ ์šฉํ•œ ์…ˆ์ด๋‹ค. โ€“ IoC๋Š” ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํญ๋„“๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ์ˆ ์˜ ํ†ต์นญ์ด๋‹ค.
  • 10. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ โ€“ ๋Œ€ํ‘œ์ ์ธ IoC ์ปจํ…Œ์ด๋„ˆ โ€“ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ๊ณผ ๊ด€๊ณ„ ์„ค์ •, ์‚ฌ์šฉ, ์ƒ ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๋“ฑ์„ ์ „๋ฌธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œ ํฌ์ด๋‹ค. โ€“ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  DaoFactory๋„ Simpleํ•œ IoC๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€ ๋งŒ IoC ๊ธฐ๋Šฅ์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์Šค ํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ™์€ ์ „๋ฌธ์ ์ธ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • 11. ์ œ์–ด์˜ ์—ญ์ „ (IoC) โ€ข ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ โ€“ ์˜ค๋ธŒ์ ํŠธ ํŒฉํ† ๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ๋ชจ๋“ˆ์„ ์Šคํ”„๋ง ์—์„œ๋Š” BeanFactory (ApplicationContext)๋ผ๊ณ  ํ•œ๋‹ค. โ€ข Sample : code03