Home
>
Server
>
π§βπ»[Server] `jar` νμΌλ§ μ€ννλλ° μλ²κ° λμμ΄ κ°λ₯ν μ΄μ λ 무μμΌκΉμ?
Server
π§βπ»[Server] jar
νμΌλ§ μ€ννλλ° μλ²κ° λμμ΄ κ°λ₯ν μ΄μ λ 무μμΌκΉμ?
- Spring Boot μ ν리μΌμ΄μ
μ JAR νμΌλ§ μ€νν΄λ μλ²κ° λμνλ μ΄μ λ Spring Bootκ° μ 곡νλ μ체 λ΄μ₯ μΉ μλ² λλΆμ
λλ€.
1οΈβ£ Spring Bootμ λ΄μ₯ μλ².
- Spring Bootλ μΉ μ ν리μΌμ΄μ
μ μ€ννκΈ° μν΄ μΈλΆ WAS(Web Application Server, μ: Tomcat, Jetty λ±)λ₯Ό λ³λλ‘ μ€μΉν νμκ° μμ΅λλ€.
- Spring Bootλ λ΄μ₯ μΉ μλ²λ₯Ό ν¬ν¨νμ¬ JAR νμΌλ‘ ν¨ν€μ§λλ©°, μ€ν μ μ ν리μΌμ΄μ
κ³Ό μΉ μλ²λ₯Ό λμμ ꡬλν©λλ€.
1οΈβ£ μ£Όμ λ΄μ₯ μλ².
- Tomcat(κΈ°λ³Έ)
- Jetty
- Undertow
2οΈβ£ JAR νμΌ μ€νκ³Ό λ΄μ₯ μλ² κ΅¬λ.
- Spring Boot μ ν리μΌμ΄μ
μ λΉλνλ©΄ Mavenμ΄λ Gradleμ μν΄ μ€ν κ°λ₯ν JAR νμΌμ΄ μμ±λ©λλ€.
- μ΄ JAR νμΌμλ λ€μμ΄ ν¬ν¨λ©λλ€.
-
- μ ν리μΌμ΄μ
μ½λ(μ¬μ©μκ° μμ±ν Java μ½λ λ° μ€μ )
-
- μ’
μ λΌμ΄λΈλ¬λ¦¬(Spring Framework, λ°μ΄ν°λ² μ΄μ€ λλΌμ΄λ² λ±)
-
- λ΄μ₯ μΉ μλ²(μ: Tomcat)
- JAR νμΌμ μ€ννλ©΄ λ€μμ΄ μΌμ΄λ©λλ€.
-
- java -jar λͺ
λ ΉμΌλ‘ main() λ©μλκ° μ€νλ©λλ€.
-
- Spring Bootλ λ΄μ₯λ Tomcat λ±μ μλ²λ₯Ό μμν©λλ€.
-
- μ ν리μΌμ΄μ
컨ν
μ€νΈλ₯Ό μ΄κΈ°ννκ³ ,
@Controller
, @RestController
λ±μΌλ‘ μ μλ μλν¬μΈνΈλ₯Ό 맀νν©λλ€.
-
- λ΄μ₯ μΉ μλ²κ° μ§μ λ ν¬νΈ(κΈ°λ³Έ 8080)μμ HTTP μμ²μ μμ ν©λλ€.
3οΈβ£ JAR νμΌ κ΅¬μ‘°.
- Spring Bootμ μ€ν κ°λ₯ν JAR νμΌμ μΌλ° JAR νμΌκ³Ό κ΅¬μ‘°κ° λ€λ¦
λλ€.
- μ΄λ₯Ό βFat JARβ λλ βUber JARβλΌκ³ λΆλ¦
λλ€.
- Fat JARμ μ ν리μΌμ΄μ
μ μ½λμ λͺ¨λ μ’
μ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¬ν¨ν©λλ€.
1οΈβ£ Fat JAR μ£Όμ ꡬμ±
library-app-0.0.1-SNAPSHOT.jar
βββ BOOT-INF/
β βββ classes/ # μ ν리μΌμ΄μ
μ μ»΄νμΌλ ν΄λμ€ νμΌ
β βββ lib/ # λͺ¨λ μ’
μ λΌμ΄λΈλ¬λ¦¬
β βββ META-INF/ # λ©νλ°μ΄ν°
βββ org/ # Spring Boot λ‘λ (Spring Boot μ€ν κ΄λ ¨ μ½λ)
2οΈβ£ Spring Boot Loader
- org.springframework.boot.loader ν¨ν€μ§μ μ½λλ JAR νμΌμ μ€ν κ°λ₯ν μ ν리μΌμ΄μ
μΌλ‘ λ§λλλ€.
- μ€ν μ λ΄μ₯ μλ²λ₯Ό μ΄κΈ°ννκ³ , μ ν리μΌμ΄μ
μ main() λ©μλλ₯Ό νΈμΆν©λλ€.
4οΈβ£ λ΄μ₯ μλ²μ λμ μ리.
- Spring Bootλ λ΄μ₯ μλ²λ₯Ό μλμΌλ‘ ꡬμ±ν©λλ€.
- μλ₯Ό λ€μ΄ κΈ°λ³Έ λ΄μ₯ μλ²μΈ Tomcatμ λμμ λ€μκ³Ό κ°μ΅λλ€.
-
- Spring Bootκ° Tomcatμ EmbeddedServletContainerλ₯Ό μ΄κΈ°νν©λλ€.
-
- μ¬μ©μκ° μμ±ν
@Controller
λλ @RestController
μμ μ μν μλν¬μΈνΈλ₯Ό Tomcatμ μλΈλ¦ΏμΌλ‘ λ±λ‘ν©λλ€.
-
- μλ²λ μ§μ λ ν¬νΈ(κΈ°λ³Έκ°: 8080)μμ μμ²μ μμ λκΈ°ν©λλ€.
1οΈβ£ λ΄μ₯ μλ²μ μΈλΆ μλ² λΉκ΅.
νλͺ© |
λ΄μ₯ μλ² |
μΈλΆ μλ² |
μ€μΉ νμ μ¬λΆ |
μ€μΉ λΆνμ |
μ¬μ μ€μΉ λΆνμ |
μ ν리μΌμ΄μ
λ°°ν¬ |
JAR νμΌλ‘ μ€ν κ°λ₯ |
WAR νμΌμ μλ²μ λ°°ν¬ν΄μΌ ν¨ |
μ¬μ© νΈμμ± |
κ°λ¨νκ³ λΉ λ¦ |
μ€μ λ° μ μ§λ³΄μ νμ |
5οΈβ£ μ€ν κ°λ₯ν JAR νμΌμ μ₯μ .
-
1. λ¨μν : κ°λ°, λΉλ, λ°°ν¬, μ€ν κ³Όμ μ΄ κ°λ¨ν©λλ€.
-
2. μ΄μμ± : JAR νμΌλ§ μμΌλ©΄ Javaκ° μ€μΉλ λͺ¨λ νκ²½μμ μ€ν κ°λ₯ν©λλ€.
-
3. λ
λ¦½μ± : μΈλΆ WASκ° νμνμ§ μμΌλ―λ‘ μ’
μμ±μ΄ μ€μ΄λλλ€.
-
4. λΉ λ₯Έ μ€ν : λ³λμ μλ² μ€μ μμ΄ λ°λ‘ μ ν리μΌμ΄μ
μ ꡬλν μ μμ΅λλ€.
6οΈβ£ κ²°λ‘ .
- Spring Boot μ ν리μΌμ΄μ
μ JAR νμ΄λ μ€ννμ λ μλ²κ° λμνλ μ΄μ
-
- λ΄μ₯λ μΉ μλ²(Tomcat, Jetty, Undertow λ±)κ° ν¬ν¨λμ΄ μκΈ° λλ¬Έμ
λλ€.
-
-
JAR νμΌ μμ μ ν리μΌμ΄μ
μ½λμ λͺ¨λ μ’
μ λΌμ΄λΈλ¬λ¦¬κ° ν¬ν¨λ Fat JAR ννλ‘ ν¨ν€μ§λκΈ° λλ¬Έμ
λλ€.
- μ΄ μ κ·Ό λ°©μμ λ°°ν¬μ μ€νμ κ°μννκ³ , κ°λ°μκ° λΉ λ₯΄κ² μ ν리μΌμ΄μ
μ μ€νν μ μλλ‘ μ§μν©λλ€.