[Spring Data JPA] JPA Entity ํด๋ž˜์Šค์— ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
ยท
๐ŸŒณSpring
JPA ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•œ ์ด์œ @PersistenceContextprivate EntityManager entityManager;public User getUser(Long userId) { User user = entityManager.find(User.class, userId); return user; // JPA๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฆฌํ”Œ๋ ‰์…˜์„ ํ†ตํ•ด ํ•„๋“œ ๊ฐ’์„ ์„ค์ •}ํ•ด๋‹น ๊ณผ์ •์„ ์‚ดํŽด ๋ณด๋ฉด entityManager.find ์ฆ‰, ์กฐํšŒ ๊ณผ์ •์—์„œ User.class ํƒ€์ž…์„ ์ธ์ž๋กœ ๋ฐ›๊ณ  ์žˆ๋‹ค.์ด User.class ์ด ํด๋ž˜์Šค ์ •๋ณด๋กœ ๋‚ด๋ถ€์— ์• ๋„ˆํ…Œ์ด์…˜์ด๋‚˜ ํ•„๋“œ ์ƒ์„ฑ์ž ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋ฆฌํ”Œ๋ ‰์…˜์„ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.๊ทธ๋Ÿฌ๋ฉด ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ• ..
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ์›๋ฆฌ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
(1) IoC ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญํ• ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •์˜ํ•œ ๊ฐ์ฒด๋“ค์„ Bean์œผ๋กœ IoC ์ปจํ…Œ์ด๋„ˆ์— ๋ณด๊ด€์„ ํ•ด๋‘๊ณ , ์Šคํ”„๋ง์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•  ๋•Œ Bean์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์˜์กด์„ฑ์„ ์ฃผ์ž…์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.( ํ•ด๋‹น ๋ถ€๋ถ„์€ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ ์ฆ‰, ์ดˆ๊ธฐํ™” ์‹œ์ ์— ๊ฐ์ฒด์— ๋Œ€ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด๋ค„์ง„๋‹ค. )์ฝ”๋“œ์ ์œผ๋กœ org.springframework.context.ApplicationContext๋Š” Spring IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ•ต์‹ฌ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. (2) IoC ์ปจํ…Œ์ด๋„ˆ์˜ Bean(๊ฐ์ฒด) ๊ด€๋ฆฌ ๊ณผ์ •IoC์ปจํ…Œ์ด๋„ˆ๊ฐ€ Bean์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์€ ํฌ๊ฒŒ 7๊ฐ€์ง€๊ฐ€ ์กด์žฌ ( ๋˜ํ•œ, ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ๊ณผ์ •์œผ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ) ( ํ•ด๋‹น ๊ณผ์ •์€ ์ดˆ๊ธฐํ™” ์‹œ์ ์ธ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ์ดˆ๊ธฐ..
[Spring MVC] ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ๋™์ž‘ ์›๋ฆฌ
ยท
๐ŸŒณSpring
๋ชฉ์ฐจ    โ—  1. ์›น ์„œ๋ฒ„ & ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„    โ—  2. ์Šคํ”„๋ง๋ถ€ํŠธ ํ™˜๊ฒฝ ๋‚ด์žฅ ์„œ๋ฒ„    โ—  1. ์›น ์„œ๋ฒ„๋ž€?1. ์›น ์„œ๋ฒ„ & ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์›น ์„œ๋ฒ„๋ž€?1. HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์•„์ฃผ๊ณ  ์ •์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.2. ์ •ํ™•ํžˆ๋Š”, ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ WAS์—์„œ ๋ฐ›์•„์„œ ํ•ด์„ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ž€?1. ์›น ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•ด์•ผ์ง€๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ด๋ฉฐ, ๋™์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ์„œ๋ฒ„์ด๋‹ค.2. ๋™์ ์ธ ์ปจํ…์ธ ๋กœ๋Š” DB์กฐํšŒ๋‚˜ ๋‹ค์–‘ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ ๋ฐ ๊ณ„์‚ฐ ๋“ฑ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์„œ ์›น ์„œ๋ฒ„๋กœ ์ „๋‹ฌ์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.2. ์Šคํ”„๋ง๋ถ€ํŠธ ํ™˜๊ฒฝ ๋‚ด์žฅ ์„œ๋ฒ„ ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ์›น ์„œ๋ฒ„ & ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ํ•ฉ์นœ ์„œ๋ฒ„๋ฅผ ๋‚ด..
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ & Bean ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
1. IoC Container ( ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ )์•ž์„œ ์‚ดํŽด๋ณธ IoC๋Š” "์ œ์–ด์˜ ์—ญ์ „", IoC Container์—๊ฒŒ ์ œ์–ด์˜ ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค๊ณ  ์„ค๋ช…์„ ํ–ˆ์—ˆ๋‹ค. IoC Container๋Š” ๊ฐ์ฒด๋ฅผ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด๋“ค์„ ๋ชจ๋‘ ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์–ด์„œ ๋ณด๊ด€์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” ๋‚ด๋ถ€์˜ ๊ฐ์ฒด๋“ค์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์ •์œผ๋กœ๋Š” ๋จผ์ € ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ์ธ์Šคํ„ด์Šคํ™” ๋˜๊ณ , ์ธ์Šคํ„ด์Šคํ™” ๋œ ๊ฐ์ฒด๋“ค์€ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ž๋™์œผ๋กœ ๋ฉ๋‹ˆ๋‹ค.์ด๋ ‡๋“ฏ, IoC Container๋Š” Bean(๊ฐ์ฒด) ๋“ค์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ž๋™์œผ๋กœ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. * IoC Container๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋“ค์€ ๋ชจ๋‘ Bean์ด๋‹ค. - IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๋ฐ”์˜ ๊ฐ์ฒด๋กœ์จ ์กด์žฌํ•œ๋‹ค.- ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด๋กœ๋Š” BeanFactory ์™€ ์ด๋ฅผ ํ™•์žฅํ•œ ์ธํ„ฐ..
[Spring Framework] IoC & DI ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
1. IoC (Inversion of Control)Inversion of Control์˜ ๋œป์€ "์ œ์–ด์˜ ์—ญ์ „"์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ œ์–ด๋Š”, ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฐพ๋Š” ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜ Spring Framework์˜ IoC ์ปจํ…Œ์ด๋„ˆ ์—๊ฒŒ ์ œ์–ด์˜ ๊ถŒํ•œ์„ ๋„˜๊น€์œผ๋กœ์จ, IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์•Œ์•„์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์•Œ์•„์„œ ์ฃผ์ž…์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.- ๊ฐ์ฒด์˜ ์ œ์–ด๋ฅผ ์™ธ๋ถ€์—์„œ ๋‹ด๋‹นํ•˜๊ฒŒ ํ•œ๋‹ค๋Š” ํญ ๋„“์€ ๊ฐœ๋…- IoC Container์—๊ฒŒ ์ œ์–ด ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค๋Š” ๊ฐœ๋… * IoC Container : Spring Framework๊ฐ€ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์ž๋™์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ "Bean"๋“ค์˜ ์ง‘ํ•ฉ๊ณผ "Bean"๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ณต๊ฐ„์ด๋‹ค.* Bean : Spring Framework๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋“ค์„ "..
[Spring Framework] Spring & Spring Framework ์ฐจ์ด
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
๊ฐœ์š”Spring๊ณผ Spring Framework ๋‹จ์–ด์— ๋Œ€ํ•ด ๋ช…ํ™•ํ•œ ์ฐจ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ Spring Framework๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•˜์—ฌ ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Œ. 1. Spring ์ด๋ž€?Spring์˜ ์ฒ˜์Œ์€ Spring Framework๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘์„ ํ–ˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ Spring Framework ๊ธฐ๋ฐ˜ ์œ„์— ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ถ”๊ฐ€ ๋˜๋ฉด์„œ Spring์€ Spring Framework ๋ฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์„ ๋‹ค ํฌ๊ด„ํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ๋˜์—ˆ๋‹ค.- Spring์€ Spring Framework ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ ํ”„๋กœ์ ํŠธ๋“ค์„ ์ผ์ปซ๋Š”๋‹ค.- Spring์€ ์˜คํ”ˆ์†Œ์Šค์ด๋ฉฐ, Spring ๋‚ด์˜ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๋˜ํ•œ ์˜คํ”ˆ์†Œ์Šค์ด๋‹ค. 2. Framework ๋ž€?- ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ..