생활
SpringBoot 장점과 단점을 알려주세요.
프로젝트를 리뉴얼 하면서 SpringBoot 사용할려고 하는데
기존 Java + spring 의 버전을 올려서 사용하는 것보다
장점이 있을까요? 또는 단점을 알고 싶어요.
감사합니다.
4개의 답변이 있어요!
안녕하세요 질문자님 :)
기존 Java + spring 의 버전을 올려서 사용하는 것보다
장점이 있을까요? 또는 단점을 알고 싶어요.
>> 기본 세팅 및 템플릿이 잘 마련되어 있습니다.
따로 톰캣 세팅하지 않아도 부트 내부 내장서버로 알아서 잘 구동해줍니다.
어차피 스프링부트가 스프링을 편하게 쓰기 위한 세미버전이라...마치 JS 와 jQuery 같은거라고 보시면 됩니다.
jQuery 로 되는 모든건 JS 로 되지만.
거꾸로 JS로 되는 모든게 jQuery 로 되는건 아닙니다.
따라서 아주 세밀한 컨트롤과 최적화가 필요하다면 스프링을 버전업하여 쓰시는게 맞고.
더 빠르고 간결하게 세팅 및 개발 들어가셔야하면 부트를 쓰시는게 맞습니다.
기존의 Spring 프로젝트와 비슷하기는 합니다.
설정 부분이 간편화 되어 있어서 사용하기는 오히려 더 편하다고 볼수 있습니다.
가능하면 Java보다는 Kotlin을 사용해보는 것이 어떻할까 합니다.
Spring Initializr에서도 Kotlin을 선택할수 있다보니 쉽게 적용이 가능할것 같습니다.
스프링 부트 장점
- 애플리케이션을 신속하게 설정 할수 있습니다. 스프링 구동 애플리케이션을 빌드하기위한 기본 구성을 제공하는 유틸리티입니다. 기본 구성 자체가 필요한 DEPENDENCY가 많아서 시간 효율성이 좋습니다. - SPRING 애플리케이션을 최대한 빨리 실행합니다. 정말 좋습니다. - 작은 애플리케이션을 실행시키기 위해 WAS 설치 없이 embeded container에서 자신의 어플리케이션을 실행합니다. (배포시 톰캣 연동없이 가능하기때문에 간편하고 삽질할 일이 없습니다.) - 필요에 따라 톰캣이 아닌 다른 WAS를 설정 할 수 있습니다. - XML 설정시 간단합니다. (구조가 한눈에 보입니다.) - 톰캣(Tomcat)이나 제티(Jetty)를 기본 내장되어 있으며, 배포 시 완전 꿀입니다. 웹 프로젝트 띄우는 시간이 독립적인 톰캣으로 띄우는 시간보다 반은 단축됩니다.(예를 들어 30초 -> 15초). - 또한 이렇게 서블릿 컨테이너가 내장될 수 있으므로 프로젝트를 .jar 파일 형태로 간단히 만들어 배포할 수 있습니다. - maven pom.xml에서 의존 라이브러리의 버전을 일일이 지정하지 않아도 됩니다. 스프링 부트가 권장 버전을 관리합니다.스프링 부트 단점
- 내장톰캣 관리가 어렵습니다. 규모가 클 경우에는 외장 톰캣으로 연동해야할듯 합니다. - 같은 서버 포트번호로 다르게 배포 시 (서로 다른 프로젝트) boot 버전을 마춰야 합니다. 겪어보아서 한참을 해매었던 기억이 있습니다. 에러뜸.. - 그럼 다른방법으론 ( docker 를 활용한 배포를 하면 좋을 듯 합니다.)안녕하세요.
spring boot의 장점은 spring에서 설정 했던 xml configuration, java configuration을 상당부분 yml 설정으로 대체할 수 있으며
설정이 spring에 비해 비교적 간단합니다.
embed was를 사용할 경우 tool에서 설정해야 했던 was 설정도 java 설정으로 가능합니다.
단점은 기존 spring 설정을 yml 또는 spring boot만의 설정으로 변경하는 방법을 배워야 하기에 러닝 커브가 존재합니다.
설정이 spring보다 간단하지만, 세밀하게 설정이 필요한 경우 yml로 설정으로 할 수 없거나, spring보다 더 복잡할 수 있습니다.
초기 버전의 spring boot는 지원이 미흡했지만 최근에는 오히려 spring보다 확장성이 더 좋아진 듯 보입니다.