Home > CS > 2024 > ๐Ÿ’พ [CS] Artifact(์•„ํ‹ฐํŒฉํŠธ)๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

๐Ÿ’พ [CS] Artifact(์•„ํ‹ฐํŒฉํŠธ)๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?
CS

๐Ÿ’พ [CS] Artifact(์•„ํ‹ฐํŒฉํŠธ)๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

  • Artifact๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋นŒ๋“œ๋‚˜ ๋ฐฐํฌ์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ์ง€์นญํ•˜๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ์ž‘์—…์˜ ์‚ฐ์ถœ๋ฌผ๋กœ, ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋‚˜ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋ณ€ํ™˜๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • Artifact๋Š” ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๊ทธ๋ฆฌ๊ณ  ํŒจํ‚ค์ง• ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

1๏ธโƒฃ Artifact์˜ ์ฃผ์š” ์˜ˆ.

1๏ธโƒฃ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ.

  • .jar, .war, .ear ํŒŒ์ผ(Java).
  • .dll(Windows ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ).
  • .exe(์‹คํ–‰ ํŒŒ์ผ).

2๏ธโƒฃ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ.

  • ์™ธ๋ถ€์—์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ .jar ๋˜๋Š” .so ์™€ ๊ฐ™์€ ํŒŒ์ผ.

3๏ธโƒฃ ์„ค์น˜ ํŒจํ‚ค์ง€.

  • ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋ฐฐํฌ๋ฌผ(์˜ˆ: .deb, .rpm, .msi, .apk, ,ipa).

4๏ธโƒฃ ํ…Œ์ŠคํŠธ ๋ฆฌํฌํŠธ.

  • ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์ค‘ ์ƒ์„ฑ๋œ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ํŒŒ์ผ(HTML, XML ๋“ฑ).

5๏ธโƒฃ ์†Œ์Šค ์ฝ”๋“œ ๋ฒˆ๋“ค.

  • ๋ฐฐํฌ ๋˜๋Š” ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•ด ํฌํ•จ๋œ ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ.

6๏ธโƒฃ ๋„ํ๋ฉ˜ํŠธ.

  • ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ, API ์„ค๋ช…์„œ(์˜ˆ: Javadoc, Markdown ํŒŒ์ผ)

2๏ธโƒฃ Artifact์˜ ํ™œ์šฉ.

1๏ธโƒฃ CI/CD ํŒŒ์ดํ”„๋ผ์ธ.

  • Continuous Integration/Continuous Deployment(CI/CD) ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ดํ›„ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ.

  • ์ƒ์„ฑ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด Artifactory, Nexus Repository, GitHub Packages ๊ฐ™์€ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ๋ฐฐํฌ ๋ฐ ์‹คํ–‰.

  • ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

4๏ธโƒฃ ๋ฒ„์ „ ๊ด€๋ฆฌ.

  • ์•„ํ‹ฐํŒฉํŠธ๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ์ถ”์ ๋˜๋ฉฐ, ํŠน์ • ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ์•„ํ‹ฐํŒฉํŠธ์˜ ์ค‘์š”์„ฑ.

  • ์žฌํ˜„์„ฑ : ๋™์ผํ•œ ์†Œ์Šค ์ฝ”๋“œ๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
  • ์ด์‹์„ฑ : ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ์ด๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์— ๋ฐฐํฌ ๊ฐ€๋Šฅ.
  • ์ถ”์  ๊ฐ€๋Šฅ์„ฑ : ํŠน์ • ๋ฒ„์ „์˜ ์†Œ์Šค ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Œ.
  • ์ž๋™ํ™” ์ง€์› : CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ์š”์†Œ.

4๏ธโƒฃ ์˜ˆ์ œ: Java ํ”„๋กœ์ ํŠธ์—์„œ ์•„ํ‹ฐํŒฉํŠธ.

1๏ธโƒฃ Maven ํ”„๋กœ์ ํŠธ.

  • Maven ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด pom.xml์— ์ •์˜๋œ ๋Œ€๋กœ .jar ๋˜๋Š” .war ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    mvn package
    
  • ์‹คํ–‰ ๊ฒฐ๊ณผ: target/myapp-1.0.jar(์•„ํ‹ฐํŒฉํŠธ)

2๏ธโƒฃ Gradle ํ”„๋กœ์ ํŠธ.

  • Gradle์—์„œ๋Š” build.gradle ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œํ•œ ๋’ค .jar ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    gradle build
    
  • ์‹คํ–‰ ๊ฒฐ๊ณผ: build/libs/myapp-1.0.jar(์•„ํ‹ฐํŒฉํŠธ)

5๏ธโƒฃ ์š”์•ฝ.

  • ์•„ํ‹ฐํŒฉํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ํŒจํ‚ค์ง• ๋“ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ํ•ต์‹ฌ ์‚ฐ์ถœ๋ฌผ์ž…๋‹ˆ๋‹ค.
    • ์ด๋Š” ๋ฐฐํฌ์™€ ์‹คํ–‰์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํ™˜๊ฒฝ(CI/CD)์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.