user-img
Computer Science/๋ชจ์˜๋ฉด์ ‘ 5
thumbnail
[๋ฉด์ ‘ ์งˆ๋ฌธ] IoC(Inversion of Control) ์ด๋ž€ ๋ฌด์—‡์ด๊ณ , ์Šคํ”„๋ง์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: ์ œ์–ด๊ถŒ์˜ ์—ญ์ „ DI, Spring์—์„œ์˜ IoC ๋™์ž‘ ๊ณผ์ •, Spring์—์„œ DI 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•, Bean ๋“ฑ๋ก 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•IoC๋ž€, '๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ๊ด€๋ฆฌ ํ†ต์ œ๊ถŒ์„ ๊ฐœ๋ฐœ์ž์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋„˜๊ฒจ์ค€๋‹ค.' ๋ผ๋Š” ์„ค๊ณ„ ์›์น™์ž…๋‹ˆ๋‹ค.์žฅ์ ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”์–ด ์œ ์ง€ ๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ํ…Œ์ŠคํŠธ์— ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ค€๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค.Spring์—์„œ๋Š” Spring IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด ์›์น™์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ pom.xml ํ˜น์€ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜, ์ž๋ฐ” ์ฝ”๋“œ ๊ธฐ๋ฐ˜์˜ bean ๋“ฑ๋ก ๋ช…์„ธ์„œ๋ฅผ SpringIoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฝ์Šต๋‹ˆ๋‹ค.์ฝ์€ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ Spring Ioc ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— bean ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ›„ ๋“ฑ๋ก ํ•ฉ๋‹ˆ๋‹ค.Busines..
2025.07.14
Computer Science/๋ชจ์˜๋ฉด์ ‘
thumbnail
[๋ฉด์ ‘ ์งˆ๋ฌธ] Spring์—์„œ Bean์„ ๋“ฑ๋กํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: @Component = ํด๋ž˜์Šค ๊ธฐ๋ฐ˜, @Bean = ๋งค์„œ๋“œ ๊ธฐ๋ฐ˜, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐ์ฒด ์ƒ์„ฑ์— ๊ด€์—ฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€์˜ ์ฐจ์ด2. ์ƒ์„ธ ์„ค๋ช… ๐Ÿ“šBean ๋“ฑ๋ก ์–ด๋…ธํ…Œ์ด์…˜์€ ๊ทธ ๋Œ€์ƒ์ด ํด๋ž˜์Šค์ธ์ง€, ๋งค์„œ๋“œ์ธ์ง€์— ๋”ฐ๋ผ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.@Component: ํด๋ž˜์Šค ๋Œ€์ƒ, Bean ๋“ฑ๋กํ•˜๊ณ  ์‹ถ์€ ํด๋ž˜์Šค์— ๋ช…์‹œํ•˜๋ฉด, ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ Bean์œผ๋กœ ๋“ฑ๋ก ๋ฉ๋‹ˆ๋‹ค.@Configuration ํด๋ž˜์Šค์˜ ๋งค์„œ๋“œ์— @Bean: ๋งค์„œ๋“œ ๋Œ€์ƒ, ์ด ์–ด๋…ธํ…Œ์ด์…˜์ด ์ ํžŒ ๋งค์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ์ฒด๊ฐ€ Bean์— ๋“ฑ๋ก ๋ฉ๋‹ˆ๋‹ค.(์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์˜จ์ „ํžˆ ์Šค์Šค๋กœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค์— ๋Œ€ํ•˜์—ฌ, ๋ฏธ๋ฆฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ์ฝ”๋“œ๋กœ ์„ธํŒ…ํ•ด๋‘๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.)์ดํ›„ Spring Application์ด @CompnentS..
2025.07.14
Computer Science/๋ชจ์˜๋ฉด์ ‘
thumbnail
[๋ชจ์˜ ๋ฉด์ ‘] static ํ‚ค์›Œ๋“œ๋Š” ์™œ ์‚ฌ์šฉํ•˜๋ฉฐ ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ๊ณต์œ  ์ž์›, ๊ฐ์ฒด ์ง€ํ–ฅ ์œ„๋ฐ˜, ์ˆจ๊ฒจ์ง„ ์˜์กด์„ฑ ๋ฌธ์ œ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์›€static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜ ํ˜น์€ ๋งค์„œ๋“œ๋Š” ์ปดํŒŒ์ผ์‹œ์ ์— ๋”ฑ ํ•œ๋ฒˆ๋งŒ Method ์˜์—ญ์— ํ• ๋‹น๋œ ๋’ค์—, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•์—, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ํšจ์œจ์ ์ด๊ณ , ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ๊ณต์œ  ์ž์›์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถˆ๋ณ€ ์ƒ์ˆ˜๋‚˜ Utill ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ static์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ฌ๊ฐํ•œ ๋ถ€์ž‘์šฉ์ด ๋™๋ฐ˜๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ์‹œ ์œ ์˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ๋กœ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„๋ฐ˜ํ•˜๋Š” ํ‚ค์›Œ๋“œ ์ž…๋‹ˆ๋‹ค.static ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋Š” ์ž์‹ ์˜ ์ƒํ…Œ๋ฅผ ์Šค์Šค๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ํƒ€ ๊ฐ์ฒด๋‚˜ ์„œ๋น„์Šค์— ์˜ํ•ด ์ž์‹ ์˜ ์ƒํƒœ๊ฐ€ ..
2025.07.07
Computer Science/๋ชจ์˜๋ฉด์ ‘
thumbnail
[๋ชจ์˜๋ฉด์ ‘] Self-Invocation์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”?
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: Bean ๋ถ„๋ฆฌ, ์ž๊ฐ€์ฃผ์ž…SELF-INVOCATION ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ž๊ฐ€ ํ˜ธ์ถœ๋œ ๋งค์„œ๋“œ๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ, ํ•ด๋‹น ๋งค์„œ๋“œ ํ˜ธ์ถœ ์‹œ์—๋„ AOP ๋นˆ ํ”„๋ก์‹œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๊ฐ™์€ ๊ฐ์ฒด ๋‚ด์˜ ๋งค์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์‹œ, this. ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๊ฐ์ฒด ์ด๋ฆ„. ์œผ๋กœ ์ž๊ธฐ ์ž์‹ ์„ ํ•œ ๋ฒˆ ๋” ์ฃผ์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Self-Invocation ๋ฐœ์ƒ ์ƒํ™ฉpublic class Test { public void methodAB (A a, B b) { saveA(a); saveB(b); } public void saveA (A a) { repository.save(A a);..
2025.07.07
Computer Science/๋ชจ์˜๋ฉด์ ‘
thumbnail
[๋ชจ์˜ ๋ฉด์ ‘] ์ •์  ํŒฉํ† ๋ฆฌ ๋งค์„œ๋“œ ํŒจํ„ด๊ณผ ๋นŒ๋” ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: ์ƒ์„ฑ์ž ์ˆจ๊ธฐ๊ธฐ, static ๋งค์„œ๋“œ๋กœ ํŒฉํ† ๋ฆฌ ๊ตฌํ˜„, Builder = ์กฐ๋ฆฝ๊ณผ์ •๊ณผ ์ƒ์„ฑ์˜ ๋ถ„๋ฆฌ์ •์  ํŒฉํ† ๋ฆฌ ๋งค์„œ๋“œ ํŒจํ„ด์€ ํŒฉํ† ๋ฆฌ ํŒจํ„ด์˜ ๊ตฌํ˜„์ฒด ์ค‘ ํ•˜๋‚˜ ์ž…๋‹ˆ๋‹ค.ํŒฉํ† ๋ฆฌ ํŒจํ„ด์˜ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ œํ’ˆ ์ธํ„ฐํŽ˜์ด์Šค: ์ƒ์„ฑํ•  ๊ตฌํ˜„์ฒด์— ๋Œ€ํ•œ ๋ช…์„ธ๋งŒ ์ถ”์ƒํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.๊ตฌ์ฒด์ ์ธ ์ƒํ’ˆ: ๋ช…์„ธ์— ๋งž๊ฒŒ ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์ฒดํ™”์‹œํ‚ฌ์ง€ ์ฝ”๋“œ ๋กœ์ง์ด ์žˆ์Šต๋‹ˆ๋‹ค.ํŒฉํ† ๋ฆฌ: ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋งž๊ฒŒ ๊ตฌํ˜„์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ •์  ํŒฉํ† ๋ฆฌ ๋งค์„œ๋“œ ํŒจํ„ด์€ ํŒฉํ† ๋ฆฌ ๋ถ€๋ถ„์„ static method๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ •์  ํŒฉํ† ๋ฆฌ ๋งค์„œ๋“œ ํŒจํ„ด์˜ ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ƒ์„ฑ ๋ชฉ์ ์— ๋Œ€ํ•œ ํ‘œํ˜„์ด ๋งค์„œ๋“œ ์ด๋ฆ„์œผ๋กœ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ํ†ต์ œ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. -> ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ•œ์ •ํ•  ์ˆ˜ ์žˆ์Œ, ..
2025.07.07
Computer Science/๋ชจ์˜๋ฉด์ ‘