์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
BEST

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ 

์ด๋ฒˆ ๊ฐ•์ขŒ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค ๋”ฐ๋ผ์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ๋˜๋Š” ํ•™์ƒ์—๊ฒŒ ์œ ์šฉํ•œ ์Šคํ”„๋ง ๊ฐ•์ขŒ์ž…๋‹ˆ๋‹ค.

Thumbnail

์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์›น ๊ฐœ๋ฐœ, ๋ฐฑ์—”๋“œ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • IoC ์ปจํ…Œ์ด๋„ˆ์™€ ๋นˆ

  • Resource / Validation

  • ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ

  • SpEL

  • ์Šคํ”„๋ง AOP

  • Null-Safety

์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ํ•ต์‹ฌ API
๋ฐฑ๊ธฐ์„ ์˜ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ 

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ 

์ด ๊ฐ•์˜์—์„œ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ๊ณผ ์–ด๋–ป๊ฒŒ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šฐ๋Š”
์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ 

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•๊ณผ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์€ ํฌ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
IoC ์ปจํ…Œ์ด๋„ˆ, AOP ๊ทธ๋ฆฌ๊ณ  ๋ช‡๋ช‡ ํ•ต์‹ฌ API๋Š” ์Šคํ”„๋ง์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ์ง€ํƒฑํ•˜๋Š” ๋””๋”ค๋Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•œ๋‹ค๋ฉด, ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” JDBC, ํ…Œ์ŠคํŠธ, MVC ๊ด€๋ จ ๊ธฐ๋Šฅ ๋ฟ ์•„๋‹ˆ๋ผ, ์Šคํ”„๋ง ๋ถ€ํŠธ์™€ ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋„ ๋น ๋ฅด๊ณ  ์ •ํ™•ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ์Šคํ”„๋ง IoC(Inversion of Control) ์ปจํ…Œ์ด๋„ˆ์™€ ๋นˆ, ์Šคํ”„๋ง AOP(Aspect Oriented Programming)์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” Resource, Validation, ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ๊ณผ ๊ฐ™์€ ์Šคํ”„๋ง์˜ ์—ฌ๋Ÿฌ ์ถ”์ƒ API์™€ Null ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


๊ฐ•์˜ ์†Œ๊ฐœ

์ด ๊ฐ•์˜์—์„œ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์ด์šฉํ•ด ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.  ๋”ฐ๋ผ์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ถ„์—๊ฒŒ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ
์ด๋Ÿฐ ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค

์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ์Šคํ”„๋ง์„ ์ฒ˜์Œ ์ ‘ํ•œ ๋ถ„

์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ฝ”๋”ฉ์œผ๋กœ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๋ถ„

IoC, AOP ๋“ฑ ์Šคํ”„๋ง ํ•ต์‹ฌ API๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„

์ด ๊ฐ•์˜๋Š”
์ด๋Ÿฐ ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค

  • IoC, AOP, PSA์™€ ๊ฐ™์€ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋นˆ์„ ์ •์˜ํ•˜๊ณ  ์˜์กด ๊ด€๊ณ„๋ฅผ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํ”„๋ง AOP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Aspect๋ฅผ ๋ชจ๋“ˆํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ ๋ฐ–์— ๋‹ค์–‘ํ•œ ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์—๋Š”
์ด๋Ÿฐ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค

์ด ๊ฐ•์˜๋Š” IoC, AOP, PSA์— ๋Œ€ํ•ด ๋“ค์–ด๋ดค์ง€๋งŒ ์‹ค์ œ๋กœ ์Šคํ”„๋ง์œผ๋กœ ์ฝ”๋”ฉ์„ ํ•ด๋ณธ ์  ์—†๊ฑฐ๋‚˜, ํ•ต์‹ฌ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ดํ•ด ์—†์ด MVC๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด์˜จ ๋ถ„๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๊ธฐ์ˆ ์˜ ์†Œ๊ฐœ์™€ ์ดํ•ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•  ๋ฟ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์‹ฌํ™” ํ•™์Šต์„ ์›ํ•˜์‹œ๋Š” ๋ถ„๋“ค๊ป˜๋Š” ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

๐Ÿ“ข ์ด ๊ฐ•์˜๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ˆ˜๊ฐ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

  • ์ด ๊ฐ•์˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ์ด ๊ฐ•์˜์—์„œ๋Š” JDK, ๋นŒ๋“œํˆด, IDE ์„ค์น˜์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด ๊ฐ•์˜๋Š” JDK 1.8๊ณผ 11, Maven, IntelliJ๋ฅผ ์‚ฌ์šฉํ•ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ด€ ๊ฐ•์˜

์Šคํ”„๋ง ๋ถ€ํŠธ ๊ฐœ๋…๊ณผ ํ™œ์šฉ

  • ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๊ธฐ ์œ„ํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ ๋„์›€๋ฉ๋‹ˆ๋‹ค.

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA

  • JPA(Java Persistence API)๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ์Šคํ”„๋ง์„ ์ฒ˜์Œ ์ ‘ํ•œ ๋ถ„

  • ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์ฝ”๋”ฉ์œผ๋กœ ์ตํžˆ๊ณ  ์‹ถ์€ ๋ถ„

  • IoC, AOP ๋“ฑ ์Šคํ”„๋ง ํ•ต์‹ฌ API๋ฅผ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜

  • JDK, ๋นŒ๋“œํˆด, IDE ์„ค์น˜

์•ˆ๋…•ํ•˜์„ธ์š”
๋ฐฑ๊ธฐ์„ ์ž…๋‹ˆ๋‹ค.

91,159

๋ช…

์ˆ˜๊ฐ•์ƒ

4,048

๊ฐœ

์ˆ˜๊ฐ•ํ‰

2,009

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

20

๊ฐœ

๊ฐ•์˜

๋„ค์ด๋ฒ„์™€ ์•„๋งˆ์กด์„ ๊ฑฐ์ณ ํ˜„์žฌ Microsoft์—์„œ ์‹œ๋‹ˆ์–ด ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋กœ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ธ์Šˆํƒ€์ธ์€ "๊ต์œก์ด๋ž€ ์‚ฌ์‹ค์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ํž˜์„ ๊ธฐ๋ฅด๋Š” ๊ฒƒ์ด๋‹ค."๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋„ ๊ทธ ๋ง์— ๊นŠ์ด ๊ณต๊ฐํ•˜๋ฉฐ ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ํŠœ๋ธŒ:
'๋ฐฑ๊ธฐ์„ ' ์ฑ„๋„์—์„œ ๊ฐœ๋ฐœ์ž ๊ณ ๋ฏผ ์ƒ๋‹ด ๋ฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์œ ์šฉํ•œ ์ง€์‹ ๊ณต์œ 
๋ฒˆ์—ญ: ์Šคํ”„๋ง ๋ฐ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ ๊ด€๋ จ ์„œ์  ๋‹ค์ˆ˜ ๋ฒˆ์—ญ
์ €์ˆ : ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•˜๋Š” ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

23๊ฐœ โˆ™ (4์‹œ๊ฐ„ 53๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!