스프링 부트(Spring Boot)는 스프링 프레임워크를 사용하는 프로젝트를 아주 간편하게
셋업할 수 있는 스프링 프레임웍의 서브프로젝트다.
스프링 프레임웍은 우리나라에서 국가 표준이므로 대부분의 자바 프로젝트에서 채택하는 명실상부한 1위 프레임웍이다. 개발자가 직접 만들기 힘든 기능들을 아주 맛깔스럽게 빚어놓음으로써 개발자들의 본 업무 외적인 시스템 내부 작업을 아주 간편하게 해결해주고 있다.
그런데 스프링의 다양한 장점에 비해 개발자들의 이해도는 낮은 편이며 남들이 해놓은 것을 가져다
수정해서 쓰는 “ctrl-c, ctrl-v” 방식 개발이 현장에는 만연해 있다.
또한 스프링을 충분히 활용하려면 초기 셋업부터 중요한데 일반 개발자는 거의 손을 못대는 경우가 많다.
진화하고 있는 스프링 프레임웍에 비해 우리나라 현장에서는 다음과 같은 문제점이 있다고 생각된다.
- 전자정부 표준프레임웍은 새로운 것을 추구하기보다 안정성이 중요하므로 스프링 프레임웍 3.x 버전대를 사용하고 있다. 안정성의 반대로 바꿔 생각한다면 관 주도의 표준안 적용으로 인해 변화와 혁신에 대한 도입이 늦는 편이다.
- 개발자들은 과거에 “잘” 사용했던 버전 및 기본 설정만을 가져다 쓰다보니 프로그램 모델이 경직돼 있다. 새롭고 효율적인 변화에 대해 공부하고 싶지 않거나 공부할 기회가 적다.
- 스프링을 잘 아는 기술 지원 전문가(현장에서 “AA”라고도 부르는…)에 의존하다 보니 기술 지원 전문가가 부재 중일 때 또는 기술 지원 전문가도 잘 해결 안되는 문제가 발생하면 프로젝트 전체에 영향이 미친다.
- 개발자가 개발한 결과물을 개발 서버나 운영 서버로 이행(배포)하는 것은 더욱 더 기술 지원 전문가에게 의존해야만 한다. 프로젝트의 효율성에서, 결국 시간과 인력이라는 비용 측면에서 손실이 발생할 수 있다.
여기서 요지는 프레임웍이란 것이 개발하는 데 도움을 주기 위해 도입하는 것인데 우리나라 개발 현장에서는
프레임웍을 자유자재로 다루기 위한 진입 장벽이 높아 보다 새롭고 유익한 변화를 도입하거나 보다 다양한
프레임웍의 면모를 활용하는 게 쉽지 않다는 것이다.
스프링 부트를 적용해본 결과 그 장점이 아주 만족스러운 편이었다. 위에 말한 문제점들을 해결한다고 말하는 것이
아니라 스프링의 다양한 변화 중 가장 먼저 관심을 가질 만한 서브프로젝트라고 생각돼서 언급하는 것이다.
아직 스프링 부트를 접해보지 못했다면 다음과 같은 면에서 유용함을 느낄 수 있으므로 추천하고 싶다.
- 수작업으로 초기 셋업하는 과정 없이 간단히 프로젝트를 띄울 수 있다. 스프링에서 제공하는 Spring Tool Suite 개발 도구를 사용하면 마법사를 통해 기본적인 프로젝트 성격과 프로젝트에서 필요로 하는 라이브러리를 선택할 수 있다. 수작업으로 셋업하더라도 이전에 비해 반 이상이 단순해진다고 생각된다.
- 프로젝트마다 일상적으로 설정하게 되는 사항들을 이미 내부적으로 가지고 있고 개별적으로 차이가 나는 부분만 설정 파일에 집어 넣으면 된다. 예를 들어 DB 연결 설정은 설정대로, 스프링 DB 설정은 설정대로 하지 않고 DB 연결 설정만 설정 파일에 적어놓으면 된다. DB 드라이버니, 트랜잭션이니 하는 것처럼 당연히 들어가야하는 것들은 알아서 처리된다.
- 스프링 보안(Security), 스프링 데이터 JPA와 같이 다른 스프링 프레임웍 구성 요소를 쉽게 가져다 쓸 수 있으며 이 과정에서 프로토타이핑이나 기능을 시험해보는 시간이 전보다 단축된다.
- 톰캣(Tomcat)이나 제티(Jetty)를 기본 내장할 수 있으며 웹 프로젝트 띄우는 시간이 독립적인 톰캣으로 띄우는 시간보다 반은 단축된다(예를 들어 30초 -> 15초). 또한 이렇게 서블릿 컨테이너가 내장될 수 있으므로 프로젝트를 .jar 파일 형태로 간단히 만들어 배포할 수 있다.
- maven
pom.xml
에서 의존 라이브러리의 버전을 일일이 지정하지 않아도 된다. 스프링 부트가 권장 버전을 관리한다. 또한 Spring Tool Suite을 사용한다면 이클립스의 “컨텐트 어시스트” 기능을 통해 의존 라이브러리를 자동 완성 방식으로 입력할 수 있다.
※ 출처 : http://start.goodtime.co.kr/2014/10/이제는-spring-boot를-써야할-때다/
'Programming > Java & JSP & Spring' 카테고리의 다른 글
[Spring] 기본 초기 셋팅 (0) | 2017.07.05 |
---|---|
[Java] 스트링 비교 (equals와 ==의 차이) (0) | 2017.07.05 |
[Java] 문자열 자르기 ( split() / StringTokenizer ) (0) | 2017.04.26 |
[Java] String 클래스에서 특수문자 인식 (1) | 2017.03.24 |
[Java] 문자열 포함 여부 확인 방법 (contains/ indexOf/ matches) (0) | 2017.03.23 |