๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊น€์˜ํ•œ์Šคํ”„๋ง๊ธฐ๋ณธํŽธ9

[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 10. ๋นˆ ์Šค์ฝ”ํ”„ 8์›” ์ „์— ๋‹ค ๋๋‚ด๊ธฐ๋กœ ํ•œ ๊ณ„ํš,,,! ๊ฐ•์˜๋Š” ๋ชจ๋‘ ๋“ค์—ˆ์ง€๋งŒ ์™œ์ธ์ง€ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ์€ ๋ฏธ๋ค„์กŒ๋‹ค. ๊ทธ๋ž˜๋„ ์˜์ƒ ๋‹ค ๋“ค์€๊ฒŒ ์–ด๋””๋ƒ๋ฉฐ ์•ฝ๊ฐ„์˜ ์œ„๋กœ์™€ ํ•จ๊ป˜ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ์„ ํ•ด๋ณด๋ คํ•œ๋‹ค. ์ฝ”๋กœ๋‚˜๋กœ ์ธํ•ด ์ฒด๋ ฅ์ด ๋ฐ•์‚ด๋‚œ๊ฑด์ง€, ๊ทธ๋ƒฅ ์ด๋ฏธ ๋ฐ•์‚ด๋‚œ๊ฑธ ๋‚ด๊ฐ€ ๋ชฐ๋ž๋˜ ๊ฑด์ง€ ์•Œ ์ˆ˜ ์—†์ง€๋งŒ ์œ„๊ฒฝ๋ จ ํ„ฐ์ง€๋ฉฐ ๊ธธ๋ฐ”๋‹ฅ์— ์ฃผ์ €์•‰๋Š” ์ธ์ƒ์ด์–ด๋„ ์˜ค๋Š˜๋„ ํ™”์ดํŒ…!! ๋ชจ๋‘๋“ค ํ™”์ดํŒ…! ๐Ÿงธ ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๋ ˆ์ธ ๊ผฌ์šฐ- ๐Ÿงธ • scopeใ„ด class : SingletonTest, SingletonWithPrototypeTest1, PrototypeTest • webใ„ด class : LogDemoController, LogDemoService• commonใ„ด class : MyLogger Q. ๋นˆ ์Šค์ฝ”ํ”„๋ž€?A. ๋นˆ์ด ์‚ฌ์šฉ๋˜์–ด์ง€๋Š” ๋ฒ”์œ„์ด๋‹ค. โœ”๏ธ .. 2024. 9. 22.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 9. ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ์ฝ”๋กœ๋‚˜ ํœด์œ ์ฆ์œผ๋กœ ๊ธฐ๋ ฅ์—†์Œ๊ณผ ์กฐ๊ธˆ๋งŒ ์›€์ง์—ฌ๋„ ์˜จ๋ชธ์ด ์•„ํ””์„ ๊ฒช๊ณ  ์žˆ์ง€๋งŒ, ์•‰์•„์„œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฑด ํฐ ๊ธฐ๋ ฅ์ด ๋“ค์ง€ ์•Š์•„ ์–ด์ฐŒ์ €์ฐŒ ํ•˜๊ณ  ์žˆ๋‹ค. ์˜ค๋Š˜์€ ๋…ธํŠธ๋ถ ์กด์ด ์žˆ๋Š” ์Šคํ„ฐ๋””์นดํŽ˜์—์„œ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋Š”๋ฐ ์•„์ฃผ ์พŒ์ ํ•˜๊ณ  ์ข‹๋‹ค. ์–ด๋А ํ•œ์ผ ์—” ๋ฒŒ๋ ˆ๊ฐ€ ์žˆ๋Š”์ง€ ์‚๋ฆฌ๋ฆญ- ํ•˜๊ณ  ์šธ์–ด ์ž์—ฐ์นœํ™”์ ์ธ ๋А๋‚Œ์ด ๋ฌผ์”ฌ๋‚œ๋‹ค. ํ”ผ๊ณค์— ์ฉ”์–ด ๋‹คํฌ์„œํด์ด ์ฝ”๊นŒ์ง€ ๋‚ด๋ ค์™”์ง€๋งŒ ์˜ค๋Š˜๋„ ํ™”์ดํŒ…!! ๐Ÿงธ   ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๋ ˆ์ธ ๊ผฌ์šฐ- ๐Ÿงธ • lifecycleใ„ด class : NetworkClient, beanLifeCycleTest  โœ”๏ธ  ๊ฒฐ๊ณผ๊ฐ’ null โ–บ  BeanLifeCycleTest@Configurationstatic class LifeCycleConfig { @Bean public NetworkClient netwo.. 2024. 8. 25.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 8. ์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž… ์ฝ”๋กœ๋‚˜์— ๊ฑธ๋ ค ์ผ์ฃผ์ผ์€ ๋ˆ„์›Œ์žˆ๋‹ค ์‚ด์•„๋‚ฌ๋‹ค. ๋จน๊ณ  ์ž๊ณ ๋งŒ ๋ฐ˜๋ณตํ•˜๋‹ˆ ๋‚˜ํƒœํ•จ์˜ ๋ํŒ์™•์ด ๋˜์–ด๋ฒ„๋ ธ๋Š”๋ฐ... ์ด๋ ‡๊ฒŒ ๋‹ค์‹œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ ค๋‹ˆ ๋ฐฐ๋กœ ํž˜๋“  ๊ฒƒ ๊ฐ™๋‹ค. 8์›”์—” ๊ผญ ๊ฐ•์˜๋ฅผ ๋‹ค ๋“ฃ๊ฒ ๋‹ค๊ณ  ๋‹ค์งํ–ˆ์—ˆ๋Š”๋ฐ,,, ์–ผ๋งˆ ๋‚จ์ง€ ์•Š์€ ์‹œ๊ฐ„ ๋‹ค๋ฅธ ๊ณต๋ถ€ ์ œ์ฒ˜๋‘๊ณ  8์›” ์•ˆ์— ๋๋‚ด๋ณผ๊นŒ ํ•œ๋‹ค. (๊ณผ์—ฐ ํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋‚˜?) ์•„๋ฌดํŠผ ๋ชจ๋‘๋“ค ํ™”์ดํŒ…!!!!๐Ÿงธ   ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๋ ˆ์ธ ๊ผฌ์šฐ- ๐Ÿงธ • orderใ„ด class : OrderServiceImpl • annotationใ„ด interface : MainDiscountPolicy • HelloLombok  • AllBeanTestใ„ด class : AllBeanTest • AutoWiredTestใ„ด class : AutoWiredTest โœ”๏ธ  OrderServiceImpl โ–บ  ์ƒ์„ฑ์ž ์ฃผ.. 2024. 8. 23.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 7. ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊นŒ์ง€ ์–ด์ฐŒ์ €์ฐŒ ์™”๋‹ค. ์‚ฌ์‹ค ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๋งŒ ์•„๋‹ˆ์—ˆ์–ด๋„ ๊ฐ•์˜๋Š” ํ•œ๋‹ฌ ์•ˆ์— ๋๋ƒˆ์„ ๋“ฏ... ๊ทธ๋ž˜๋„ ๋ธ”๋กœ๊ทธ ์ •๋ฆฌํ•˜๋ฉด์„œ ํ‰์†Œ ๊ทธ๋ƒฅ ๋„˜๊ฒผ์„ ์งˆ๋ฌธ๋“ค ๋ชฝ๋•… ์ฐพ์•„๋ณด๋Š” ์ค‘์ด๋‹ค. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ๊ทธ๋งŒํผ ๋‚ด ๋จธ๋ฆฌ์˜ ์ง€์‹๋„ ํ•˜๋‚˜ ๋‘˜ ์ฑ„์›Œ์ง€๊ณ  ์žˆ์Œ์„ ๋А๋‚€๋‹ค. (์‚ฌ์‹ค ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ค ํ˜„ํƒ€์™€์„œ ์ฃผ์ ˆ์ฃผ์ ˆ ์ ์–ด๋ณธ๋‹ค) ์ด๋ฒˆ ์„น์…˜ 6์€ ๊ฐ•์˜๊ฐ€ ์งง์•„์„œ ๋นจ๋ฆฌ ๋๋‚ ์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ธฐ๋Œ€๊ฐ์ด ์žˆ๋‹ค. ์šฐ๋ฆฌ์ง‘ ์—์–ด์ปจ ๊ณ ์žฅ๋‚˜์„œ ์•ˆ๋‚˜์˜ค์ง€๋งŒ,,,๐Ÿฅฒ ๋”์œ„ ์ด๊ฒจ๋‚ด๊ณ ! ๋ชจ๋‘๋“ค ํ™”์ดํŒ…!!!   ๐Ÿงธ  ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๋ ˆ์ธ ๊ผฌ์šฐ- ๐Ÿงธmainใ„ด class : AutoAppConfigtest - scanใ„ด class : AutoAppConfigTesttest - scan - filterใ„ด class : BeanA, BeanB, Compo.. 2024. 8. 11.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 6. MemorymemberRepository์˜ ์ธ์Šคํ„ด์Šค ๊ฒฐ๊ณผ ์˜ค๋ฅ˜_ Static์— ๋Œ€ํ•ด์„œ ๋งŒ์ผ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฐ•์˜์™€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜จ๋‹ค๋ฉด, AppConfig์˜ MemberRepository ์•ž์— static์ด ๋ถ™์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ผ!     Q. ์™œ static์„ ์“ฐ๋ฉด ์ธ์Šคํ„ด์Šค ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ํ• ๋‹น๋ ๊นŒ? A. static์„ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด spring์˜ bean ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ด€๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ํƒ€์ž…์˜ bean์ด ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋กœ ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค.     ๐Ÿ‘๏ธ‍๐Ÿ—จ๏ธ  static ์ด๋ž€? 1. ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. static ๋ฉค๋ฒ„๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ๋•Œ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๋ฉฐ, ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ณตํ†ต์˜ ์ž์›์ด ๋ฉ๋‹ˆ๋‹ค.3. ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ , ๊ฐ์ฒด ์ƒ์„ฑ .. 2024. 8. 4.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 6. ์‹ฑ๊ธ€ํ†ค์ปจํ…Œ์ด๋„ˆ ๊ณผ์—ฐ ์Šคํ”„๋ง์€ ์–ด๋–ค ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„๊นŒ? ์‹ค์ œ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋˜๋ฉด ๊ณ ๊ฐ์˜ ๋™์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ๋งค๋ฒˆ ๊ณ ๊ฐ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ค๊ณ  ๋น„ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์Šคํ”„๋ง์€ ์ด๋Ÿฐ ๊ฒฝ์šฐ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์œ ์ง€์‹œ์ผœ์ฃผ๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํšจ์œจ์ ์ด๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด ๋ฌด์—‡์ด๋ฉฐ ์Šคํ”„๋ง์ด ์–ด๋–ค ์‹์œผ๋กœ ์‹ฑ๊ธ€ํ†ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š”์ง€ ์•Œ์•„๋ณด์ž.   ๐Ÿงธ ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๐Ÿงธ singletonใ„ด class : SingletonService, SingletonTest, StatefulService, StatefulServiceTest, ConfigurationSingletonTest AppConfig  Q.  ์Šคํ”„๋ง์„ .. 2024. 8. 4.