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

์ „์ฒด ๊ธ€112

[Java] ๐Ÿง ๋ณ€์ˆ˜๋ž€? ๐Ÿชฝ"ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." โ–บ ๋ณ€์ˆ˜๋ณ€์ˆ˜๋ž€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์ด ๋ถ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค.๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์œ„์น˜์— ๋”ฐ๋ผ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋ฅผ ์ •ํ•œ๋‹ค. 1. ํด๋ž˜์Šค ๋ณ€์ˆ˜ (์ „์—ญ๋ณ€์ˆ˜) ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ํŠน์ง•์€ ํฌ๊ฒŒ ๋„ค๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.๋ณ€์ˆ˜ ํƒ€์ž… ์•ž์— static์„ ๋ถ™์ธ๋‹ค.ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•œ๋‹ค.๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ๊ฐ’์„ ๊ณต์œ ํ•œ๋‹ค.ํด๋ž˜์Šค ์ด๋ฆ„, ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ช…์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. Q. ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ๋œ๋‹ค๋Š” ๋ง์ด ๋ฌด์Šจ ์˜๋ฏธ์ธ๊ฐ€? A. ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋งˆ์„์— ๋†“์ธ ์šฐ์ฒดํ†ต์ด๊ณ  ์ธ์Šคํ„ด์Šค๋Š” ์ง‘์ด๋ผ๊ณ  ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง‘(์ธ์Šคํ„ด์Šค)๋Š” ์šฐ์ฒดํ†ต(ํด๋ž˜์Šค ๋ณ€์ˆ˜)์— ํŽธ์ง€๋ฅผ ๊บผ๋‚ผ์ˆ˜๋„ ํŽธ์ง€๋ฅผ ๋„ฃ์„ .. 2024. 10. 5.
1. ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด ๐Ÿชฝ"ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊น€์˜ํ•œ ์„ ์ƒ๋‹˜์˜ ์Šคํ”„๋ง ๊ธฐ๋ณธํŽธ์„ ์œ„์ฃผ๋กœ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค." โ–บ ์ธํ„ฐํŽ˜์ด์Šค (๊ธฐ๋ณธ ์„ค๊ณ„๋„)public interface MemberRepository { void save(Member member); Member findById(Long memberId);}// ์ถœ์ฒ˜: 1)๊น€์˜ํ•œ์˜ ์Šคํ”„๋ง ๊ธฐ๋ณธํŽธ public interface๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋œ๋‹ค.์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ถ”์ƒํ™” ํด๋ž˜์Šค๋กœ ์ผ๋ฐ˜์ ์ธ ๋ฉ”์„œ๋“œ, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ๊ตฌ์„ฑ์›(์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ)์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ถ”์ƒ๋ฉ”์„œ๋“œ(๋งŒ๋“ค๋‹ค ๋งŒ ๊ฒƒ ๊ฐ™์€ ๋ฉ”์„œ๋“œ)์™€ ์ƒ์ˆ˜(final์„ ์ด์šฉํ•˜์—ฌ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์–ด๋–ค ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ฒƒ)๋งŒ ๊ฐ€์ง„๋‹ค.์ถ”์ƒ๋ฉ”์„œ๋“œ๋Š” public abstruct - ๋กœ ์‹œ์ž‘ํ•˜์ง€๋งŒ, ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ƒ๋žตํ•ด.. 2024. 9. 26.
[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.