๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ DevLog/Devcourse

[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 45์ผ์ฐจ

by hyebin (Helia) 2025. 6. 11.
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ Spring Framework์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ณ , ์ง์ ‘ Eclipse์—์„œ Maven ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•ด ๋ณด๋ฉฐํ•ด๋ณด๋ฉฐ ์‹ค์Šตํ•ด ๋ณด์•˜๋‹ค.

Spring์ด ์‹ค์ œ๋กœ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€, ์™œ ์›น ๊ฐœ๋ฐœ์—์„œ ์ด๋ ‡๊ฒŒ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”์ง€ ์กฐ๊ธˆ์€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ

๐Ÿ”ท Spring Framework์˜ ๊ฐœ์š”์™€ ํŠน์ง•

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ฐœ๋…๊ณผ Spring์˜ ํŠน์ง•(IoC, DI, AOP ๋“ฑ)์„ ๋ฐฐ์› ๋‹ค.

ํŠนํžˆ POJO, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ORM ์—ฐ๋™ ๋“ฑ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ์กฐ๋ผ๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋๋‹ค.

 

๐Ÿ”ถ DI(Dependency Injection)์™€ ์ฃผ์š” ๋ชจ๋“ˆ

DI์˜ ์ข…๋ฅ˜(Setter, Constructor)์™€ BeanFactory, ApplicationContext์˜ ๊ฐœ๋…์„ ์ •๋ฆฌํ–ˆ๋‹ค.

๋˜ํ•œ Spring์˜ ํ•ต์‹ฌ ๋ชจ๋“ˆ(Core, Context, AOP, WebMVC ๋“ฑ)์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ดค๋‹ค.

 

๐Ÿ”ธ Annotation๊ณผ @Autowired ์‚ฌ์šฉ๋ฒ•

@Component, @Service, @Repository, @Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด

Bean ๋“ฑ๋ก์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ @Autowired๋กœ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋‹ค.


๐Ÿงก ๋А๋‚€ ์ 

์˜ค๋Š˜์€ Spring Framework์˜ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด๋ฉด์„œ ์›น ๊ฐœ๋ฐœ์„ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋ฅผ ์กฐ๊ธˆ์€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Eclipse์—์„œ Maven ํ”„๋กœ์ ํŠธ๋ฅผ ์ง์ ‘ ์„ธํŒ…ํ•ด ๋ณด๋ฉด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ์™€ ์„ค์ •์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•ด์ง€๋Š”์ง€ ์‹ค๊ฐํ–ˆ๋‹ค.

 

์•„์ง DI์™€ Bean ๊ฐœ๋…์ด ์™„๋ฒฝํ•˜๊ฒŒ ๋จธ๋ฆฟ์†์— ์ž๋ฆฌ ์žก์ง„ ์•Š์•˜์ง€๋งŒ, Annotation์„ ํ†ตํ•ด ์ฝ”๋“œ๊ฐ€ ๊น”๋”ํ•ด์ง€๊ณ  ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•ด์ง„๋‹ค๋Š” ๊ฒŒ ํฅ๋ฏธ๋กœ์› ๋‹ค.

์•ž์œผ๋กœ๋„ ํ•˜๋‚˜์”ฉ ๋ฐฐ์šฐ๋ฉด์„œ ์‹ค์Šตํ•ด ๋ณด๊ณ , Spring์„ ๋” ์ต์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ์Šตํ•ด ๋ด์•ผ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•