์คํ๋ง ๋ถํธ์ ์์กด์ฑ ๊ด๋ฆฌ(Dependency Management)
๊ธฐ๋ณธ์ ์ธ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ pom.xml ํ์ผ์ ๋ณด๋ฉด ์์กด์ฑ ์ค์ ์ด spring-boot-starter-web๊ณผ spring-boot-starter-test ๋ ๊ฐ ๋ฟ์ด๊ณ ๋ฒ์ ๋ํ ๋ช ์ํ์ง ์๊ณ ์์ง๋ง ์ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์์์ ๊ฐ์ ธ์จ๋ค.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
์ด๊ฒ์ด ๊ฐ๋ฅํ ์ด์ ๋ ์คํ๋ง ๋ถํธ๊ฐ ์ ๊ณตํ๋ ์์กด์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ ๋๋ฌธ์ด๋ค.
๊ธฐ๋ณธ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ spring-boot-starter-parent๊ฐ parent pom์ผ๋ก ์ค์ ๋์ด ์๋ค.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
์ด parent pom์ ํ์ธํด๋ณด๋ฉด spring-boot-dependencies๋ฅผ ๋ค์ parent๋ก ์ค์ ํ๊ณ ์๋ค.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
์ฆ maven pom ์์ ๊ตฌ์กฐ๊ฐ [๊ธฐ๋ณธ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ] - [spring-boot-starter-parent] - [spring-boot-dependencies] ์์ผ๋ก ๋์ด์๋ ๊ฒ์ด๋ค.
์ด ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ ์ต์๋จ์ ์๋ spring-boot-dependencies pom์ <properties>์ <dependencyManagement>์ ๊ฐ์ ธ์ฌ ์์กด์ฑ๊ณผ ๋ฒ์ ์ด ๋ช ์๋์ด์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ pom.xml์ ์ง์ ๋ฒ์ ์ ๋ช ์ํ์ง ์์๋ spring-boot-dependencies์์ ๊ด๋ฆฌํด์ฃผ๋ ๋ฒ์ ์ ์์์ ๊ฐ์ ธ์ค๊ฒ ๋๋ค.
์ฐธ๊ณ ๋ก IntelliJ์์๋ pom.xml์ ์ผ์ชฝ์ ํ์๋๋ ์์ด์ฝ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋ณด๋ฉด ๋ฌด์จ ๋ฒ์ ์ ์ฌ์ฉํ๋์ง ์๋ ค์ค๋ค.
์คํ๋ง ๋ถํธ๊ฐ ์ ๊ณตํด์ฃผ๋ ์์กด์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ง์ ๊ด๋ฆฌํด์ผํ๋ ์์กด์ฑ์ ์๊ฐ ์ค์ด๋ ๋ค.
- ์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ฒ์ ์ถฉ๋ ์ด์๊ฐ ํด๊ฒฐ๋๋ค.
References
์ธํ๋ฐ - ๋ฐฑ๊ธฐ์ ๋์ ์คํ๋ง ๋ถํธ ๊ฐ๋ ๊ณผ ํ์ฉ
๋๊ธ