[Spring ๊ธฐ๋ณธ] 5. ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ์—๋Š” ์‹ฑ๊ธ€ํ†ค์— ๊ด€๋ จํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์Šต๋‹ˆ๋‹ค!๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๊ณ ๊ณ !!1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‹ฑ๊ธ€ํ†ค์Šคํ”„๋ง์€ ํƒœ์ƒ์ด ๊ธฐ์—…์šฉ ์˜จ๋ผ์ธ ์„œ๋น„์Šค ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๋Œ€๋ถ€๋ถ„์˜ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.๋ชฐ๋ก  ์›น์ด ์•„๋‹Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๋„ ์–ผ๋งˆ๋“ ์ง€ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ณ ๊ฐ์ด ๋™์‹œ์— ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.1. ํด๋ผ์ด์–ธํŠธ A, B, C๊ฐ€ memberService๋ฅผ ์Šคํ”„๋งํ•œํ…Œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.2. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ DI ์ปจํ…Œ์ด๋„ˆ(AppConfig)๋Š” new๋กœ memberService๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.=>A๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , B๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , C๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ ..3. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ๊ณ ๊ฐ์ด..
[Spring ๊ธฐ๋ณธ] 4. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ์Šคํ”„๋ง ๋นˆ๐Ÿซ›
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด๊ฐ€๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.๊ณ ๊ณ ์”ฝ!!1. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๋จผ์ € ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.//์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);์ €๋ฒˆ ์„น์…˜ ๋งˆ์ง€๋ง‰ ์ฏ”์Œ์— ๋‚˜์™”๋˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.new๋กœ ํ•ด์„œ AnnotationConfigApplicationContext ์ด๋ฆ„๋„ ๊ธด ์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ AppConfig๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ(๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ๋„˜๊ฒผ์Šต๋‹ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ApplicationContext๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด ApplicationContext๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.๋‹ค..
[Spring ๊ธฐ๋ณธ] 3. ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ์ดํ•ด2- ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ ์ ์šฉ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ €๋ฒˆ ์„น์…˜์—์„œ ํ•˜๋˜ ๊ฒƒ์„ ์ด์–ด ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ…(์ •๋ฅ  ํ• ์ธ ์ •์ฑ…)์„ ๊ฐœ๋ฐœํ•ด๋ณด๊ณ  ์Šคํ”„๋ง์œผ๋กœ ์ „ํ™˜์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!๊ณ ๊ณ !!1. ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ… ๊ฐœ๋ฐœ - ์ •๋ฅ  ํ• ์ธ ์ •์ฑ…(RateDiscountPolicy)์ €๋ฒˆ ์„น์…˜์—์„œ ํ–ˆ๋˜ ๊ฒƒ๋“ค์— ์ด์–ด ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ…์„ ํ™•์žฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•…๋• ๊ธฐํš์ž: ์„œ๋น„์Šค ์˜คํ”ˆ ์ง์ „์— ํ• ์ธ ์ •์ฑ…์„ ์ง€๊ธˆ์ฒ˜๋Ÿผ ๊ณ ์ • ๊ธˆ์•ก ํ• ์ธ์ด ์•„๋‹ˆ๋ผ ์ข€ ๋” ํ•ฉ๋ฆฌ์ ์ธ ์ฃผ๋ฌธ ๊ธˆ์•ก ๋‹น ํ• ์ธํ•˜๋Š” ์ •๋ฅ (%) ํ• ์ธ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๊ธฐ์กด ์ •์ฑ…์€ VIP๊ฐ€ 10,000์›์„ ์ฃผ๋ฌธํ•˜๋“  20,000์›์„ ์ฃผ๋ฌธํ•˜๋“  ํ•ญ์ƒ 1,000์›์„ ํ• ์ธํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ์ƒˆ๋กœ ๋‚˜์˜จ ์ •์ฑ…์€ 10%๋กœ ์ง€์ •ํ•ด๋‘๋ฉด ๊ณ ๊ฐ์ด 10,000์› ์ฃผ๋ฌธ ์‹œ 1,000์›์„ ํ• ์ธํ•ด์ฃผ๊ณ , 20,000์› ์ฃผ๋ฌธ ์‹œ 2,000์›์„ ํ• ์ธํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค...
[Spring ๊ธฐ๋ณธ] 2. ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ์ดํ•ด1 - ์˜ˆ์ œ ๋งŒ๋“ค๊ธฐ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ ์„น์…˜๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฝ”๋“œ ์œ„์ฃผ๋กœ ์ž‘์„ฑํ•ด๋ณผ๊ฑฐ ๊ฐ™์•„์š”!๊ทธ๋Ÿผ ๊ณ ๊ณ !!1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์šฐ์„  ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž๋ฐ”๋กœ๋งŒ ๊ตฌํ˜„์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ• ๊นŒ์š”?์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.Java17๊ณผ IDE: IntelliJ๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์Šคํ”„๋ง ๋ถ€ํŠธ ์Šคํƒ€ํ„ฐ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ด์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://start.spring.io์œ„์˜ ๋งํฌ๊ฐ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ์Šคํƒ€ํ„ฐ ์‚ฌ์ดํŠธ ์ž…๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๋ณด๋ฉด..์ด๋Ÿฐ์‹์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.์—ฌ๊ธฐ์—์„œ Project๋Š” Gradle - Groovy, Language๋Š” Java, Spring Boot๋Š” 3.4.4๋กœ ํ•ด๋ณผ๊ฒŒ์š”.SNAPSHOT๊ณผ M2๋Š” ์•„์ง ๋ถˆ์•ˆ์ •ํ•˜๋‹ค๊ณ  ..