--- id: [[P-Reinforce|P-Reinforce]]-AUTO-C45BD6 category: Unified confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Spring Framework" --- # [[Spring Framework|Spring Framework]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > Spring Framework๋Š” ์ž๋ฐ”(Java) ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์ฃผ๋กœ ๋‚ด์žฅ๋œ DI(์˜์กด์„ฑ ์ฃผ์ž…) ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [1]. ๋˜ํ•œ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ์ ์šฉ๋˜๋Š” Spring AOP๋ฅผ ์ง€์›ํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ฐ ์บ์‹œ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ํšก๋‹จ ๊ด€์‹ฌ์‚ฌ์˜ ๋ชจ๋“ˆํ™”๋ฅผ ๋•์Šต๋‹ˆ๋‹ค [2, 3]. ๋‹ค๋งŒ ์ œ๊ณต๋œ ๋ฌธํ—Œ์—๋Š” Spring Framework์˜ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜๋‚˜ ์ƒํƒœ๊ณ„ ์ „๋ฐ˜์„ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์ด ์—†์–ด, ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์˜์กด์„ฑ ์ฃผ์ž…(DI)๊ณผ ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ** Spring Framework๋Š” ๋‚ด์žฅ๋œ ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection) ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•˜์—ฌ SOLID ์›์น™ ์ค‘ ํ•˜๋‚˜์ธ ์˜์กด์„ฑ ์—ญ์ „ ์›์น™(Dependency [[Inversion|Inversion]] Principle, DIP)์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [1]. ์ด๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฆฌ(decoupling)ํ•˜๊ณ  ์œ ์—ฐํ•œ ์„ค๊ณ„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [1]. * **Spring AOP (๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ์ง€์›** * **๋Ÿฐํƒ€์ž„ ์œ„๋น™(Runtime Weaving):** Spring AOP๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹ค์ œ ์ฝ”๋“œ์™€ Aspect๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ์œ„๋น™ ๊ณผ์ •์— ์žˆ์–ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ์ ์— ์ ์šฉ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ์œ„๋น™ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [2]. * **์กฐ์ธ ํฌ์ธํŠธ(Join Point)์˜ ํ•œ๊ณ„:** ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ Aspect๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์ ์ธ ์กฐ์ธ ํฌ์ธํŠธ์— ๋Œ€ํ•ด, Spring AOP๋Š” ์˜ค์ง '๋ฉ”์„œ๋“œ ์‹คํ–‰ ์‹œ์ '๋งŒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [4]. ๋”ฐ๋ผ์„œ ์ด๋ณด๋‹ค ๋” ์„ธ๋ถ€์ ์ธ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ๋Š” AspectJ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5]. * **์ฃผ์š” ํ™œ์šฉ ์‚ฌ๋ก€:** ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” `@Transactional` ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ์ž์ฃผ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹ฑํ•˜๋Š” Spring Cache ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋‘ ์ด๋Ÿฌํ•œ AOP ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค [3]. *(์ „์ฒด์ ์ธ ์›น ๋ชจ๋“ˆ, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ , ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ณผ์ • ๋“ฑ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ƒ์„ธ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด์„œ๋Š” ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.)* ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** Dependency Injection (DI), Aspect-Oriented Programming (AOP) - **Projects/Contexts:** SOLID [[Principles|Principles]], [[แ„€แ…ขแ†จแ„Žแ…ฆ แ„Œแ…ตแ„’แ…ฃแ†ผ แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผ (OOP)|๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด Spring AOP๋Š” ๋Ÿฐํƒ€์ž„์— ์ ์šฉ๋˜์–ด ์œ ์šฉํ•œ ๋ชจ๋“ˆํ™”๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ์˜ค์ง ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์‹œ์ ์˜ ์กฐ์ธ ํฌ์ธํŠธ๋งŒ ์ง€์›ํ•˜๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด ๋” ์ •๋ฐ€ํ•œ ์ œ์–ด๋ฅผ ์›ํ•  ๊ฒฝ์šฐ AspectJ ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [4, 5]. --- *Last updated: 2026-04-18* ---