Home > Backend Development > ๐Ÿ“š[Backend Development] Build system์˜ ๊ทธ๋ ˆ์ด๋“ค๊ณผ ๋ฉ”์ด๋ธ์˜ ์ฐจ์ด

๐Ÿ“š[Backend Development] Build system์˜ ๊ทธ๋ ˆ์ด๋“ค๊ณผ ๋ฉ”์ด๋ธ์˜ ์ฐจ์ด
Backend Ddevelopment Database Server Build System

โ€œ๐Ÿ“š[Backend Development] Build system์˜ ๊ทธ๋ ˆ์ด๋“ค๊ณผ ๋ฉ”์ด๋ธ์˜ ์ฐจ์ดโ€

Gradle๊ณผ Maven์€ ๋ชจ๋‘ Java ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
๋‘˜ ๋‹ค ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ์ฒ ํ•™๊ณผ ์‚ฌ์šฉ ๋ฐฉ์‹, ์„ฑ๋Šฅ, ์œ ์—ฐ์„ฑ ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… Gradle vs Maven: ํ•ต์‹ฌ ์ฐจ์ด์  ๋น„๊ต.

ํ•ญ๋ชฉ Gradle Maven
๋นŒ๋“œ ์–ธ์–ด Groovy ๋˜๋Š” Kotilin DSL ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ XML(pom.xml)
๊ตฌ๋ฌธ ์œ ์—ฐํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ DSL ์„ ์–ธ์ ์ด๊ณ  ์ •ํ˜•ํ™”๋œ ๊ตฌ์กฐ
์„ฑ๋Šฅ ๋น ๋ฆ„ (Incremental Build, Daemon, Build Cache) ๋น„๊ต์  ๋А๋ฆผ (๋ชจ๋“  ์ž‘์—… ๋‹ค์‹œ ์ˆ˜ํ–‰)
์˜์กด์„ฑ ๊ด€๋ฆฌ Gradle์˜ dependencies ๋ธ”๋Ÿญ์œผ๋กœ ์„ ์–ธ Maven์˜ <dependencies> ๋ธ”๋Ÿญ ์‚ฌ์šฉ
์‚ฌ์šฉ์„ฑ ๋ณต์žกํ•œ ๋กœ์ง/์กฐ๊ฑด ์ฒ˜๋ฆฌ์— ์œ ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•ด ์ž…๋ฌธ์ž์—๊ฒŒ ์ ํ•ฉ
๋นŒ๋“œ ์†๋„ โœ… ๋น ๋ฆ„(์บ์‹ฑ, ๋ณ‘๋ ฌ ๋นŒ๋“œ) โŒ ๋А๋ฆผ
์ƒํƒœ๊ณ„ ํ†ตํ•ฉ Android, Kotilin ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์— ๊ฐ•ํ•จ Java, Spring ๋“ฑ Java ์ƒํƒœ๊ณ„์— ๊ฐ•ํ•จ
ํ™•์žฅ์„ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ๋ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์šฉ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„๋Š” ์žˆ์ง€๋งŒ ์ œํ•œ์ 
์„ค์ • ํŒŒ์ผ build.gradle ๋˜๋Š” build.gradle.kts pom.xml

๐Ÿ” ์˜ˆ์ œ ๋น„๊ต

Maven(pom.xml)

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

Gradle (build.gradle)

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
}

โœ… ์„ ํƒ ๊ธฐ์ค€(์‹ค๋ฌด ๊ธฐ์ค€)

์ƒํ™ฉ ์ถ”์ฒœ ๋นŒ๋“œ ๋„๊ตฌ
๋‹จ์ˆœํ•œ Java/Spring ํ”„๋กœ์ ํŠธ Maven(๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•˜๊ณ  ์•ˆ์ •์ )
๋นŒ๋“œ ์†๋„ ์ค‘์‹œ, Android ํ”„๋กœ์ ํŠธ, ์œ ์—ฐ์„ฑ ํ•„์š” Gradle(์œ ์—ฐํ•˜๊ณ  ๋น ๋ฆ„)
CI/CD ํŒŒ์ดํ”„๋ผ์ธ ํ†ตํ•ฉ ๋‘˜ ๋‹ค ์ง€์›๋˜์ง€๋งŒ, Gradle์€ ๋” ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ
๋ณต์žกํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ, ๋ชจ๋“ˆํ™”, ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ํ•„์š” Gradle(์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ ์œ ๋ฆฌ)

๐Ÿ“ ์š”์•ฝ

Gradle Maven
DSL ๊ธฐ๋ฐ˜, ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•จ XML ๊ธฐ๋ฐ˜, ์•ˆ์ •์ ์ด๊ณ  ๊ตฌ์กฐ์ 
๋นŒ๋“œ ์†๋„ ๋น ๋ฆ„(์บ์‹ฑ, ๋ณ‘๋ ฌ) ๋А๋ฆฌ์ง€๋งŒ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹
ํ•™์Šต ๋‚œ์ด๋„ ์žˆ์Œ ์ž…๋ฌธ์ž์—๊ฒŒ ์นœ์ˆ™