πŸ—ƒοΈ ν”„λ‘œμ νŠΈ 배포 μ€€λΉ„

김민식·2023λ…„ 11μ›” 28일
0
post-thumbnail

πŸ—ƒοΈ 배포 μ€€λΉ„: ν”„λ‘œλ•μ…˜ ν™˜κ²½μ„ μœ„ν•œ λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€




React μ•± λΉŒλ“œ

  • λͺ©μ  : ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— λ°°ν¬ν•˜κΈ° μœ„ν•΄ React 앱을 μ΅œμ ν™”ν•˜κ³ , λͺ¨λ“  ν•„μš”ν•œ νŒŒμΌμ„ ν•˜λ‚˜μ˜ 디렉토리에 λͺ¨μœΌλŠ” 것
  • 방법 :
    • 이 λͺ…령은 μ½”λ“œλ₯Ό μ΅œμ†Œν™”(minification)ν•˜κ³ , λͺ¨λ“  정적 νŒŒμΌμ„ build 디렉토리에 λͺ¨μŒ
npm run build # or yarn build
  • μ£Όμ˜μ‚¬ν•­ :
    • ν™˜κ²½ λ³€μˆ˜ (예: API μ—”λ“œν¬μΈνŠΈ)λŠ” ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— 맞게 μ„€μ •ν•΄μ•Ό 함


Java Spring Boot μ•± νŒ¨ν‚€μ§•

  • λͺ©μ  : Spring Boot 앱을 μžκ°€ μ‹€ν–‰ κ°€λŠ₯ν•œ JAR λ˜λŠ” WAR 파일둜 νŒ¨ν‚€μ§•ν•˜μ—¬ 배포 μ€€λΉ„
  • 방법 :
    • νŒ¨ν‚€μ§• κ³Όμ •μ—μ„œ ν•„μš”ν•œ λͺ¨λ“  μ˜μ‘΄μ„±μ„ ν¬ν•¨ν•˜λŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ JAR 파일이 생성
mvn package # Maven μ‚¬μš© μ‹œ
gradle build # Gradle μ‚¬μš© μ‹œ
  • μ£Όμ˜μ‚¬ν•­ :
    • ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— λ§žλŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ •, 포트 μ„€μ • λ“±μ˜ ν™˜κ²½ 섀정이 ν•„μš”



배포 지원 도ꡬ : AWS, Heroku, Docker


AWS (Amazon Web Services)

배포λ₯Ό μœ„ν•œ κ³΅κ°„λ§Œ λŒ€μ—¬, ν”„λ‘œμ νŠΈμ— κ΄€ν•œ λͺ¨λ“  μ…‹νŒ…μ„ 직접 해야함 -> IaaS

  • μž₯점 :
    • 높은 ν™•μž₯μ„±κ³Ό μœ μ—°μ„±
    • EC2, S3, RDS λ“± λ‹€μ–‘ν•œ μ„œλΉ„μŠ€ 제곡
    • λΉ„μš©μ΄ μ €λ ΄
  • 단점 :
    • μ„€μ •κ³Ό 관리가 λ³΅μž‘ν•¨



Heroku

μ™„μ„±ν˜• μ„œλ²„ 배포 ν”Œλž«νΌ, μ½”λ“œλ§Œ μžˆλ‹€λ©΄ 도메인(URL)κ³Ό 기타 μžμ›λ“€μ„ 제곡 -> Paas

  • μž₯점 :
    • μ‚¬μš©μ΄ κ°„νŽΈν•˜κ³  λΉ λ₯Έ 배포 κ°€λŠ₯
    • 무료 ν‹°μ–΄ 제곡
  • 단점 :
    • ν™•μž₯μ„±κ³Ό μ»€μŠ€ν„°λ§ˆμ΄μ§•μ— μ œν•œ (νŒ¨ν‚€μ§€ 버젼 ...)
    • λΉ„μš©μ΄ λΉ„μŒˆ



Docker

μ†Œν”„νŠΈμ›¨μ–΄ μ»¨ν…Œμ΄λ„ˆν™” ν”Œλž«νΌ, μ–΄λ–€ ν™˜κ²½μ΄λ“  μΌκ΄€λœ λ™μž‘μ„ 보μž₯, ν΄λΌμš°λ“œ μ„œλΉ„μŠ€ λͺ¨λΈλ³΄λ‹€λŠ” 개발 및 배포의 νš¨μœ¨μ„±μ„ λ†’μ΄λŠ” 기술

  • μž₯점 :
    • ν™˜κ²½ 일관성 보μž₯
    • μ—¬λŸ¬ ν™˜κ²½μ—μ„œ μ‰½κ²Œ 배포 κ°€λŠ₯
  • 단점 :
    • μ»¨ν…Œμ΄λ„ˆ 관리에 λŒ€ν•œ μΆ”κ°€ 지식 ν•„μš”
    • λ³΄μ•ˆ 섀정에 주의 ν•„μš”



CI/CD νŒŒμ΄ν”„λΌμΈ: Jenkins, GitHub Actions

CI/CD (Continuous Integration, 지속 톡합 / Continuous Deployment, 지속배포)

Jenkins

Java둜 μž‘μ„±λœ μ˜€ν”ˆμ†ŒμŠ€ μžλ™ν™” μ„œλ²„μ΄λ©°, CI/CD νŒŒμ΄ν”„λΌμΈμ„ κ΅¬μΆ•ν•˜λŠ” 데 널리 μ‚¬μš©

  • μž₯점 :
    • κ°•λ ₯ν•œ μžλ™ν™”μ™€ μ»€μŠ€ν„°λ§ˆμ΄μ§• κ°€λŠ₯
    • λ‹€μ–‘ν•œ ν”ŒλŸ¬κ·ΈμΈ 제곡
  • 단점:
    • μ„€μ •κ³Ό 관리가 λ³΅μž‘ν•¨
    • 초기 섀정에 μ‹œκ°„ μ†Œμš”



GitHub Actions

GitHub의 CI/CD ν”Œλž«νΌμœΌλ‘œ, GitHub μ €μž₯μ†Œλ₯Ό 기반으둜 μ†Œν”„νŠΈμ›¨μ–΄ 개발 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μžλ™ν™”

  • μž₯점 :
    • GitHub μ €μž₯μ†Œμ™€ 톡합 용이
    • κ°„λ‹¨ν•˜κ³  λΉ λ₯Έ μ„€μ •
  • 단점 :
    • λ³΅μž‘ν•œ μ›Œν¬ν”Œλ‘œμš°μ— ν•œκ³„
    • Jenkins에 λΉ„ν•΄ λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œμ—μ„œ μ œν•œμ 

0개의 λŒ“κΈ€