728x90
๋ฐ˜์‘ํ˜•

Til 5

[Spring] IoC์™€ DI — ์ข‹์€ ์ฝ”๋“œ์˜ ํ•ต์‹ฌ ์›์น™

๐Ÿ“ TIL (Today I Learned) — 2025.09.22. ์›”์š”์ผโœ๏ธ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์—์„œ Spring ํ•™์Šต ์ค‘ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.1. IoC์™€ DI๋ž€?Spring์„ ๋ฐฐ์šฐ๋ฉด ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•˜๋Š” ๋‹จ์–ด๊ฐ€ IoC์™€ DI์ž…๋‹ˆ๋‹ค.๋งŽ์€ ๋ถ„๋“ค์ด “Spring์—์„œ๋งŒ ์“ฐ๋Š” ๊ธฐ๋Šฅ”์œผ๋กœ ์˜คํ•ดํ•˜์ง€๋งŒ, ์‚ฌ์‹ค์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™์—์„œ ๋น„๋กฏ๋œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.IoC (Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „)๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€(Spring IoC ์ปจํ…Œ์ด๋„ˆ)์— ๋งก๊ธฐ๋Š” ๊ฐœ๋… → Spring IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ์ฒด ์ƒ์„ฑ, ์˜์กด์„ฑ ์—ฐ๊ฒฐ, ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ๊นŒ์ง€ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘‰ “๋‚ด๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค์ง€ ๋ง๊ณ , ๋Œ€์‹  ํ•ด์ค„ ์‚ฌ๋žŒ์—๊ฒŒ ๋งก๊ธฐ์ž”DI (Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)IoC ์›์น™์„ ๊ตฌํ˜„ํ•˜..

[Java] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ — String, StringBuffer, StringBuilder ์ฐจ์ด

๐Ÿ“ TIL (Today I Learned) — 2025.09.19.๊ธˆ์š”์ผโœ๏ธ ์ด ๊ธ€์€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์—์„œ Java ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต ์ค‘ ๋ฌธ์ž์—ด ๊ด€๋ จ ๊ฐœ๋…์„ ์ •๋ฆฌํ•œ TIL์ž…๋‹ˆ๋‹ค.1. ์™œ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ• ๊นŒ?Java์—์„œ ๋ฌธ์ž์—ด์€ ๋‹จ์ˆœ ์ถœ๋ ฅ๋ฟ ์•„๋‹ˆ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด, ์›น ๊ฐœ๋ฐœ, ์‹ค๋ฌด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๊ฐ™์€ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ด๋ผ๋„ ์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ์„ ํƒํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. Java๋Š” ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:String — ๋ถˆ๋ณ€(Immutable) ๋ฌธ์ž์—ดStringBuffer — ๊ฐ€๋ณ€(Mutable) + ์Šค๋ ˆ๋“œ ์•ˆ์ „StringBuilder — ๊ฐ€๋ณ€(Mutable) + ๋น ๋ฅธ ์„ฑ๋Šฅ2. String — ๋ถˆ๋ณ€(Immutable)S..

[Spring] ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ ํ๋ฆ„ ์ •๋ฆฌ — Servlet๋ถ€ํ„ฐ Spring Boot๊นŒ์ง€

๐Ÿ“ TIL (Today I Learned) — 2025.09.18. ๋ชฉ์š”์ผโœ๏ธ ์ด ๊ธ€์€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์—์„œ Spring ์ž…๋ฌธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ TIL์ž…๋‹ˆ๋‹ค.์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์˜ ๋ฐœ์ „ ๊ณผ์ •์˜ค๋Š˜๋‚  ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์—์„œ Spring Boot๋Š” ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ Spring Boot๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ธฐ์กด ๊ธฐ์ˆ ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๊ณ  ๋ฐœ์ „ํ•œ ๋์— ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๋Š” ์ ์„ ์•Œ๋ฉด ํ›จ์”ฌ ๋” ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ‘‰ ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ → JSP/Servlet → Spring MVC → Spring Boot1. ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ (์ดˆ๊ธฐ ์›น ๊ฐœ๋ฐœ)ํ™”๋ฉด, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฝ”๋“œ๊ฐ€ ํ•œ ํŒŒ์ผ์— ๋’ค์„ž์—ฌ ์žˆ๋˜ ์‹œ๊ธฐ์œ ์ง€๋ณด์ˆ˜ ์–ด๋ ค์›€, ์ž‘์€ ์ˆ˜์ •๋„ ํฐ ..

[Spring] Spring MVC๋ž€? — MVC ํŒจํ„ด๊ณผ DispatcherServlet ๋™์ž‘ ์›๋ฆฌ

๐Ÿ“ TIL (Today I Learned) — 2025.09.17. ์ˆ˜์š”์ผโœ๏ธ ์ด ๊ธ€์€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์—์„œ Spring ์ž…๋ฌธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ TIL์ž…๋‹ˆ๋‹ค.๐Ÿ“š ๋ชฉ์ฐจ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์˜ ๋ฐœ์ „ ๊ณผ์ •MVC ๋””์ž์ธ ํŒจํ„ด์ด๋ž€?Servlet์˜ ์ดํ•ด์™€ ๋™์ž‘ ์›๋ฆฌServlet์˜ ํ•œ๊ณ„์ Spring MVC์™€ Front Controller ํŒจํ„ดDispatcherServlet ๋™์ž‘ ์›๋ฆฌ1. ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์˜ ๋ฐœ์ „ ๊ณผ์ •์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๊ตฌ์กฐ์™€ ์ƒ์‚ฐ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•ด ์™”์Šต๋‹ˆ๋‹ค.์ดˆ๊ธฐ์—๋Š” ํ™”๋ฉด, ๋กœ์ง, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฝ”๋“œ๊ฐ€ ํ•œ ํŒŒ์ผ์— ๋’ค์„ž์—ฌ ์žˆ์—ˆ์ง€๋งŒ, ์ง€๊ธˆ์€ ์„ค์ • ์ž๋™ํ™”์™€ ๋‚ด์žฅ ์„œ๋ฒ„๊นŒ์ง€ ์ œ๊ณตํ•˜๋Š” Spring Boot๊ฐ€ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ”„ ๋ฐœ์ „ ๋‹จ๊ณ„ ํ๋ฆ„์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ → JSP/..

[Spring/Lombok] ์ƒ์„ฑ์ž ์• ๋„ˆํ…Œ์ด์…˜ ์•Œ์•„๋ณด๊ธฐ — @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor

๐Ÿ“ TIL (Today I Learned) — 2025.09.16. ํ™”์š”์ผ โœ๏ธ ์ด ๊ธ€์€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์—์„œ Spring ์ž…๋ฌธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ TIL์ž…๋‹ˆ๋‹ค.๐Ÿค” Lombok์„ ์™œ ์จ์•ผ ํ• ๊นŒ์š”?Java๋กœ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ™์€ ํŒจํ„ด์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ํด๋ž˜์Šค๋งˆ๋‹ค ์ƒ์„ฑ์ž, getter, setter๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์€ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“ค๊ณ , ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ„๋‹จํ•œ ์ƒํ’ˆ ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค:// ๐Ÿ˜ต Lombok ์—†์ด ์ž‘์„ฑํ•˜๋ฉด...public class Product { private String name; private int price; // ๊ธฐ๋ณธ ์ƒ์„ฑ์ž public Product() {} // ๋ชจ๋“  ํ•„๋“œ..

728x90
๋ฐ˜์‘ํ˜•