과거 2년간 개발했던 기억을 되짚어보면 레거시 프로젝트는 정말 설정이 복잡하고 피곤했다.
대부분의 프로젝트는 스프링 부트의 기반으로 개발을 하게 되었고
초기 설정을 팀원이 작업해 주거나, 외부 라이브러리를 붙여야 할 때 또는
자동으로 잡아주는 설정을 추가로 작업해줘야 할 때만 설정 코드를 보곤 했다.
앞으로도 스프링 부트를 이용할 텐데 편하니까 사용한다 라는 생각으로 계속해서
개발자를 한다고 하기엔 부끄러운 것 같아 오늘부터라도 다시 확인해볼까 한다.
1. 스프링 부트는 뭘까?
기본적으로 스프링의 개념부터 짧게 보면 Java 개발을 편하게 해주는 프레임워크이다.
거기서 한발 더 나아가, 스프링 부트는 스프링의 설정을 간편하게 처리해 주는 프레임워크이다.
2. 장점과 그 이유는 뭘까?
- 내장 서버
개발 시 톰캣 파일을 찾아 톰캣을 물려 서버를 켰던 과거는 잊고 아래 코드만 작성해 주면 된다.
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-web'
자세한 내용은 https://hyuuny.tistory.com/210 더 공부해 봐야겠다.
- 의존성 관리
위 gradle 코드처럼 의존성 관리하기가 너무 편하다.
maven으로도 스프링 부트 설정이 물론 가능하지만.. 쨋든 왕 좋음
- 설정 간소, 자동화
db 연동을 하려고 해도 application.properties 에 몇 줄 적어주면 연결이 가능하다.
정말 편하다
- 배포의 편리함
jar 파일로 패키징 후 jdk 만으로도 배포가 가능하다.
만약 war파일로 배포하려고 한다면 웹 서버도 세팅해야 하고 크기도 크고..
그렇다고 해서 스프링 부트는 무조건 jar 다! 도 아니기 때문에 스프링 부트가 배포가 편리해서 좋아요?
그럼 war는 배포 지원 안 하나요? 이렇게 생각해선 안된다.
jar는 JRE만 있어도 프로젝트가 구동 가능하기 때문에
(다르게 말해서 웹 서버 또는 웹 컨테이너 세팅이 필요 없기 때문에)
편한 거고 만약 웹 서버나 컨테이너가 외부라고 하면 war로 배포해야 함.
막상 war로 배포한 뒤 jsp 오타 수정할 거면 war가 속 편한 점도 많음 ㅎㅎ;
이렇게 대략적으로 장점과 그 이유에 대해서 알아봤다.
다음 글로는 내장 서버는 어떤 식으로 움직이는지, 설정이 간소화되고 자동화되는데
기본적으로 어떤 설정이 그렇게 되는지에 대해 자세히 알아볼 예정이다.
'스프링' 카테고리의 다른 글
[Spring Boot -3]스프링 부트가 개발자에게 직접적으로 주는 장점[1] Web.xml (0) | 2024.03.27 |
---|---|
[Spring Boot -2]스프링 부트 톰캣은 어디서 실행될까? (0) | 2024.03.26 |
스프링 컨테이너의 종류 (0) | 2022.04.20 |
스프링의 특징 5 [Annotation] Java Configuration (0) | 2021.09.09 |
스프링의 특징 4 [PSA] (0) | 2021.09.09 |