๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์Šคํ”„๋ง Spring/๐Ÿงถ์Šคํ”„๋ง ๋ถ€ํŠธ Boot

์Šคํ”„๋ง ๋ถ€ํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

by Meteora_ 2021. 6. 25.
728x90

1. ์Šคํ”„๋ง ๋ถ€ํŠธ๋ž€?

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์žกํ•œ ์„ค์ •์—†์ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ผ์ด ๋ชจ๋“  ์„ค์ •์„ ํ•˜์ง€ ์•Š์•„๋„ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ์„ค์ •์„ ์•Œ์•„์„œ ํ•ด์ค๋‹ˆ๋‹ค.

2. ์™œ ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋งŽ์€ XML ์„ค์ • ํŒŒ์ผ(web.xml, rootContext.xml, ServletContext.xml ๋“ฑ)๋“ค์„ ์ž‘์„ฑํ•ด์•ผํ•˜๊ณ , ์„ค์ • ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์™ธ์šฐ์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด ๊ธฐ์กด์— ์‚ฌ์šฉํ–ˆ๋˜ ์„ค์ •์„ Copy&Pasteํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ผ์ด ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ํ†ตํ•ด์„œ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณง ์ƒ์‚ฐ์„ฑ๊ณผ ๋น„์šฉ ๋ฌธ์ œ๋กœ ์ง๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์„ค์ •์—†์ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Spring Boot ์žฅ์ 

1) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ์˜ ์ž๋™ํ™”

 ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ Starter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“ฑ๋กํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜์กด์„ฑ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ ์ž๋™ ๊ด€๋ฆฌ

๊ธฐ์กด์—๋Š” ์Šคํ”„๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„์ „์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ง์ ‘ ์ž…๋ ฅํ•ด์•ผ ํ–ˆ์ง€๋งŒ, ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” pom.xml์— ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฒ„์ „์„ ์ž…๋ ฅํ•˜๋ฉด ์Šคํ”„๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๋„ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์œผ๋กœ ์•Œ์•„์„œ ๋‹ค์šดํ•ด์ค๋‹ˆ๋‹ค.
<!-- maven -->
<project>
...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0-SNAPSHOT</version>
        <relativePath/>
    </parent>
...

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- ๋ฒ„์ „์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. -->
        </dependency>
    </dependencies>

</project>

3) ์„ค์ •์˜ ์ž๋™ํ™”

์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” @EnableAutoConfiguration ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ ์–ธํ•ด์„œ ์Šคํ”„๋ง์—์„œ ์ž์ฃผ ์‚ฌ์šฉ ํ–ˆ๋˜ ์„ค์ •๋“ค์„ ์•Œ์•„์„œ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ ์Šคํ”„๋ง ๋ถ€ํŠธ์— ๋งˆ๋ฒ•์ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

4) ๋‚ด์žฅ Tomcat

์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” Tomcat์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— @SpringBootApplication์–ด๋…ธํ…Œ์ด์…˜์ด ์„ ์–ธ๋˜์–ด์žˆ๋Š” ํด๋ž˜์Šค์˜ main() ๋ฉ”์†Œ๋“œ๋ฅผ  ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ๋‚ด์žฅ ํ†ฐ์บฃ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํŠน๋ณ„ํ•œ ์„ค์ •์—†์ด Web Starter ์˜์กด์„ฑ๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

5) ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ JAR

์›น ํ”„๋กœ์ ํŠธ๋ผ๋ฉด WAR ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•ํ•ด์•ผํ•˜์ง€๋งŒ ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๋‚ด์žฅ ํ†ฐ์บฃ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JAR ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•ํ•ด์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€