πŸŽ„ μ„±μž₯일지 3.1

μ±… ν–‰λ³΅ν•œ 이기주의자(웨인 닀이어)의 λ‚΄μš©μ— μžκ·Ήλ°›μ•„ μ‹œμž‘ν•˜λŠ” μ†Œλ°•ν•œ μ„±μž₯기둝

μ‚΄μ•„μžˆλŠ” 꽃과 죽은 꽃은 μ–΄λ–»κ²Œ κ΅¬λ³„ν•˜λŠ”κ°€?
μ„±μž₯ν•˜κ³  μžˆλŠ” 것이 μ‚΄μ•„ μžˆλŠ” 것이닀.
생λͺ…μ˜ μœ μΌν•œ μ¦κ±°λŠ” μ„±μž₯이닀!

🌳 ν‚€μ›Œλ“œ (1.0)
μ΅œλŒ€ν•œ κ°„λ‹¨ν•˜κ²Œ 정리, 좔후에 λ³΄λ©΄μ„œ 슀슀둜 μ„€λͺ…
πŸ‰ κ²½ν—˜ μœ„μ£Όλ‘œ (2.0)
λ‹¨μˆœ 정보λ₯Ό μ „λ‹¬ν•˜κΈ°λ³΄λ‹€ 무엇을 λ°°μ› κ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 짧고 κ°„λ‹¨ν•˜κ²Œ μž‘μ„±
❄️ 정해진 ν…œν”Œλ¦Ώμ— λ§žμΆ°μ„œ (3.0)
ν‚€μ›Œλ“œ, κ²½ν—˜ λͺ¨λ‘ μ’‹λ‹€. λ‹€λ§Œ 맀일 μž‘μ„±ν•˜κΈ°λ‘œ 마음 λ¨Ήμ€λ§ŒνΌ ν•΅μ‹¬λ§Œ κ°„κ²°ν•˜κ²Œ 정리할 수 있게 ν…œν”Œλ¦Ώμ„ μž‘μ„± (3.1) 230102λΆ€ν„° μ‹œμž‘λ˜λŠ” ν•™μŠ΅μ— κ΄€ν•œ λ‚΄μš© μΆ”κ°€

πŸ”‘ 였늘의 ν‚€μ›Œλ“œ

git

  • ν˜•μƒ 관리 도ꡬ(=버전 관리 μ‹œμŠ€ν…œ) 쀑 ν•˜λ‚˜
  • 개발자의 μžμ‚°μΈ μ†ŒμŠ€μ½”λ“œλ₯Ό 효과적으둜 관리할 수 있게 ν•΄μ£ΌλŠ” 무료, 곡개 μ†Œν”„νŠΈμ›¨μ–΄
  • SVN보닀 λ§Žμ€ μž₯점이 μžˆμ–΄ μš”μ¦˜μ—” 거의 Git을 μ‚¬μš©ν•œλ‹€.
    • SVN(=SubVersioN): 쀑앙 μ„œλ²„μ— μ†ŒμŠ€μ½”λ“œμ™€ νžˆμŠ€ν† λ¦¬λ₯Ό μ €μž₯
    • Git: μ†ŒμŠ€μ½”λ“œλ₯Ό μ—¬λŸ¬ 개발 둜컬 PC와 μ €μž₯μ†Œμ— λΆ„μ‚°ν•΄μ„œ μ €μž₯
  • Git은 인터넷 연결이 λ˜μ§€ μ•Šλ”λΌλ„ λ‘œμ»¬μ—μ„œ 버전관리가 κ°€λŠ₯ν•˜λ‹€.

commit

  • 버전(μ˜λ―ΈμžˆλŠ” λ³€ν™”)을 κΈ°λ‘ν•˜λŠ” λͺ…λ Ήμ–΄
  • μž‘μ—…μ΄ μ™„κ²°λœ μƒνƒœμ—μ„œ μ»€λ°‹ν•œλ‹€.
  • κ·œμΉ™μ μ΄κ³  가독성 μžˆλŠ” 컀밋 λ©”μ‹œμ§€λŠ” 개발자의 생산성을 μ˜¬λ €μ€€λ‹€.
    • 즉, κΉƒ 컀밋 μ»¨λ²€μ…˜μ„ κΌ­ ν™•μΈν•˜κ³  μŠ΅κ΄€μ„ 듀이도둝 ν•˜μž.
    • λ˜ν•œ, 컀밋 λ©”μ‹œμ§€λŠ” ν•œ 쀄이 λ„˜μ–΄κ°€μ§€ μ•Šκ²Œ ν•œλ‹€. 그만큼 μž‘μ—…μ˜ λ‹¨μœ„λ₯Ό 잘 λ‚˜λˆ μ„œ 컀밋을 κ΄€λ¦¬ν•΄μ£ΌλŠ” 게 μ’‹λ‹€.

pull request

  • upstream - origin - local의 κ΄€κ³„μ—μ„œ localμ—μ„œ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κ³  origin에 pushν•œλ‹€. 이후 이 변경사항을 upstream에도 λ°˜μ˜ν•˜κ³  μ‹Άλ‹€λ©΄ Pull Requestλ₯Ό λ‚ λ¦°λ‹€.
  • 즉, λ‚΄κ°€ μˆ˜μ •ν•œ 쒋은 μ½”λ“œκ°€ μžˆμœΌλ‹ˆ λ‚΄ branchλ₯Ό κ°€μ Έκ°€μ„œ κ²€ν†  ν›„(μ½”λ“œλ¦¬λ·°λ„ κ°€λŠ₯) 병합해달라고 μš”μ²­ν•˜λŠ” 것이닀!
  • PR을 톡해 μ½”λ“œ μΆ©λŒμ„ μ΅œμ†Œν™”ν•˜κ³  push κΆŒν•œμ΄ μ—†λŠ” μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈμ— κΈ°μ—¬ν•  λ•Œ 많이 μ‚¬μš©ν•œλ‹€.

file

  • 컴퓨터 λ“±μ˜ κΈ°κΈ°μ—μ„œ μ˜λ―ΈμžˆλŠ” 정보λ₯Ό λ‹΄κΈ° μœ„ν•œ 논리적인 λ‹¨μœ„
  • μ €μž₯맀체에 λŒ€ν•΄ μΆ”μƒν™”λœ 정보 λ‹¨μœ„μ΄λ‹€.
  • μš΄μ˜μ²΄μ œλŠ” 파일 μ‘°μž‘μ— κ΄€λ ¨λœ κΈ°λŠ₯을 api둜 μ œκ³΅ν•œλ‹€.
  • μ•„λž˜μ™€ 같이 nodejsμ—μ„œλ„ file system을 λ‹€λ£¨λŠ” 라이브러리λ₯Ό μ œκ³΅ν•œλ‹€.
const fs = require('fs'); // fs: file system
const fsPromise = require('fs/promises'); // fs와 μœ μ‚¬ν•œλ°, 값듀이 주둜 promise 객체둜 λ°˜ν™˜λœλ‹€.

SHA

  • Secure Hash Algorithm의 μ•½μžλ‘œ μ„œλ‘œ κ΄€λ ¨λœ μ•”ν˜Έν•™μ  ν•΄μ‹œ ν•¨μˆ˜λ“€μ˜ λͺ¨μŒμ΄λ‹€.
  • 이 쀑 SHA-256은 λ©”μ‹œμ§€, 파일, 데이터 무결성 검증 λ“± 널리 μ‚¬μš©λ˜κ³  μžˆλ‹€.
  • SHA-256은 SHA-2에 μ†ν•˜κ³  λ³€ν™˜μ„ μ›ν•˜λŠ” λ¬Έμžλ“€μ„ 256 bit 길이의 key둜 λ³€ν™˜ν•œλ‹€.
    • 즉, λ³€ν™˜λœ 256 bit ν˜•νƒœκ°€ keyκ°€ 되고 μ›λž˜μ˜ λ¬Έμžκ°€ valueκ°€ λ˜λŠ” Map ν˜•νƒœλ₯Ό μ·¨ν•œλ‹€.

zlib

  • C둜 μž‘μ„±λœ 데이터 μ••μΆ• 라이브러리
  • nodejsμ—μ„œλ„ zlib 라이브러리λ₯Ό μ œκ³΅ν•œλ‹€

μ°Έκ³ 

πŸ“ μš”μ•½ 및 ν•˜λ£¨ 간단 회고

μ˜€λŠ˜μ€ 깃에 λŒ€ν•΄ λ°°μ› λ‹€. 사싀 κ·Έλ™μ•ˆ μ–΄λŠμ •λ„ 깃을 μ‚¬μš©ν•  쀄 μ•Œκ³  μžˆλ‹€κ³  μƒκ°ν–ˆλ‹€. μ˜€λ§Œμ΄μ—ˆλ‹€. ν‰μ†Œμ— 잘 μ‚¬μš©ν•˜μ§€ μ•Šλ˜ fetch, rebaseλ‚˜ upstream - origin - localκ³Ό 같은 λ ˆν¬μ§€ν† λ¦¬λ“€μ˜ 관계λ₯Ό μ œλŒ€λ‘œ μƒˆκΈΈ 수 μžˆμ—ˆλ‹€. 또, upstreamκ³Ό origin의 μΆ©λŒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ upstreamμ—μ„œ local둜 λ¨Όμ € fetch, rebaseλ₯Ό 진행 ν•˜κ³  이후에 localμ—μ„œ origin으둜 pushν•˜μ—¬ upstreamκ³Ό origin의 μ•ˆμ •λœ 동기화λ₯Ό κ°€μ Έκ°€λŠ” 방식이 ν₯λ―Έλ‘œμ› λ‹€.(사싀 κ·Έ λ™μ•ˆμ€ κ·Έλƒ₯ local μž‘μ—…ν•˜κ³  origin으둜 pushν•˜κ³  upstream에 PR λ‚ λ¦¬λŠ” μ‹μœΌλ‘œ μ§„ν–‰ν–ˆλŠ”λ°β€¦) ν™•μ‹€νžˆ μ΄λ ‡κ²Œ ν•˜λ©΄ 원격 λ ˆν¬μ§€ν† λ¦¬λ“€ κ°„μ˜(upstreamκ³Ό origin) 좩돌 μœ„ν—˜μ„ 쀄일 수 있게 λœλ‹€. 이 flowλ₯Ό κΌ­ κΈ°μ–΅ν•˜λ„λ‘ ν•΄μ•Όκ² λ‹€.

였늘의 μž˜ν•œ 점

  • μ΅œλŒ€ν•œ λ―Έμ…˜ κ΅¬ν˜„ν•œ 점
  • λ‚˜λ¬΄λ³΄λ‹€ μˆ²μ„ 보듯이 forkλΆ€ν„° add, commit, push 그리고 fetch, rebase λ“±μ˜ 흐름을 μ΄ν•΄ν•œ

였늘의 μ•„μ‰¬μš΄ 점

  • μ˜€λŠ˜λ„ λ§ˆμ°¬κ°€μ§€λ‘œ κ³„νšμ— 적힌 μ „λΆ€λ₯Ό λ‹€ ν•˜μ§„ λͺ»ν–ˆλ‹€.
  • μš”μ¦˜ 이 뢀뢄이 쑰금 κ³ λ―Όλœλ‹€. λ”± ν•  수 μžˆλŠ” κ²ƒλ“€λ‘œλ§Œ κ³„νšμ„ μ§œλŠ” 게 쒋을지, μ΅œλŒ€ν•œ 많이 담아두고 거기에 λ‚˜λ₯Ό λ§žμΆ°μ„œ λ˜λŠ” λ°κΉŒμ§€ λ‹¬λ €κ°ˆμ§€ μͺΌλ” κ³ λ―Όλœλ‹€.
  • ν—Œλ° 사싀 2가지 방법 λͺ¨λ‘ ν₯미둭게 ν–‰λ³΅ν•˜κ²Œ μ—΄μ‹¬νžˆ μž„ν•œλ‹€λ©΄ 각각의 쒋은 μ‹œλ„ˆμ§€κ°€ μžˆλŠ” 것 κ°™λ‹€.
  • λ‘˜ λ‹€ ν•΄λ³΄μž, κ·Έλƒ₯! 그리고 λ‚˜μ—κ²Œ 쒀더 μž˜λ§žλŠ”λŒ€λ‘œ λ°œμ „μ‹œν‚€μž.
  • 일단 μ§€κΈˆκΉŒμ§€ μ΅œλŒ€ν•œμ˜ κ³„νšμ„ μ§œλ΄€μœΌλ‹ˆ, 이제 λ‚΄κ°€ 정말 ν˜„μ‹€μ μœΌλ‘œ ν•΄λ‚Ό 수 μžˆλŠ” μ •μ˜ˆ κ³„νšλ“€μ„ μ§œλ΄μ•Όκ² λ‹€. :)