Introduce

์Šคํ”„๋ง์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ๋˜์–ด ๋‹ค์Œ์˜ ๋ชฉ๋ก๋“ค์„ ์ง€์นญํ•˜๊ฒŒ ๋œ๋‹ค.

  • ์Šคํ”„๋ง DI ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ 

  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ

  • ์Šคํ”„๋ง ๋ถ€ํŠธ, ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ๋ชจ๋‘ ํฌํ•จํ•œ ์Šคํ”„๋ง ์ƒํƒœ๊ณ„

์Šคํ”„๋ง ๊ธฐ์ˆ  ์ข…๋ฅ˜

ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„  ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๊ฑฐ์˜ ํ•„์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ์™ธ์— ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ๋“ค์ด ์กด์žฌํ•œ๋‹ค.

  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ: ํ•ต์‹ฌ์ด ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

  • ์Šคํ”„๋ง ๋ถ€ํŠธ: ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ์„œํฌํŠธํ•˜๋Š” ์—ญํ• 

  • ๊ทธ ์™ธ

    • ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ

    • ์Šคํ”„๋ง ์„ธ์…˜

    • ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ

    • ์Šคํ”„๋ง Rest Docs

    • ์Šคํ”„๋ง ๋ฐฐ์น˜

    • ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ

์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ๋กœ์„œ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํ•ต์‹ฌ ๊ธฐ์ˆ : ์Šคํ”„๋ง DI ์ปจํ…Œ์ด๋„ˆ, AOP, ์ด๋ฒคํŠธ, ๊ธฐํƒ€

  • ์›น ๊ธฐ์ˆ : ์Šคํ”„๋ง MVC, ์Šคํ”„๋ง WebFlux

  • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ : ํŠธ๋žœ์žญ์…˜, JDBC, ORM ์ง€์›, XML ์ง€์›

  • ๊ธฐ์ˆ  ํ†ตํ•ฉ: ์บ์‹œ, ์ด๋ฉ”์ผ, ์›๊ฒฉ์ ‘๊ทผ, ์Šค์ผ€์ค„๋ง

  • ํ…Œ์ŠคํŠธ: ์Šคํ”„๋ง ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ์ง€์›

  • ์–ธ์–ด: ์ฝ”ํ‹€๋ฆฐ, ๊ทธ๋ฃจ๋น„

์ตœ๊ทผ์—๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ํ†ตํ•ด์„œ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ์ˆ ๋“ค์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

์Šคํ”„๋ง ๋ถ€ํŠธ

์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ผ ๋ฟ์ด๋ฉฐ, ๊ฒฐ๊ตญ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์— ์žˆ๋‹ค.

  • ์Šคํ”„๋ง์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›, ์ตœ๊ทผ์—๋Š” ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉ

  • ๋‹จ๋…์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑ Tomcat ๊ฐ™์€ ์›น ์„œ๋ฒ„๋ฅผ ๋‚ด์žฅํ•ด์„œ ๋ณ„๋„์˜ ์›น ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋จ

  • ์†์‰ฌ์šด ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ์œ„ํ•œ starter ์ข…์†์„ฑ ์ œ๊ณต

  • ์Šคํ”„๋ง๊ณผ 3rd party(์™ธ๋ถ€) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž๋™ ๊ตฌ์„ฑ

  • ๋ฉ”ํŠธ๋ฆญ, ์ƒํƒœ ํ™•์ธ, ์™ธ๋ถ€ ๊ตฌ์„ฑ ๊ฐ™์€ ํ”„๋กœ๋•์…˜ ์ค€๋น„ ๊ธฐ๋Šฅ ์ œ๊ณต ๊ด€๋ก€์— ์˜ํ•œ ๊ฐ„๊ฒฐํ•œ ์„ค์ •

  • ๊ด€๋ก€์— ์˜ํ•œ ๊ฐ„๊ฒฐํ•œ ์„ค์ •

์Šคํ”„๋ง ํ•ต์‹ฌ ๊ฐœ๋…

  • ์ž๋ฐ” ์–ธ์–ด ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ

  • ์ž๋ฐ” ์–ธ์–ด์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ธ ๊ฐ์ฒด์ง€ํ–ฅ์„ ์‚ด๋ ค๋‚ด๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

  • ๋™์‹œ์— ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

์Šคํ”„๋ง์—์„œ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ์•„๋ž˜ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

1. ์ •์  ์ปจํ…์ธ 

Spring Static Contents

2. MVC & ํ…œํ”Œ๋ฆฟ ์—”์ง„

Spring MVC Template Engine

3. API

Spring API
  • http body์— ๋ฌธ์ž ๋‚ด์šฉ ๋ฐ˜ํ™˜

  • HttpMessageConverter ๋™์ž‘

    • ๋ฌธ์ž: StringHttpMessageConverter

    • ๊ฐ์ฒด: MappingJackson2HttpMessageConverter

    • ๊ทธ ์™ธ์—๋„ ์—ฌ๋Ÿฌ converter ์กด์žฌ

์Šคํ”„๋ง์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์™€ ํ•ต์‹ฌ

  • DI(Dependency Injection): ๊ฐ์ฒด ๊ฐ„ ์˜์กด์„ฑ์„ ์ž์‹ ์ด ์•„๋‹Œ ์™ธ๋ถ€์—์„œ ๋‘ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ

  • IoC(Inversion of Control): ์ œ์–ด์˜ ์—ญ์ „, ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด ํ๋ฆ„์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ

  • AOP(Aspect Oriented Programming): ๊ณตํ†ต์˜ ๊ด€์‹ฌ ์‚ฌํ•ญ์„ ์ถ”์ถœํ•˜์—ฌ ์›ํ•˜๋Š” ๊ณณ์— ์ ์šฉํ•˜๋Š” ๊ธฐ์ˆ 

์Šคํ”„๋ง์ด ์ฃผ๋Š” ์ด์ 

์ด์ 
์„ค๋ช…

์ผ๊ด€๋œ ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋ฐœ (DI/IoC)

์˜์กด์„ฑ ์—ญ์ „์œผ๋กœ ๋ชจ๋“ˆ ๊ฐ„ ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ, ํ…Œ์ŠคํŠธยท๊ต์ฒด ์šฉ์ด

๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ

๊ณตํ†ต ๊ธฐ๋Šฅ์„ AOP/Filter/Interceptor๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋„๋ฉ”์ธ ๋กœ์ง์— ์ง‘์ค‘

ํ‘œ์ค€ํ™”๋œ ์ธํ”„๋ผ ์ถ”์ƒํ™”

ํŠธ๋žœ์žญ์…˜, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์˜ˆ์™ธ ๋ณ€ํ™˜, ๋ฉ”์‹œ์ง€ ์ปจ๋ฒ„ํ„ฐ, ์บ์‹œ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณ„๋กœ ์ถ”์ƒํ™”

ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ

ํ”„๋กœํŒŒ์ผ/ํ…Œ์ŠคํŠธ ์Šฌ๋ผ์ด์Šค, MockMvc, TestEntityManager ๋“ฑ

์šด์˜/๊ด€์ฐฐ

Actuator, Micrometer, ํ—ฌ์Šค์ฒดํฌ/๋ฉ”ํŠธ๋ฆญ/ํŠธ๋ ˆ์ด์‹ฑ ์—ฐ๋™

์ƒ์‚ฐ์„ฑ

Spring Boot์˜ ์ž๋™ ๊ตฌ์„ฑ, Starter, ์™ธ๋ถ€ ์„ค์ •์œผ๋กœ ์ดˆ๊ธฐ ์„ค์ • ์ตœ์†Œํ™”

ํ™•์žฅ์„ฑ

์กฐ๊ฑด๋ถ€ ๋นˆ ๋“ฑ๋ก, BeanPostProcessor, ์ด๋ฒคํŠธ๋กœ ์œ ์—ฐํ•œ ํ™•์žฅ ๊ฐ€๋Šฅ

๋ฒค๋” ์ข…์†์„ฑ ์™„ํ™”

JPA/Transaction ๋“ฑ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ตฌํ˜„ ๊ต์ฒด ์šฉ์ด

๊ฑฐ๋Œ€ํ•œ ์ƒํƒœ๊ณ„

Security, Data, Batch, Cloud ๋“ฑ ๊ฒ€์ฆ๋œ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ํ™œ์šฉ

์ฐธ๊ณ ์ž๋ฃŒ

Last updated

Was this helpful?