코딩짜는 일상

[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 13차 - 스프링 부트 본문

TIL

[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 13차 - 스프링 부트

Remily 2025. 10. 15. 02:25
반응형

📚 서론

지난주는 스프링에 대해 알아보았습니다.

 

덕분에 귀찮은 객체 관리는 스프링 컨테이너에 맡겨둘 수 있었고

프론트 컨트롤러 MVC 방식을 이용한 뷰와 비즈니스 로직 분리로 유지보수도 쉬워졌습니다.

 

하지만... 사람은 앉으면 눕고 싶은 법!

 

편리함을 추구하는 건 개발자의 덕목이라구요! 아무튼 그러함! 출처:giphy

 

 

 

스프링은 톰캣같은 외부 웹 서버(WAS)와 연동하고

DI 및 여러 설정들을 XML파일로 직접 구성해야 해서 작성도 어렵고 확인도 어려웠습니다.

 

저도 매핑을 했는데 페이지를 못 찾겠다는 에러창을 여러번 봐야만 했죠...😭

 

 

개발자라면 서비스 로직에 더 집중해야 하는데 자꾸 설정과 씨름만 하는 건 너무 비효율적입니다.

 

그래서 xml 기반 설정 없이 간단하게 프로젝트를 시작할 수 있는 스프링 부트가 탄생하게 되었습니다. 🥳🎉

 

 

 

 

 

🎷  프로젝트 생성 비교

스프링 프로젝트를 새롭게 시작할 때 가장 번거로운 작업 중 하나는

바로 라이브러리 버전을 일일이 지정해 주어야 한다는 점입니다.

 

스프링으로 MVC 프로젝트를 생성하면 메이븐 컴파일러 프러그인 설정이 기본 자바 6인데

MyBatis를 사용하려면 자바 8 이상으로 올려줘야 하므로 플러그인 설정을 전부 1.8로 바꿔줘야 하고

그 외에도 JDBC, MyBatis, Connection Pool, Oracle 라이브러리를 일일이 추가해줘야 했습니다.

 

이렇게 사용하려는 모든 라이브러리를 버전까지 지정하여 개발자가 pom.xml에 입력해줘야 비로서 시작할 수 있습니다.

 

그에 비해 스프링 부트는 기본사항을 입력하고 추가할 라이브러리를 선택만 하면 바로 시작할 수 있습니다.

수업에서는 STS IDE를 다운 받아 사용하였습니다

 

1. 프로젝트 기본사항 입력 🧾

기본사항 입력 창

 

가장 먼저 프로젝트 이름과 타입, 버전등을 입력합니다.

수업에서는 기존에 만든 MVC 프로젝트와 비교하기 위해 Maven으로 선택하였습니다.

 

Name : 프로젝트 명
Type : Maven / Gradle 선택
Packaging : War(웹 어플리케이션 서버에 배포할 경우 사용) / Jar(스프링 부트 기본값)
Java Version : 자바 버전
Group : 도메인명 또는 속한 조직이나 회사명. 프로젝트 고유 식별 키.
Artifact : 빌드 후 생성되는 파일의 이름. 컨텍스트 패스(contextPath)로도 사용됨.
Package : 자바 클래스가 들어갈 기본 패키지 경로. 주로 Group + Artifact 조합으로 작성함.

 

2. 라이브러리 추가 🧱

사용할 라이브러리 추가

 

다음으로 Spring Boot Version을 선택하고 사용할 라이브러리를 선택해줍니다.

현재 가장 최신 REALESE버전은 3.5.6이네요~

 

라이브러리를 추가할 때 버전은 입력할 필요가 없습니다.

스프링 부트가 알아서 권장버전으로 관리해주니까요! 😎🏝️

 

Finish를 누르면 바로 개발을 시작할 수 있습니다.

참 간단하죠? 출처:giphy

 

 

 

 

 

🎺 디랙터리 구조 비교

생성된 프로젝트를 보면 일단 web.xml이 없다는 걸 알 수 있습니다.

 

web.xml에는 서블릿 관련 구성에 대한 내용이 들어있고

서버가 url을 매칭할 때 구동해야하는 컨텍스트에 대한 설정을 갖고 있습니다.

 

그래서 이것을 대신하기 위해 기본 패키지 경로에는

ServletInitializer 클래스

프로젝트명Application 클래스가 자동 생성되어 있습니다.

 

web.xml을 대신해주는 클래스들

 

ServletInitializer 클래스는 서블릿을 초기화하는 설정 클래스인 SpringBootServletInitializer를 상속하고 있어서

서버 초기화 작업을 담당하게되며 프로젝트명Application 클래스를 톰캣에 소스로 제공합니다.

 

이어서 프로젝트명Application 클래스에는 @SpringBootApplication 어노테이션이 붙어서

현재 프로젝트를 스프링부트 어플리케이션으로 설정해 줍니다.

 

그리고 클래스 안에는 main메서드가 존재하는데 여기가 스프링 부트 프로젝트의 시작점입니다.

자바 프로그램을 구현하듯이 코드를 구성하겠다는 의도로 만들어졌으며

SpringApplication 클래스의 run메소드를 호출해 프로젝트명Application 클래스를 실행합니다.

 

 

추가로 각 클레스간에 데이터를 주고받을 때 인코딩 문제를 해결하려고

pom.xml에 filler설정을 추가한 일이 있습니다.

 

이처럼 어플리케이션의 설정을 정의하는 역활도 필요한데

스프링 부트에선 이 역활을 application.properties가 대신합니다.

어플리케이션 설정 정의 파일

 

모든 설정은 Key = Value 형태로 작성되며

 

주로 포트번호 변경과 contextPath설정과 같은 서버 설정

DB URL, 계정, 비번처럼 데이터베이스 연결에 필요한 세팅값

외부 API 값이나 사용자 정의 값 등 다양한 설정값을 넣어둘 수 있습니다.

 

 

 

 

 

🔥 결론

이렇게 스프링 부트로 인해 프로젝트를 쉽게 만들고 매핑도 쉽게 할 수 있게 되었습니다.

 

이젠 왠만해선 404 에러를 볼 일이 없네요.

 

여유롭게 커피 한 잔~ 출처:giphy

 

 

 

이제 남은 건 프로젝트를 만드는 것 뿐...!

 

뭘 만들지 얼른 생각해 봐야겠네요~ㅎㅎ (그나저나 다음주부턴 뭘 쓰지..?🫠)

반응형