티스토리 뷰

반응형

SPRING INITIALIZR 웹페이지에서 의존성(Dependencies)을 선택하면 어떤 일이 발생하는지 알아보고자 합니다.


1. Web 추가하기

먼저 SPRING INITIALIZR 사이트의 기본값을 그대로 유지한 채 프로젝트를 하나 생성한 뒤, Web(Full-stack web development with Tomcat and Spring MVC) 항목을 선택한 뒤 프로젝트를 생성해서 둘을 비교해보았습니다.



뭔가 좀 익숙한 모양일 겁니다. 바로 Project Metadata 변경에서 PackagingWar 로 선택했을 때와 거의 유사하다는 것을 알 수 있을 겁니다.

그런데 분명 설명에는 Tomcat 을 이용한다고 했는데 War 로 선택했을 때 존재하던 Tomcat 관련 내용은 추가되지 않았습니다. 이유는 추가된 spring-boot-starter-web 에 Tomcat 관련된 것이 이미 포함되어 있기 때문입니다. 이 부분에 대한 자세한 설명은 IDE 을 이용해서 좀 더 분석할 기회가 있을 때 설명하도록 하겠습니다.


2. Lombok 추가하기

Core 영역에 Lombok(Java annotation library which helps to reduce boilerplate code and code faster) 이라는 항목이 존재합니다. Lombok 을 모르시는 분이 계신다면 굳이 Spring Boot 가 아니라도 Java 로 개발할 때 매우 편리한 기능을 제공하기 때문에 IDE 을 이용해서 개발할 때에는 꼭 이용하시길 권합니다.

Lombok 을 추가로 선택한 뒤 다시 프로젝트를 생성해서 처음 demo 프로젝트와 비교해보았습니다.



뭔가 차이가 없어 보입니다. 딱 하나, pom.xml 파일의 변경점이 1 개에서 2 개로 늘어난 것 뿐입니다.
파일에서 변경된 것이 무엇인지 확인해보겠습니다.



기존의 spring-boot-starter-web 이 추가된 것 외에 Lombok 관련 의존성 내용이 추가되었습니다.

Web 와 Lombok 이 추가된 Maven 의 의존성 전체 내용은 아래와 같습니다.

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

즉, SPRING INITIALIZR 에서 선택한 의존성은 Spring Boot 에서 제공하는 라이브러리이건 외부에서 제공하는 것이건 Maven 저장소를 이용해서 내려받을 수 있도록 설정 정보를 추가됩니다. 그리고 Maven 혹은 Gradle 에서 필요한 라이브러리를 다운로드 받아서 프로젝트를 실행할 수 있도록 구성하게 되는 것입니다.

NOTE: <dependency> 에 <version> 이 왜 없는지에 대한 궁금증은 Mavne 의 <parent> 가 어떤 역할인지 모르기 때문이므로 Maven 에 대해서 좀 더 공부하면 의문을 해결할 수 있습니다. 이는 Spring Boot 의 문제가 아니므로 여기서 설명하지 않겠습니다.


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함