🚀 μ„±μž₯일지 6.0

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

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

🌾 (4.0)ν•™μŠ΅ ν‚€μ›Œλ“œμ—μ„œ μ΅œλŒ€ν•œ κ°„λ‹¨ν•œ 정보 제곡, κ³ λ―Όμ—μ„œ λ‚΄ κ²½ν—˜μ„ μžμ„Ένžˆ 적자!
πŸ₯Š (5.0)ν•™μŠ΅ ν‚€μ›Œλ“œλŠ” ν•œμ€„μ˜ ν•΅μ‹¬μœΌλ‘œλ§Œ 정리, 성곡/μ‹€νŒ¨ 일지 μž‘μ„±ν•˜κΈ°! 이 λ•Œ, μ‹€νŒ¨μ˜ κ²½ν—˜μ€ μžμ„Ένžˆ 적기!
πŸ‰ (6.0)<μ™„μ „ 개편!!!> 맀일 μŠ΅κ΄€μ μœΌλ‘œ ν•΅μ‹¬λ§Œ 적을 수 있게 ν”„λ ˆμž„ λ³€κ²½. 성곡보단 μ‹€νŒ¨μ— μ΄ˆμ μ„ λ§žμΆ”κΈ°.

  • πŸ‰ (6.1)<μˆ˜μ •> 맀번 성곡, μ‹€νŒ¨λ₯Ό λ”°λ‘œ μ λŠ” 것보단 κ²½ν—˜μœΌλ‘œ ν‘œν˜„ν•˜μž!
  • πŸ‰ (6.2)<μˆ˜μ •> 일지 μΉ΄ν…Œκ³ λ¦¬ μˆ˜μ • λ³€κ²½!(κ²½ν—˜ -> κ³ λ―Ό -> 회고 -> κ΅ν›ˆ)

β˜€οΈ 였늘의 κ²½ν—˜

monorepo

λͺ¨λ…Έλ ˆν¬λŠ” ν•˜λ‚˜μ˜ μ €μž₯μ†Œμ— μ—¬λŸ¬ ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜λŠ” 것을 λ§ν•œλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ μ—¬λŸ¬ ν”„λ‘œμ νŠΈλ₯Ό ν•œ λ²ˆμ— 관리할 수 있고, κ³΅ν†΅λœ νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.
였늘 λ‚΄κ°€ κ³΅λΆ€ν•œ λ‚΄μš©μ—μ„œ λ‚˜μ˜¨ λͺ¨λ…Έλ ˆν¬λŠ” 라이브러리λ₯Ό λ§Œλ“œλŠ” 경우의 λͺ¨λ…Έλ ˆν¬μ˜€λ‹€. κ°„λ‹¨ν•˜κ²Œ 디렉토리 ꡬ쑰만 μ‚΄νŽ΄λ³΄λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

πŸ“¦ root
β”œβ”€ apps
β”‚  β”œβ”€ docs // 라이브러리 μ†Œκ°œν•˜λŠ” λ¬Έμ„œ
β”‚  └─ example // 라이브러리λ₯Ό μ‚¬μš©ν•΄λ³΄λŠ” 예제
β”œβ”€ packages
β”‚  └─ library // μ‹€μ œ 라이브러리
└─ .gitignore

μœ„μ™€ 같은 ꡬ쑰가 λœλ‹€. root에도 package.json이 있고 docs, example, library도 각각 ν•˜λ‚˜μ˜ package.json으둜 κ΄€λ¦¬λ˜λŠ” ν”„λ‘œμ νŠΈμ΄λ‹€. 이 ν”„λ‘œμ νŠΈμ—μ„œ libraryλŠ” μ‹€μ œ λ‚΄κ°€ κ°œλ°œν•˜λ €λŠ” 라이브러리, example은 개발 쀑인 라이브러리λ₯Ό μ‚¬μš©ν•΄λ³΄λŠ” 예제, docsλŠ” 라이브러리λ₯Ό μ†Œκ°œν•˜λŠ” λ¬Έμ„œλ₯Ό μž‘μ„±ν•˜λŠ” ν”„λ‘œμ νŠΈμ΄λ‹€. 이 ν”„λ‘œμ νŠΈλ“€μ„ ν•˜λ‚˜λ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄μ„œ workspaceλΌλŠ” κ°œλ…μ„ μ‚¬μš©ν•˜κ²Œ λœλ‹€. workspaceλŠ” root의 package.json에 섀정을 ν•΄μ£Όλ©΄ λœλ‹€.

{
  "name": "root",
  "private": true, // private으둜 μ„€μ •ν•΄μ•Ό npm에 publishλ˜μ§€ μ•ŠλŠ”λ‹€.(root project μžμ²΄λŠ” publishν•˜μ§€ μ•ŠλŠ”λ‹€.)
  "workspaces": ["packages/*", "apps/*"],
  "scripts": {
    "example": "yarn workspace example dev",
    "build": "yarn workspace @jaydenlee/mini-query build",
    "test": "yarn workspace @jaydenlee/mini-query test"
  }
}

μ€‘μš”ν•œ 점은 ν•΄λ‹Ή root ν”„λ‘œμ νŠΈλŠ” μ² μ €νžˆ κ·Έ μ•„λž˜ ν”„λ‘œμ νŠΈλ“€μ„ κ΄€λ¦¬ν•˜λŠ” μš©λ„λΌλŠ” 점이닀. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— private은 true둜 μ„€μ •ν•΄μ•Όν•œλ‹€. 그리고 root의 package.json의 scripts μ—μ„œλŠ” workspace κΈ°λŠ₯을 톡해 각 ν”„λ‘œμ νŠΈμ˜ scriptsλ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€.

λΆˆλ³€μ„±? μ•„λ‹ˆ κ°€λ³€μ„±!

λ¦¬νŠΈμ½”λ“œμ—μ„œ 문제λ₯Ό ν‘ΈλŠ”λ° λ‹€μ†Œ μ–΄μƒ‰ν•œ λ¬Έμ œκ°€ λ“±μž₯ν–ˆλ‹€. 보톡 객체, λ°°μ—΄ λ“±μ˜ λΆˆλ³€μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ 문제λ₯Ό ν’€κΈ° 마련인데, 이 λ¬Έμ œλŠ” 되렀 인자둜 받은 배열을 λ³€κ²½μ‹œν‚€κΈ°λ§Œν•΄μ„œ 문제λ₯Ό ν•΄κ²°ν•  것을 μš”κ΅¬ν•˜κ³  μžˆμ—ˆλ‹€. 문제 μžμ²΄λŠ” 정말 λ‹¨μˆœν•œλ°, λ‹€μ‹œ ν•œ 번 JS의 λΆˆλ³€μ„±μ„ μœ μ§€ν•˜μ§€ μ•ŠλŠ” λ©”μ†Œλ“œλ“€μ„ μƒκΈ°μ‹œμΌœμ£ΌλŠ” 계기가 λ˜μ—ˆλ‹€.

const merge = function (nums1, m, nums2, n) {
  nums1.splice(m);
  nums1.push(...nums2);
  nums1.sort((a, b) => a - b);
};

🫧 였늘의 고민

  • μ˜€λŠ˜μ€ λ”±νžˆ 고민이 μ—†μ—ˆλ‹€. πŸ₯³

🌈 였늘의 회고

라이브러리λ₯Ό λ§Œλ“œλŠ” 과정이 λ„ˆλ¬΄ ν₯λ―Έλ‘œμ› λ‹€. μ•„λ¬΄λž˜λ„ 보톡 μ›Ή 곡뢀λ₯Ό μ‹œμž‘ν•˜κ³  ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ‹€λ³΄λ©΄ μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μœ„μ£Όλ‘œ μ§„ν–‰μ΄λ˜λŠ”λ°, μ΄λ²ˆμ—λŠ” 라이브러리λ₯Ό λ§Œλ“€μ–΄λ³΄λ©΄μ„œ μ’€ 더 λ‹€μ–‘ν•œ κ²½ν—˜μ„ ν•  수 μžˆμ—ˆλ‹€. 취쀀생 μž…μž₯μ—μ„œ 이런 λ§ν•˜κΈ΄ λ­ν•˜μ§€λ§Œ, κ·Έλž˜λ„ μ–΄λŠμ •λ„λŠ” 이 개발 세계λ₯Ό μ•ˆλ‹€κ³  μƒκ°ν–ˆμŒμ—λ„ 맀번 μƒˆλ‘œμš΄ κ²½ν—˜μ„ ν•˜κ²Œ λ˜λ‹ˆ λ„ˆλ¬΄ μž¬λ―Έμžˆλ‹€. κ°„λ‹¨ν•˜μ§€λ§Œ μœ μš©ν•œ 라이브러리λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ„œ 배포해보렀 ν•œλ‹€.(μ•„λ§ˆ JS둜 κ΅¬ν˜„ν•œ μ—¬λŸ¬ μžλ£Œκ΅¬μ‘°κ°€ 될 것 κ°™λ‹€.)

🐾 였늘의 κ΅ν›ˆ

세상은 λ„“κ³  배울 건 λ§Žλ‹€. μ•žμœΌλ‘œ 또 μƒˆλ‘œμš΄ 세상을 λ§Œλ‚˜κ²Œ 될 것을 κΈ°λŒ€ν•˜κ³  μ°Ύμ•„ λ‚˜μ•„κ°€μž. λ„ˆλ¬΄ λ‘κ·Όκ±°λ¦¬λŠ” 개발 세상이닀!

πŸͺ΅ μ°Έκ³ 

  • μ—†λ‹Ή