๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SpringBoot/์ดํ•ด์™€ ์›๋ฆฌ

Opinionated๊ณผ Out of the box

by ๐Ÿณ Laboon 2024. 3. 4.
Opinionated

 

'์ž๊ธฐ ์ฃผ์žฅ์ด ๊ฐ•ํ•œ'์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ด ์šฉ์–ด๋Š” SpringBoot์˜ Concept๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

SpringBoot๋Š” ๋งค๋ฒˆ Servlet์„ ๋„์›Œ์•ผํ•˜๋Š” Spring์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํƒ„์ƒํ•œ Framework์ด๋‹ค.

์ด๋Ÿฐ Containerless ์„ฑ์งˆ๋ฟ๋งŒ ์•„๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์ธ ๊ฐ€์ด๋“œ(?), ๋กœ๋“œ๋งต(?)์„ ์ œ๊ณตํ•˜๊ณ ์žˆ๋‹ค.

 

Spring Framework์˜ ์„ค๊ณ„ ์ฒ ํ•™
  1. ๊ทน๋‹จ์ ์œผ๋กœ ์œ ์—ฐํ•˜๋‹ค.
    • ์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection, DI)
    • ๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Aspect-Oriented Programming, AOP)
    • IoC(Inversion of Control) Container
    • ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ, ํ™•์žฅ์„ฑ, ...
  2. ๋‹ค์–‘ํ•œ ๊ด€์ ์„ ์ˆ˜์šฉํ•œ๋‹ค
    • ์›น ๊ฐœ๋ฐœ, ๋ณด์•ˆ, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ํ…Œ์ŠคํŠธ, ...
  3. Not Opinionated
    • ๋‹ค์–‘ํ•œ ์„ ํƒ์ง€๋ฅผ ๋‹ค ํ—ˆ์šฉํ•œ๋‹ค.
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ ํ•ด์•ผ ํ•จ.
Spring Boot Framework์˜ ์„ค๊ณ„ ์ฒ ํ•™

 

Not Opinionated → Opinionated

  • ์ „๋ฌธ๊ฐ„์˜ ์˜๊ฒฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ”„๋ง์„ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
  • Spring Boot์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•๋Œ€๋กœ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • ๊ด‘๋ฒ”์œ„ํ•œ Spring์˜ ์ง„์ž…์žฅ๋ฒฝ์„ ๋งŽ์ด ๊ฐœ์„ ์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ๋ฒ•
  • Starter ํŒจํ‚ค์ง€

Out of the box : ๋ณ„๋‹ค๋ฅธ ์„ค์ • ์—†์ด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ

  • ํ‘œ์ค€ ์ž๋ฐ” ๊ธฐ์ˆ , ์˜์กด๊ด€๊ณ„, ์‚ฌ์šฉ๋ฒ„์ „
  • ๊ฐ ๊ธฐ์ˆ ์„ ์Šคํ”„๋ง์— ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹(DI ๊ตฌ์„ฑ)
  • ๋””ํดํŠธ ์„ค์ •๊ฐ’ ์ œ๊ณต
์ปค์Šคํ„ฐ๋งˆ์ด์ง•์„ ํ•˜๊ฑฐ๋‚˜ ์ฝ”์–ด ๊ธฐ์ˆ ์„ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ?
ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ, ํ”„๋ ˆ์ž„ ์›Œํฌ ์ž์ฒด์˜ ์ˆ˜์ •์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

 

์œ ์—ฐํ•œ ํ™•์žฅ

 

properties, yaml ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ์„ค์ • ํŒŒ์ผ๋กœ ์œ ์—ฐํ•œ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

@Configuration ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ปค์Šคํ…€ ๊ตฌ์„ฑ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ 

 

์ธํ”„๋Ÿฐ ํ† ๋น„์˜ ์Šคํ”„๋ง ๋ถ€ํŠธ - ์ดํ•ด์™€ ์›๋ฆฌ

 

ํ† ๋น„์˜ ์Šคํ”„๋ง ๋ถ€ํŠธ - ์ดํ•ด์™€ ์›๋ฆฌ ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ

์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์ž˜ ํ•™์Šตํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ”„

www.inflearn.com

โ€ป ์ธํ”„๋Ÿฐ Toby์˜ SpringBoot ์ดํ•ด์™€ ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.