[SpringBoot]스프링부트란?

KEH·2021년 2월 9일
4

SpringBoot를 활용해보자!

한이음 회의를 진행하며 어떤 아이디어라도 무조건 필요한 약국 상세정보 데이터와 약품 상세정보 데이터는 필요했다. 우리는 두 데이터를 아이디어 회의를 진행하며 먼저 DB에 적재하기로 하였다. 멘토님께서는 Spring Boot를 활용해보는 것을 추천하셨다. 나 포함 팀원 모두 처음이었기 때문에 멘토님의 의견을 반영해 Spring Boot를 1주일 간 공부해보기로 했다.

SpringBoot란?

Spring Boot는 Java를 기반으로 한 웹 어플리케이션 프레임워크이다. Spring Boot가 등장하기 전 Spring 프레임워크가 먼저 등장했는데 Spring의 초기 환경 설정시 시간이 많이 할애되는 문제를 해결하고자 등장한 프레임워크가 Spring Boot이다.
스프링부트는 메이븐이나 그레이들의 dependency에 starter 라이브러리만 작성한다면 초기 셋팅에 필요한 라이브러리들을 모두 세팅해주게 된다. 이를 통해 복잡했던 초기 환경 설정 과정을 간소화시킬 수 있게 되었다. 또 starter 라이브러리는 dependency에 존재하는 라이브러리들의 버전 관리를 자동적으로 해줘 버전이 맞지 않아 발생하는 오류를 방지할 수 있다.

Maven과 Gradle은 무엇일까?

앞서 언급된 메이븐과 그레이들에 대해 조금 이야기하고자 한다.
초기 개발 환경을 설정할 때 메이븐의 pom.xml이나 그레이들의 build.gradle 파일을 통해 스프링과 스프링부트의 프로젝트를 관리할 수 있다.
그럼 둘의 차이는 무엇일까?
Maven은 자바용 프로젝트 관리 툴이기 때문에 자바에서만 사용 가능한다. 하지만 Gradle은 Java 이외에도 C++, Python 등 다양한 언어를 지원한다. 현재는 메이븐의 비중이 더 크긴 하지만 그레이들이 메이븐에 비해 가독성이 더 좋고, 성능면에서도 더 빠르게 작동해기 때문에 대형 프로젝트의 경우 그레이들을 사용하는 경우가 많아지고 있다.

스프링 부트의 두 번째 특징은 톰캣과 같은 내장 서버가 존재한다는 것이다. 스프링 프레임워크의 경우 톰캣을 직접 설치해 프로젝트 내에서 서버를 설정해주고, 버전 관리도 함께 해 주어야 했다. 하지만 스프링 부트는 그럴 필요 없이 톰캣 내장 서버가 존재하여 설치와 버전 관리를 신경 쓸 필요가 없어졌다.

마지막으로 스프링의 경우 servlet-context, root-context와 같은 xml 파일을 직접 작성해서 웹과 관련된 설정이나 스프링 프로젝트 내 객체 의존성을 관리해줘야 했지만 스프링부트에서는 이럴 필요 없이 자동으로 의존성 관리가 가능해졌다.

profile
개발을 즐기고 잘하고 싶은 안드로이드 개발자입니다 :P

0개의 댓글