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

Spring30

[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.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 5. ์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ์™€์Šคํ”„๋ง๋นˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋นˆ ์ด๋ฆ„๊ณผ ๋นˆ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•ด์ค€๋‹ค. Public๊ณผ ํ•จ๊ป˜ ์“ด ๊ฒƒ์€ ํƒ€์ž…๊ณผ ์ด๋ฆ„์ด ๋œ๋‹ค. ์˜ˆ์‹œ๋กœ public MemberService memberService( )์˜ ๊ฒฝ์šฐ MemberService๋Š” ํƒ€์ž…์ด ๋˜๊ณ  memberService๋Š” ๋นˆ์˜ ์ด๋ฆ„์ด ๋œ๋‹ค. return new์™€  ํ•จ๊ป˜ ์“ฐ์ด๋ฉด ๋นˆ ๊ฐ์ฒด๊ณผ ๋œ๋‹ค. ์˜ˆ๋กœ return MemberServiceImpl(memberRepository( ))์˜ ๊ฒฝ์šฐ MemberServiceImpl์ด ๋นˆ ๊ฐ์ฒด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋˜์–ด ๊ด€๋ฆฌ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ์—” ๋นˆ์ด ์ œ๋Œ€๋กœ ๋“ฑ๋ก๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.   [ โ—€๏ธŽ ]  [Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 4. ๊ฐ์ฒด์ง€ํ–ฅ์›๋ฆฌ์ ์šฉ์„น์…˜ 3.. 2024. 7. 18.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 4. ๊ฐ์ฒด์ง€ํ–ฅ์›๋ฆฌ์ ์šฉ ์„น์…˜ 3. ์˜ˆ์ œ๋งŒ๋“ค๊ธฐ์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ๊ตฌํ˜„์ฒด์˜ ์˜์กด์„ฑ์„ ์™„์ „ํžˆ ๋ฐฐ์ œํ•œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ ๊ตฌํ˜„์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ํ•˜๋‚˜ํ•˜๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ฐพ์•„๊ฐ€ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์˜€๋‹ค. ์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์„ ๋ฐ”๊พธ๋ฉฐ ์Šคํ”„๋ง์˜ ์–ด๋–ค ์ ์ด ํŽธ๋ฆฌํ•˜์—ฌ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์„ ํƒํ–ˆ์ง€๋Š” ์•Œ์•„๊ฐ€๋Š” ๊ฐ•์˜๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์–ด๋–ค ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ์˜์กด์ ์ด์ง€ ์•Š๋Š” ์ฝ”๋“œ์ธ์ง€ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.    [ โ—€๏ธŽ ] [Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 3. ์˜ˆ์ œ๋งŒ๋“ค๊ธฐ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์˜ ๊ธฐ์ดˆ ํ‹€์„ ๋งŒ๋“œ๋Š” ๊ฐ•์˜์˜€๋‹ค. ์—ฌ๊ธฐ์—์„œ ์•Œ์•„๋‘˜ ๊ฒƒ์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด๋‹ค. ํ˜„์žฌ ๊ฐ•์˜ ์‹œ์ ์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์˜์กด์„ฑ์„ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜์ง„post-this.tistory.com    .. 2024. 7. 17.
[Spring] ๊น€์˜ํ•œ ๊ธฐ๋ณธํŽธ_ ์„น์…˜ 3. ์˜ˆ์ œ๋งŒ๋“ค๊ธฐ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์˜ ๊ธฐ์ดˆ ํ‹€์„ ๋งŒ๋“œ๋Š” ๊ฐ•์˜์˜€๋‹ค. ์—ฌ๊ธฐ์—์„œ ์•Œ์•„๋‘˜ ๊ฒƒ์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด๋‹ค. ํ˜„์žฌ ๊ฐ•์˜ ์‹œ์ ์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์˜์กด์„ฑ์„ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜์ง„ ๋ชปํ–ˆ๋Š”๋ฐ, ๊ทธ ๋ฌธ์ œ์ ์„ ํ†ตํ•ด ์ถ”ํ›„ ์–ด๋–ค ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•˜๋ฉฐ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด์˜ ๊ด€๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ •๋ฆฝํ•ด์•ผํ• ์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜๊ฐ€ ์ด๋ค„์ง„๋‹ค. ์–ด์จŒ๋“  ํ˜„์žฌ ์‹œ์ ์—์„  ํ”„๋กœ์ ํŠธ์˜ ํ‹€์„ ์–ด๋–ค์‹์œผ๋กœ ์งœ์•ผํ•˜๋ฉฐ enum, interface, class๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์™œ ์žˆ๋Š”์ง€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์‚ดํŽด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.   ๐Ÿงธ ์ž˜๋ชป๋œ ์ •๋ณด๋ฅผ ์ ์—ˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” ๐Ÿงธ ๊ตฌ์กฐํŒŒ์•… ๋ ˆ์ธ ๊ผฌ์šฐ- ๐Ÿงธโœ”๏ธ   ์ด ์„ธ๊ฐ€์ง€์˜ package๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.memberใ„ด class : Member, MemberServiceImpl, MemoryMemberRep.. 2024. 7. 17.