배포 ν”„λ‘œμ„ΈμŠ€ μž‘κ²Œ κ°œμ„ ν•΄λ³΄κΈ°

문제점

졜근 μ—¬λŸ¬ νŒ¨ν‚€μ§€λ₯Ό λ¬Άμ–΄ λ°μŠ€ν¬ν†± μ•±κΉŒμ§€ νŒ¨ν‚€μ§• ν•˜λŠ” 배포 μž‘μ—…μ„ μ§„ν–‰ν•˜λ©΄μ„œ κ°€μž₯ κ³ λ―Όλ˜μ—ˆλ˜ 뢀뢄이 버전 κ΄€λ¦¬μ˜€λ‹€. 우리 ν”„λ‘œμ νŠΈλŠ” μ›Ή λΉŒλ“œλ§ŒμœΌλ‘œ λλ‚˜λŠ” ꡬ쑰가 μ•„λ‹ˆλΌ μ΅œμ’…μ μœΌλ‘œ Electron 기반 λ°μŠ€ν¬ν†± μ•±κΉŒμ§€ 생성해야 ν•˜λŠ”λ°, λ°μŠ€ν¬ν†± μ•±μ˜ 버전, 배포 ν›„ λ…Έμ…˜μ— μ •λ¦¬ν•˜λŠ” μ—¬λŸ¬ 배포 μ •λ³΄κΉŒμ§€ λͺ¨λ‘ μˆ˜λ™μœΌλ‘œ κ΄€λ¦¬ν•˜κ³  μžˆμ—ˆλ‹€. μ΄ˆκΈ°μ—λŠ” 큰 λ¬Έμ œκ°€ μ—†μ—ˆμ§€λ§Œ μž‘μ—…λŸ‰μ΄ λŠ˜μ–΄λ‚ μˆ˜λ‘ 뢀담도 ν•¨κ»˜ 컀쑌고, νŒ€μ—μ„œλ„ λ™μΌν•œ 뢈편이 반볡적으둜 μ–ΈκΈ‰λ˜λ©΄μ„œ 더 효율적인 방식이 ν•„μš”ν•˜λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.

여기에 아직 ν™•λ¦½λœ 버전 체계도 μ—†λŠ” μƒνƒœμ˜€λ‹€. 초기 μŠ€νƒ€νŠΈμ—… νŠΉμ„±μƒ κ³ κ°μ‚¬μ˜ μš”μ²­μ— 따라 κΈ°λŠ₯을 λΉ λ₯΄κ²Œ μ»€μŠ€ν…€ν•˜κ±°λ‚˜ POCλ₯Ό λ°˜λ³΅ν•˜λŠ” 일이 λ§Žμ•„, ν•˜λ‚˜μ˜ κΈ°λŠ₯을 κΈ°μ€€μœΌλ‘œ μ—¬λŸ¬ 버전이 κ³„μ†ν•΄μ„œ μƒμ„±λ˜λŠ” μƒν™©μ΄μ—ˆλ‹€. λ”λΆˆμ–΄ μ–΄λ–€ λ°°ν¬λŠ” dev ν™˜κ²½μ„ λŒ€μƒμœΌλ‘œ, μ–΄λ–€ λ°°ν¬λŠ” prd ν™˜κ²½μ„ λ°”λΌλ³΄λŠ” λ“± ν™˜κ²½ 섀정도 μΌμ •ν•˜μ§€ μ•Šμ•„ ν˜Όλž€μ΄ μƒκΈ°λŠ” κ²½μš°λ„ λ§Žμ•˜λ‹€.

이런 상황이 κ²ΉμΉ˜λ©΄μ„œ 버전이 μŒ“μΌμˆ˜λ‘ “λˆ„κ°€, 무엇을, μ–΄λ–€ λ²„μ „μœΌλ‘œ, μ–΄λ–€ ν™˜κ²½μ—, μ–΄λ–€ λ””λ°”μ΄μŠ€μ— λ°°ν¬ν–ˆλŠ”μ§€” μ •ν™•ν•˜κ²Œ μΆ”μ ν•˜κΈ°κ°€ 점점 μ–΄λ €μ›Œμ‘Œκ³  이런 방식을 κ°œμ„ ν•΄ 보고자 κ°„λ‹¨ν•œ 배포 봇을 ν•˜λ‚˜ λ§Œλ“€μ—ˆλ‹€

1) 버전 μžλ™ μ—…λ°μ΄νŠΈ

yarn build <package> <command> -v 2.3.0

-v μ˜΅μ…˜μ΄ λ“€μ–΄κ°€λ©΄ μžλ™μœΌλ‘œ 버전 μ—…λ°μ΄νŠΈ λͺ¨λ“œλ‘œ λ™μž‘ν•œλ‹€.

  • μ›Ή νŒ¨ν‚€μ§€μ˜ 버전을 올리면
  • λ°μŠ€ν¬ν†± μ•±μ˜ 버전에도 반영되고
  • μ΅œμ’… μ„€μΉ˜ 파일의 λ²„μ „κΉŒμ§€ ν•¨κ»˜ λ§žμΆ°μ•Ό ν•œλ‹€

κΈ°μ‘΄μ—λŠ” 이 과정을 λͺ¨λ‘ 직접 챙겨야 ν–ˆμ§€λ§Œ, μŠ€ν¬λ¦½νŠΈκ°€ μ²˜λ¦¬ν•˜λ„λ‘ λ§Œλ“€μ—ˆλ‹€.

2) CLI μž…λ ₯ μΈν„°λž™μ…˜

버전이 μ˜¬λΌκ°€λŠ” λ°°ν¬λŠ” λ°˜λ“œμ‹œ ν•„μš”ν•œ 정보듀이 μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ—, μ•„λž˜ ν•­λͺ©μ„ CLIμ—μ„œ 순차적으둜 μž…λ ₯받도둝 ν–ˆλ‹€.

  • 배포 ν™˜κ²½(dev / prd)
  • μ„€μΉ˜λœ λ””λ°”μ΄μŠ€ 번호
  • 배포 λŒ€μƒ(지점λͺ…·μ‚¬μ—…λͺ… λ“±)
  • 배포자
  • 컀밋 ν•΄μ‹œ(HEAD → μ•ž 7자리)

3) Slack Webhook μ•Œλ¦Ό

μˆ˜μ§‘ν•œ μ •λ³΄λŠ” Slack Webhook을 톡해 μžλ™μœΌλ‘œ 배포 둜그둜 남긴닀. λ©”μ‹œμ§€μ—λŠ” μ•„λž˜ λ‚΄μš©μ΄ ν¬ν•¨λœλ‹€.

  • νŒ¨ν‚€μ§€ 이름 
  • 버전
  • 배포 ν™˜κ²½(dev/prd)
  • μ„€μΉ˜λœ λ””λ°”μ΄μŠ€ 번호
  • 배포 λŒ€μƒ
  • 배포자
  • 컀밋 ν•΄μ‹œ(7자리)

-----

λ‹€ν–‰νžˆ νŒ€μ› λͺ¨λ‘ 이 κ°œμ„  방식을 κΈμ •μ μœΌλ‘œ λ°›μ•„λ“€μ˜€κ³  덕뢄에 λ°”λ‘œ λ„μž…ν•  수 μžˆμ—ˆλ‹€. 아직 전체 배포 ν”„λ‘œμ„ΈμŠ€μ—λŠ” 닀듬어야 ν•  뢀뢄이 λ§Žμ§€λ§Œ, μ™„λ²½ν•œ ꡬ쑰λ₯Ό ν•œ λ²ˆμ— λ§Œλ“€κΈ°λ³΄λ‹€ μ§€κΈˆ λ‹Ήμž₯ λΆˆνŽΈν•œ 지점을 μž‘μ€ λ‹¨μœ„λ‘œλΌλ„ κ°œμ„ ν•΄ λ‚˜κ°€λŠ” 것이 더 ν˜„μ‹€μ μ΄λΌκ³  λŠκΌˆλ‹€. 항상 λͺ¨λ“  κ°œμ„ μ— κΈμ •μ μœΌλ‘œ λ°˜μ‘ν•΄μ£ΌλŠ” νŒ€μ›λ“€ 덕뢄에 λ‚˜λ„ 계속 더 λ‚˜μ€ 방식듀을 κ³ λ―Όν•΄ λ³Ό 수 μžˆλŠ” 것 κ°™λ‹€. πŸ™‚