lovestory
552
2019-06-10 14:15:31
9
3039

SPRING BOOT REST API 서비스 배포시 jar VS war


위에 자바 선배님이 안계셔서 어쩔수 없이 여기 선배님에게 질문 드립니다.


조사해보니 배포하는 방법이 2가지가 있더군요.


둘이 차이점이 있다면 war 속에 jar들이 있는것이고 


jar에 없는 war경우는  web.pom등 여러가지 배포가 있더군요.


일단 저희 SPRING BOOT 경우 배포 환경은 이렇습니다.


1. REST API 구조로 되어 있다.


2. 초기 서비스라 그렇게 많은 사용자가 접속하지 않을것이다.


3. 개발 환경은 JAVA SPRING BOOT 입니다.


선배님들의 의견을 듣고 싶습니다.


이럴땐 war로 가야하나요? jar로 가야하나요?

0
  • 답변 9

  • 드코
    2k
    2019-06-10 14:40:08

    war를 톰캣에 실어서 배포하는거 아닌가

  • 자몽아이스티맛
    437
    2019-06-10 14:41:27

    외장 WAS를 쓰셔야하는 환경이라면 war 배포를, 

    내장 WAS를 써야하는 환경이라면 jar 배포를 하시면 됩니다.


  • zepinos
    20k
    2019-06-10 14:42:48

    spring boot 에서 그닥 큰 차이는 없습니다. 그냥 war 로 만들고 embeded WAS 로 기동을 할 수도, 외장 WAS 에 넣어서 실행할 수도 있습니다. 그래서 만들 때 war 로 만드는 걸 추천합니다. 어짜피 jar 나 war 모두 zip 으로 압축된 것이고, 내부 내용만 조금 다를 뿐이니까요.


    그리고, 외장 WAS 을 꼭 이용해야 할 필요가 없다면 undertow 로 WAS 바꿔서 별도 실행하는 쪽을 권합니다. 스크립트 구성도 더 간단한 편이고, profile 설정 등에서 좀 더 간단해서요.

  • 제타건담
    6k
    2019-06-10 14:59:09

    WAS가 제공하는 특별한 서비스를 이용하는 것만 아니라면 저는 jar에 한표 던지고 싶네요..

    저도 spring boot의 embedded tomcat의 성능이 과연 괜찮을지..에 대한 의구심이 있었는데..

    sk tacademy의 msa 강의 영상을 보던중에..

    11번가에서 일하시는 분이..11번가는 msa로 전환하면서 spring boot의 embedded tomcat을 사용하고 있다고 하더라구요..

    특별히 큰 이슈가 있지는 않았던듯 하고..나름 그런데서 검증됐을 정도면..성능에는 큰 문제는 없다고 판단되어져서요..

    그리고 spring boot 의 경우 jar면 jar 실행시 profile등을 포함한 모든 설정을 jar를 실행하는 시점에 파라미터로 재정의를 할 수 있기 때문에..

    다양한 환경에서 돌릴때는 jar쪽이 더 낫다고 생각되네요..

  • rezigrene
    1k
    2019-06-10 15:00:03

    내장 톰캣 jar 방식이 편합니다.

    배포도 편하고

  • rezigrene
    1k
    2019-06-10 15:06:11

    추가하자면 초심자의 경우라면 undertow 같은 것보다는 디폴트버전으로 세팅을 권합니다.

    문제생겼을때 검색 가능한 시행착오등을 쉽게 구할수 있으니까요.


  • lovestory
    552
    2019-06-10 15:09:59

    디폴트버전으로 셋팅이라면 예를들어 인텔리제이에 디버그 모드로 실행한다는 의미인가요?



  • rezigrene
    1k
    2019-06-10 15:15:42
    커스터 마이징을 되도록 적게 하시란 의미입니다.
    따로 톰캣서버세팅할거 아니면 양쪽에 모두 사용가능하도록 war설정할 필요없이 jar 로 충분하고
    기본제공되는 내장 톰캣으로도 실제 서비스는 충분하니 그대로 쓰시면 됩니다.
  • zepinos
    20k
    2019-06-10 15:17:29

    spring boot 공식문서에 appendix 부분(https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html)을 보시면 EMBEDDED SERVER CONFIGURATION 영역이 있습니다. 여기에 설정값을 변경할 수 있는데, 개인적으론 저 설정값을 바꿔야 할 수준의 서버라면 사양을 낮추고 서버댓수를 늘리는 쪽을 더 선호하는지라...

  • 로그인을 하시면 답변 을 등록할 수 있습니다.