Skip to main content

πŸ“– λ°•λ―Έμ •μ˜ κΉƒ&κΉƒν—ˆλΈŒ μž…λ¬Έ

Chanho Lee
λ‹€μ–‘ν•œ λΆ„μ•Όλ₯Ό κ³΅λΆ€ν•˜κ³  μžˆλŠ” 학생
info

κ³¨λ“ λž˜λΉ— μΆœνŒμ‚¬λ‘œλΆ€ν„° 책을 μ œκ³΅λ°›μ•„ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

ℹ️Book Info​

tip

μ±… 이미지λ₯Ό ν΄λ¦­ν•˜λ©΄ ꡐ보문고 μ‚¬μ΄νŠΈλ‘œ μ΄λ™ν•©λ‹ˆλ‹€!

μ±…

  • 제λͺ©: λ°•λ―Έμ •μ˜ κΉƒ&κΉƒν—ˆλΈŒ μž…λ¬Έ
  • μ €μž: λ°•λ―Έμ •
  • μΆœνŒμ‚¬: κ³¨λ“ λž˜λΉ—
  • μΆœκ°„: 2021-09-13

🎬Intro​

이 μ±…μ˜ μ €μžλŠ” 페이슀뢁 μ–Όλ˜(Early 또라이) 그룹을 μš΄μ˜ν•˜μ‹œλŠ” μš΄μ˜μ§„ 쀑 ν•œ 뢄이며, λ°°λ―Ό λ² νŠΈλ‚¨μ„ 거쳐 ν˜„μž¬ 무신사에 계신 λ°•λ―Έμ • λ‹˜μ΄λ‹€. 정말 배울 점이 λ§Žλ‹€κ³  μƒκ°ν•˜λŠ” 개발자 λΆ„ 쀑 ν•œ 뢄이닀. κΈ°νšŒκ°€ λœλ‹€λ©΄ νƒˆμž‰μ—μ„œ **μ„±μž₯ν•˜λŠ” 개발자의 '곡유의 기술'**μ΄λΌλŠ” 주제둜 λ°œν‘œν•˜μ‹  μ›”κ°„ μ½”λ“œλ¦¬λ·° ver_0.1: 컀리어 μ„±μž₯ CODEλ₯Ό λ³΄λŠ” 것도 κ°œλ°œμžλ‘œμ„œ μ„±μž₯ν•˜λŠ”λ° 도움이 될 것이닀.

책이 μΆœκ°„λ˜κΈ° μ „ 베타리더λ₯Ό λͺ¨μ§‘ν–ˆμ„ λ•Œ, μ €μžλ₯Ό ν–₯ν•œ 개인적인 νŒ¬μ‹¬μœΌλ‘œ μ‹ μ²­ν–ˆμœΌλ‚˜ λ–¨μ–΄μ‘Œμ—ˆλ‹€. κ·ΈλŸ¬λ‚˜ μΆœκ°„λœ 이후 κ³¨λ“ λž˜λΉ— μΆœνŒμ‚¬μ—μ„œ 뢁슀포일러λ₯Ό λͺ¨μ§‘ν–ˆκ³ , μ§€μ›ν•˜μ—¬ 이 책을 읽을 수 있게 됐닀. μ΄λ²ˆμ—λŠ” 개인적인 νŒ¬μ‹¬ λ•Œλ¬Έμ΄ μ•„λ‹ˆλΌ git을 ν™œμš©ν•˜μ—¬ ν˜‘μ—…ν•  쀄 μ•„λŠ” μ‚¬λžŒμ΄ 되고 μ‹Άλ‹€λŠ” 마음이 더 μ»Έλ‹€. λŒ€ν•™μ—μ„œ μ˜€ν”ˆμ†ŒμŠ€ κ΄€λ ¨ μˆ˜μ—…μ„ λ“€μ–΄ git의 κΈ°λŠ₯을 μ–΄λŠμ •λ„ ν™œμš©ν•  수 μžˆμ—ˆμ§€λ§Œ, λ‹¨μˆœνžˆ commit, push에 μ΅μˆ™ν•œ μ‚¬λžŒμ΄ μ•„λ‹ˆλΌ branch λ³€κ²½, merge, pull request λ“±μ˜ κΈ°λŠ₯을 μ“Έ 쀄 μ•„λŠ” ν˜‘μ—…μ— μ΅μˆ™ν•œ μ‚¬λžŒμ΄ 되고 μ‹Άμ—ˆλ‹€.

κ³¨λ“ λž˜λΉ— μΆœνŒμ‚¬μ—μ„œ λͺ¨μ§‘ν•˜λŠ” λΆμŠ€ν¬μΌλŸ¬λŠ” μ–΄λ–€ 책이 쒋은 책인지 μ§„μ†”ν•˜κ²Œ μ•Œλ €μ€˜ λ…μžκ°€ 쒋은 책을 선택할 수 있게 λ•λŠ” 슀포일러λ₯Ό μ˜λ―Έν•œλ‹€. 주둜 κ³¨λ“ λž˜λΉ— μΆœνŒμ‚¬μ˜ 페이슀뢁 νŽ˜μ΄μ§€ λ˜λŠ” 이메일을 톡해 λͺ¨μ§‘ν•˜λ―€λ‘œ μ›ν•˜λŠ” 주제의 책이라면 μ§€μ›ν•΄λ³΄λŠ” 것을 μΆ”μ²œν•œλ‹€.

πŸ“–Book Review​

μ‹œλ‚˜λ¦¬μ˜€β€‹

이 책은 μ‹œλ‚˜λ¦¬μ˜€λΌλŠ” λ‹€λ₯Έ μ±…κ³Ό κ΅¬λ³„λ˜λŠ” μž¬λ°ŒλŠ” 뢀뢄이 μžˆλ‹€. 말 κ·ΈλŒ€λ‘œ 각본이닀. 이전에 배운 λ‚΄μš©μ„ 기반으둜 ν˜„μ—…μ—μ„œ μ§„ν–‰λ˜λŠ” ν”„λ‘œμ νŠΈ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ·ΈλŒ€λ‘œ κ²½ν—˜ν•΄λ³Ό 수 μžˆλŠ” 뢀뢄이닀. 두 개의 μ‹œλ‚˜λ¦¬μ˜€κ°€ μ‘΄μž¬ν•˜λ©°, λ‹¨μˆœν•œ μ‹€μŠ΅μ΄ μ•„λ‹ˆλΌ μ§„μ§œ ν˜„μ—…μ—μ„œ 일어날 λ²•ν•œ μΌλ“€μ΄μ—ˆλ‹€. 특히 Node.js와 Expressλ₯Ό μ‚¬μš©ν•˜λŠ” 뢀뢄이 인상 κΉŠμ—ˆλ‹€. λ‹¨μˆœνžˆ λ§ˆν¬λ‹€μš΄ νŒŒμΌμ„ μˆ˜μ •ν•˜λŠ” μ‹€μŠ΅μ΄ μ•„λ‹ˆλΌμ„œ "μ‹œλ‚˜λ¦¬μ˜€μ— μ§„μ‹¬μ΄κ΅¬λ‚˜."라고 μƒκ°ν–ˆλ‹€. λ‹¨μˆœνžˆ μ„œλ²„λ₯Ό 켜고 localhostμ—μ„œ μˆ˜μ •μ‚¬ν•­μ„ ν™•μΈν•˜λŠ” 정도라 Node.js와 Express에 κ²½ν—˜μ΄ 없어도 따라할 수 μžˆλŠ” 예제둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.

κΉƒν—ˆλΈŒμ˜ μ΄μŠˆλ‚˜ ν”„λ‘œμ νŠΈ λ³΄λ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μ‹€μ œ μš”κ΅¬μ‚¬ν•­μ„ μ½”λ“œμ— λ°˜μ˜ν•˜λŠ” 과정을 λ³΄μ—¬μ€˜μ•Ό ν•˜λŠ”λ° .md 파일 μˆ˜μ •λ§ŒμœΌλ‘œλŠ” ν•œκ³„κ°€ μžˆμŠ΅λ‹ˆλ‹€.

배포 및 μžλ™ν™”β€‹

μœ„μ—μ„œλ„ μ–ΈκΈ‰ν–ˆλ“―μ΄ λ‹€λ₯Έ μ±… λ˜λŠ” κ°•μ˜μ—μ„œλŠ” Git, GitHub μ‹€μŠ΅μ„ κ°„λ‹¨ν•œ 파일 μˆ˜μ •μœΌλ‘œ μ§„ν–‰ν–ˆμ„ 텐데 이 μ±…μ—μ„œλŠ” Node.js 기반으둜 μ§„ν–‰λœλ‹€. κ·Έ μ΄μœ λŠ” μ•„λ§ˆ 'GitHub Actionsλ₯Ό μ΄μš©ν•΄λ³΄κΈ° μœ„ν•΄μ„œ'λΌλŠ” μ΄μœ λ„ μžˆμ—ˆμ§€ μ•Šμ•˜μ„κΉŒ μΆ”μΈ‘ν•΄λ³Έλ‹€. λŒ€λΆ€λΆ„μ˜ μ±…μ—μ„œ GitHub ActionsκΉŒμ§€ μ„€λͺ…ν•˜λŠ” κ²½μš°λŠ” λ“œλ¬Όλ‹€κ³  μƒκ°ν•˜κΈ°μ— μƒλ‹Ήνžˆ μΈμƒμ μ΄μ—ˆλ‹€.

GitHub Actions의 κ°„λ‹¨ν•œ μ‚¬μš©λ²•μ„ λ°°μ›Œλ³΄κ³  AWS ECS와 Azure Web App Service에 배포 μžλ™ν™”λ₯Ό μ„€μ •ν•΄λ³Έλ‹€. 이 뢀뢄은 μžμ„Έν•˜κ²Œ μ„€λͺ…ν•˜μ§€λŠ” μ•Šκ³ , '이런 방법도 μžˆλ‹€.'λΌλŠ” λŠλ‚ŒμœΌλ‘œ μ†Œκ°œν•œλ‹€. AWS, AzureκΉŒμ§€ μžμ„Ένžˆ μ„€λͺ…ν•˜λŠ” 것은 μ±…μ˜ 취지와 λ§žμ§€ μ•ŠκΈ°μ— κ°„λ‹¨ν•˜κ²Œ μ†Œκ°œλ˜μ–΄ μžˆλŠ” 것 κ°™λ‹€.

VSCode κΈ°λŠ₯ μ‚¬μš©ν•΄λ³΄κΈ°β€‹

μ˜ˆμ „μ— λ‚˜λŠ” CLI(Command-Line Interface) ν™˜κ²½μ—μ„œ Git λͺ…λ Ήμ–΄λ₯Ό 직접 μž…λ ₯ν•˜κ³  μ‹€ν–‰ν•˜λŠ” 것이 λ„ˆλ¬΄ λ²ˆκ±°λ‘­λ‹€κ³  μ—¬κ²Όλ‹€. 처음 κ³΅λΆ€ν–ˆμ„ λ•ŒλŠ” "이걸 ꡳ이 commandλ₯Ό λ‹€ μ™Έμš°κ³  μžˆμ–΄μ•Ό ν• κΉŒ?"λΌλŠ” 생각을 ν•˜μ—¬ Sourcetree, GitHub Desktop, TortoiseGit λ“±κ³Ό 같은 GUI(Graphical User Interface) νˆ΄μ„ μ‚¬μš©ν–ˆμ—ˆλ‹€. (근데 κ²°κ΅­ 자주 μ“°κ³  μ‰¬μš΄ λͺ…령어듀은 λ‹€ μ™Έμš°κ²Œ λ˜λ”λΌ...πŸ€¦β€β™‚οΈ) μ €λŸ° νˆ΄λ“€λ„, command도 λ‹€ μ’‹μ§€λ§Œ 졜근의 λ‚˜λŠ” VSCodeλ₯Ό μ• μš©ν•œλ‹€.

이 책은 κΉƒ λͺ…λ Ήμ–΄λ₯Ό 직접 μ‹€ν–‰ν•˜κ³  λ°˜λ³΅ν•˜λ©° 깃에 μ΅μˆ™ν•΄μ§€λŠ” 것에 μ΄ˆμ μ„ λ§žμΆ”κ³  μžˆμœΌλ‚˜ λΆ€λ‘μ—λŠ” VSCodeλ₯Ό 톡해 μ–΄λ–»κ²Œ commitκ³Ό pushλ₯Ό ν•˜λŠ”μ§€ μ†Œκ°œλ˜μ–΄ μžˆλ‹€. λ‚˜λŠ” 돌고 λŒμ•„ VSCode에 μ •μ°©ν–ˆλŠ”λ° 이 책을 μ½λŠ” μ‚¬λžŒμ€ 이런 κ°„λ‹¨ν•œ 방법을 λ°”λ‘œ μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 것이 μˆœκ°„μ μœΌλ‘œ λ„ˆλ¬΄ λΆ€λŸ¬μ› λ‹€. 이런 게 책이 μ£ΌλŠ” 힘이 μ•„λ‹Œκ°€ μ‹Άλ‹€. κ·Έλ ‡λ‹€κ³  ν•΄μ„œ Git λͺ…λ Ήμ–΄λ₯Ό λͺ°λΌλ„ λœλ‹€λŠ” 것은 μ•„λ‹ˆλ‹€. μ–΄λ– ν•œ κ°œλ°œμžκ°€ λ˜λ“  CLI ν™˜κ²½μ΄ μ΅μˆ™ν•˜λ©΄ 더 μœ λ¦¬ν•  μˆ˜λ„ μžˆλ‹€κ³  μƒκ°ν•œλ‹€. κ·ΈλŸ¬λ‹ˆ 이 책을 톡해 μ—°μŠ΅ν•΄λ³΄κ³  곡뢀할 수 μžˆλŠ” κΈ°νšŒκ°€ 되길 λ°”λž€λ‹€.

μ‰½κ²Œ μ„€λͺ…λ˜μ–΄μ§„ 책​

λ‚œ μ˜ˆμ „μ— Git을 μƒν™œμ½”λ”© κ°•μ˜μ™€ Pro Git으둜 κ³΅λΆ€ν–ˆμ—ˆλ‹€. GitHubλŠ” λ”°λ‘œ μΈν„°λ„·μ—μ„œ λ¬Έμ„œλ“€μ„ 막 μ°Ύμ•„κ°€λ©΄μ„œ κ³΅λΆ€ν–ˆμ—ˆλ‹€. 아무 생각 없이 μ±…μœΌλ‘œ Git을 κ³΅λΆ€ν•˜λ‹€κ°€ 두 번 정도 ν¬κΈ°ν–ˆλ˜ κ²½ν—˜λ„ μžˆλ‹€. tracked, staged λ“± 관계λ₯Ό μ΄ν•΄ν•˜λŠ” 데 머리가 μ•„νŒ μ—ˆλ‹€. 이 책은 μ‰½κ²Œ μ„€λͺ…λ˜μ–΄ μžˆμ–΄ 그럴 일이 μ—†λ‹€.

λ˜ν•œ, λ…μžλ₯Ό λ°°λ €ν•˜λŠ” μ„Έμ„Έν•œ 뢀뢄듀이 λ§Žμ•˜λ‹€. νŽΈμ§‘μžμ΄μ‹  생각이 μ±…μœΌλ‘œ, λ°•λ―Έμ •μ˜ κΉƒ&κΉƒν—ˆλΈŒ 만 읽어봐도 μ•Œ 수 μžˆλ‹€. 정말 λ…μžλ₯Ό μœ„ν•˜κ³  κΉ”λ”ν•˜κ²Œ μ •λ¦¬λ˜μ–΄ μžˆλŠ” 책을 읽어 보고 μ‹Άλ‹€λ©΄ 이 책을 μΆ”μ²œν•œλ‹€.

πŸ§‘β€πŸ«λŒ€μƒ λ…μžβ€‹

Gitκ³Ό GitHubλŠ” 개발자라면 λˆ„κ΅¬λ“ μ§€ μ•Œμ•„μ•Ό ν•˜λŠ” ν•„μˆ˜ 지식이 λ˜μ–΄λ²„λ Έλ‹€. 기술이 또 μ–΄λ–»κ²Œ λ°”λ€”μ§€λŠ” 잘 λͺ¨λ₯΄κ² μ§€λ§Œ, GitHubλŠ” κ°œλ°œμžλ“€μ˜ μ†Œμ…œ λ―Έλ””μ–΄ 같은 λŠλ‚Œμ΄λΌ μœ μš©ν•œ 정보와 μ½”λ“œκ°€ 많이 μ˜¬λΌμ˜¨λ‹€. 개발자λ₯Ό λͺ©ν‘œλ‘œ ν•œλ‹€λ©΄ 일찍 배우면 배울수둝 μ’‹λ‹€.

이 μ±…μ˜ κ°€μž₯ 큰 μž₯점은 μž…λ¬Έμ„œμ΄λ©΄μ„œ μ‹€μ œλ‘œ ν˜‘μ—…ν•˜λŠ” 것 같은 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ²½ν—˜ν•΄λ³Ό 수 μžˆλ‹€λŠ” 점이닀. Git도 사싀 심화적인 λΆ€λΆ„μœΌλ‘œ λ“€μ–΄κ°€λ©΄ submodule λ“±μ˜ λ‚΄μš©μ΄ μžˆμ§€λ§Œ 그런 λ‚΄μš©μ€ μ œμ™Έν•˜κ³  정말 μ‹€μ œλ‘œ 자주 μ“°μ΄λŠ” λ‚΄μš©λ§Œ 담겨 μžˆμœΌλ‹ˆ Gitκ³Ό GitHub에 μ΅μˆ™ν•˜μ§€ μ•Šμ€ μž…λ¬Έμžμ—κ²Œ μΆ”μ²œν•œλ‹€.