เญจโ”ˆโ”ˆโ”ˆ Web โ”ˆโ”ˆโ”ˆเญง/โ†˜ SpringBoot

[Gradle] implementation, runtimeOnly, compileOnly ์ฐจ์ด์ 

๋นต๋นต์ƒˆ 2022. 6. 26. 16:00

spring boot ํ”„๋กœ์ ํŠธ์—์„œ DB ์„ธํŒ…์„ ํ•˜๋‹ค๊ฐ€ ์•„๋ž˜ gradle ์„ค์ •์— ๋Œ€ํ•ด ์˜๋ฌธ์ด ์ƒ๊ฒผ๋‹ค.

implementation 'org.postgresql:postgresql'
runtimeOnly 'org.postgresql:postgresql'

implementation์€ ์ž์ฃผ ์“ฐ๋Š”๋ฐ runtimeOnly์™€ compileOnly์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์‚ฌ์šฉ ์‹œ์ ์ด ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

 

Classpath

Classpath๋Š” ํด๋ž˜์Šค๋‚˜ jar ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ์œ„์น˜์ด๋‹ค.

ํฌ๊ฒŒ complileClasspath, runtimeClasspath๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค.

compileClasspath๋Š” ์—๋Ÿฌ์—†์ด ์ปดํŒŒ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํด๋ž˜์Šค์™€ jar ํŒŒ์ผ์ด ์œ„์น˜ํ•œ๋‹ค.

runtimeClasspath๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํด๋ž˜์Šค์™€ jar์˜ ๊ฒฝ๋กœ์ด๋‹ค.

 

implementation

- ์ง์ ‘์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ๊นŒ์ง€๋งŒ ๋ฆฌ๋นŒ๋“œ

 

compileOnly

- ์ปดํŒŒ์ผ ์‹œ์ ์—๋งŒ ๊ผญ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ช…์‹œ

- ์ปดํŒŒ์ผ ์ดํ›„ ์‹คํ–‰ํ•  ๋•Œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”์—†์„ ๋•Œ ์‚ฌ์šฉ

- ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ค„์–ด๋“œ๋Š” ์žฅ์ ์ด ์žˆ์Œ

- ex) lombok dependency

 

runtimeOnly

- ์‹คํ–‰ ์‹œ์ ์—๋งŒ ์‚ฌ์šฉ

- ์ปดํŒŒ์ผ ์‹œ์ ์—๋Š” ํ•„์š”์—†์ง€๋งŒ ์‹คํ–‰ ์‹œ์ ์— ๊ผญ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ช…์‹œ

- ํ•ด๋‹น ํด๋ž˜์Šค์—์„œ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•ด๋„ ์ปดํŒŒ์ผ์„ ๋‹ค์‹œ ํ•˜์ง€ ์•Š์•„๋„ ๋จ

- ex) DB๋‚˜ ๋กœ๊ทธ ๊ด€๋ จ dependency

 

์ด๋ก ์ ์œผ๋กœ ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€๋Š” ๋Œ€์ถฉ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค.

์•ž์œผ๋กœ ์„ค์ • ํŒŒ์ผ์—์„œ ์˜์กด์„ฑ ๊ฑด๋“œ๋ฆด ๋•Œ classpath์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ์œ ์‹ฌํžˆ ๋ณด๋ฉด์„œ ๋” ์ดํ•ดํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ์•Œ๊ฒŒ ๋˜๋Š” ์‚ฌ์‹ค์ด ์žˆ๋‹ค๋ฉด ๋‚ด์šฉ์„ ์ถ”ํ›„์— ์ถ”๊ฐ€ํ•˜๊ฒ ๋‹ค.