2024
August
Good Abstraction Bad Abstraction

πŸ”— Good Abstraction, Bad Abstraction (opens in a new tab)

πŸ—“οΈ λ²ˆμ—­ λ‚ μ§œ: 2024.08.12

🧚 λ²ˆμ—­ν•œ 크루: μ†Œν•˜(μ΅œμ†Œμ—°)


μ•ˆλ…•ν•˜μ„Έμš”,

벌써 8월이 λ‹€ λ˜μ–΄κ°„λ‹€λŠ” 게 λ―Ώκ²¨μ§€μ‹œλ‚˜μš”? λ§žμŠ΅λ‹ˆλ‹€. 1λ…„ 쀑 8번째 달이죠. μ‹œκ°„μ΄ μ΄λ ‡κ²Œ 빨리 ν˜λŸ¬κ°€λ‹€λ‹ˆμš”?

이번 μ£Ό μ΄μŠˆμ—μ„œλŠ” 좔상화, λ””μžμΈ νŒ¨ν„΄, 그리고 WET μ½”λ“œλ² μ΄μŠ€(λ§žμŠ΅λ‹ˆλ‹€, wetμž…λ‹ˆλ‹€.)에 λŒ€ν•΄ 이야기해 λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν•΄ λ³΄μ‹œμ£ .

SOFTWARE DESIGN

쒋은 좔상화, λ‚˜μœ 좔상화

초창기 κ²½λ ₯ μ‹œμ ˆ, μ €λŠ” μΆ”μƒν™”λž€ κ·Έμ € DRY(λ°˜λ³΅ν•˜μ§€ μ•ŠκΈ°)λ₯Ό μœ μ§€ν•˜λŠ” 것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. λΉ„μŠ·ν•΄ λ³΄μ΄λŠ” 두 개의 μ½”λ“œ 블둝을 λ³Ό λ•Œλ§ˆλ‹€, λͺ¨λ“  μ‚¬μš© 사둀λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” 단일 ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄ 쀑볡을 μ œκ±°ν•˜λ €κ³  μ΅œμ„ μ„ λ‹€ν–ˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 이 μ ‘κ·Ό λ°©μ‹μ—λŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 잘 ν™•μž₯λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

μš”κ΅¬μ‚¬ν•­μ΄ λ³€ν•˜κ³  μ½”λ“œλ² μ΄μŠ€κ°€ 진화함에 따라, 이 λͺ¨λΈμ€ 점차 λ¬΄λ„ˆμ§€κΈ° μ‹œμž‘ν•©λ‹ˆλ‹€. λ§Œμ•½ μš°λ¦¬κ°€ μ™„μ „νžˆ λ‹€λ₯Έ μ‚¬μš© 사둀에 λ§žμΆ”κΈ° μœ„ν•΄ ν•¨μˆ˜λ₯Ό λ³€κ²½ν•˜κΈ° μ‹œμž‘ν•˜λ©΄, μ½”λ“œ μž¬μ‚¬μš©μ„ μœ„ν•œ 우리의 μ„ μ˜μ˜ μ‹œλ„λŠ” λΉ λ₯΄κ²Œ 잘λͺ»λœ μΆ”μƒν™”λ‘œ λ³€ν•˜κ²Œ λ©λ‹ˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ 쒋은 좔상화λ₯Ό λ§Œλ“œλŠ” 비밀은 λ¬΄μ—‡μΌκΉŒμš”? κ°„λ‹¨νžˆ 말해, μž¬μ‚¬μš©μ„±μ— λŒ€ν•œ 관심을 쀄이고 좔상화가 μ§„μ •μœΌλ‘œ ν•˜λŠ” 일, 즉 λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜κ³  μΊ‘μŠν™”ν•˜λŠ” 데 더 μ§‘μ€‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 그리고 이λ₯Ό μœ„ν•œ ν›Œλ₯­ν•œ 방법은 쒋은 좔상화가 κ°–μΆ°μ•Ό ν•  μ„Έ 가지 기본적인 νŠΉμ„±μ„ μ‚΄νŽ΄λ³΄λŠ” κ²ƒμž…λ‹ˆλ‹€.

  1. 쒋은 μΆ”μƒν™”λŠ” κΉŠμ€ λͺ¨λ“ˆ(Deep Modules)둜 κ΅¬μ„±λ©λ‹ˆλ‹€.
  2. 쒋은 μΆ”μƒν™”λŠ” μ€‘μš”ν•˜μ§€ μ•Šμ€ μ„ΈλΆ€ 사항을 μˆ¨κΉλ‹ˆλ‹€.
  3. 쒋은 μΆ”μƒν™”λŠ” 단일 μˆ˜μ€€(Single Level)μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

이제 이에 λŒ€ν•΄ 이야기해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

쒋은 μΆ”μƒν™”λŠ” κΉŠμ€ λͺ¨λ“ˆλ‘œ κ΅¬μ„±λœλ‹€.

κΉŠμ€ λͺ¨λ“ˆμ€ κ°„λ‹¨ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 κ°•λ ₯ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λͺ¨λ“ˆμž…λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λ₯Ό μΆ”μƒν™”μ˜ λΉ„μš©, κΈ°λŠ₯을 κ·Έ 이점이라고 생각할 수 μžˆμŠ΅λ‹ˆλ‹€. κΉŠμ€ λͺ¨λ“ˆμ€ 더 적은 λΉ„μš©μœΌλ‘œ 더 λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ— 더 λ‚˜μ€ 좔상화λ₯Ό λ§Œλ“­λ‹ˆλ‹€.

λ°˜λ©΄μ—, 얕은 λͺ¨λ“ˆμ€ κΈ°λŠ₯에 λΉ„ν•΄ μƒλŒ€μ μœΌλ‘œ λ³΅μž‘ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 가진 λͺ¨λ“ˆμž…λ‹ˆλ‹€. ν•¨μˆ˜κ°€ λ„ˆλ¬΄ 적게 μˆ˜ν–‰ν•˜λŠ” 경우(예: "pass-through" λ©”μ„œλ“œ) μ΄λŠ” 얕은 좔상화λ₯Ό 닀루고 μžˆλ‹€λŠ” 것을 μ˜λ―Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΉŠμ€ λͺ¨λ“ˆμ„ μ„ ν˜Έν•œλ‹€κ³  ν•΄μ„œ 큰 ν•¨μˆ˜λ₯Ό λͺ©ν‘œλ‘œ ν•΄μ•Ό ν•œλ‹€λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. ν•¨μˆ˜κ°€ λͺ‡ μ€„μ˜ μ½”λ“œλ§Œ 가지고 μžˆμ§€λ§Œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 λ…ΈμΆœν•˜λŠ” 것보닀 더 λ§Žμ€ λ³΅μž‘μ„±μ„ μΊ‘μŠν™”ν•œλ‹€λ©΄ μ—¬μ „νžˆ κΉŠμ€ κ²ƒμœΌλ‘œ κ°„μ£Όν•©λ‹ˆλ‹€.

이전 ν˜Έμ—μ„œ μ΄μ•ΌκΈ°ν–ˆλ˜ **'μ†Œν”„νŠΈμ›¨μ–΄ λ””μžμΈμ˜ μ² ν•™'**μ΄λΌλŠ” μ±…μ—μ„œ κΉŠμ€ λͺ¨λ“ˆ κ°œλ…μ„ κΈ°μ–΅ν•˜μ‹€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 놓쳀닀면 μ—¬κΈ° (opens in a new tab)μ„œ 읽어보싀 수 μžˆμŠ΅λ‹ˆλ‹€.

쒋은 μΆ”μƒν™”λŠ” μ€‘μš”ν•˜μ§€ μ•Šμ€ μ„ΈλΆ€ 사항을 μˆ¨κΈ΄λ‹€.

μΆ”μƒν™”λŠ” μ€‘μš”ν•˜μ§€ μ•Šμ€ κ΅¬ν˜„ μ„ΈλΆ€ 사항을 μˆ¨κ²¨μ•Ό ν•˜μ§€λ§Œ μ€‘μš”ν•œ μ„ΈλΆ€ 사항은 λ“œλŸ¬λ‚΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ μ˜ˆμ‹œμž…λ‹ˆλ‹€:

이 ν•¨μˆ˜λŠ” axios config 객체λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ λ°›λŠ”λ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 이것 μžμ²΄λ‘œλŠ” λ¬Έμ œκ°€ μ—†μ§€λ§Œ, 이 νŠΉμ •ν•œ κ²½μš°μ—λŠ” ν•¨μˆ˜κ°€ λ„€νŠΈμ›Œν¬ μš”μ²­μ„ ν•˜κΈ° μœ„ν•΄ axiosλ₯Ό μ‚¬μš©ν•œλ‹€λŠ” 사싀은 좔상화 μ‚¬μš©μžκ°€ μ‹ κ²½ μ“Έ ν•„μš”κ°€ μ—†λŠ” κ΅¬ν˜„ μ„ΈλΆ€ μ‚¬ν•­μž…λ‹ˆλ‹€.

또 ν•œ 가지 λˆˆμΉ˜μ±„μ…¨μ„ μˆ˜λ„ μžˆλŠ” 것은 μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈλ˜μ–΄ μžˆμ„ λ•ŒλŠ” λΉ„λ™κΈ°μ μœΌλ‘œ λ™μž‘ν•˜μ§€λ§Œ λ‘œκ·ΈμΈλ˜μ–΄ μžˆμ§€ μ•Šμ„ λ•ŒλŠ” λ™κΈ°μ μœΌλ‘œ λ™μž‘ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€. 이것도 κ΅¬ν˜„ μ„ΈλΆ€ μ‚¬ν•­μ΄μ§€λ§Œ 좔상화 μ‚¬μš©μžμ—κ²Œ 더 λͺ…ν™•ν•΄μ•Ό ν•˜λŠ” μ€‘μš”ν•œ μ„ΈλΆ€ μ‚¬ν•­μž…λ‹ˆλ‹€.

μ™œ κ·Έ μ„ΈλΆ€ 사항이 μ€‘μš”ν• κΉŒμš”? μž₯λ°”κ΅¬λ‹ˆμ— ν•­λͺ©μ„ μΆ”κ°€ν•œ ν›„ λ°”λ‘œ μž₯λ°”κ΅¬λ‹ˆμ˜ 총 κΈˆμ•‘μ„ κ³„μ‚°ν•œλ‹€κ³  κ°€μ •ν•΄ λ³΄μ„Έμš”. 동기 λ˜λŠ” 비동기 λ™μž‘μ΄ ν˜ΈμΆœλ˜μ—ˆλŠ”μ§€μ— 따라 μ™„μ „νžˆ λ‹€λ₯Έ κ²°κ³Όλ₯Ό μ–»κ²Œ λ©λ‹ˆλ‹€.

κ·Έ ν•¨μˆ˜μ˜ λŒ€μ•ˆ 버전은 λ‹€μŒκ³Ό 같이 보일 수 μžˆμŠ΅λ‹ˆλ‹€:

μ—¬κΈ°μ„œλŠ” λ‹¨μˆœν™”λ₯Ό μœ„ν•΄ λ™μΌν•œ ν•¨μˆ˜ λ‚΄μ—μ„œ axios ꡬ성 객체λ₯Ό κ΅¬μ„±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‹€μ œ μ‚¬μš© μ‚¬λ‘€μ—μ„œλŠ” 이λ₯Ό λ³„λ„λ‘œ μ²˜λ¦¬ν•˜κ³  μ‹Άκ² μ§€λ§Œ, μš”μ μ€ 그게 μ•„λ‹™λ‹ˆλ‹€.

μ£Όλͺ©ν•΄μ•Ό ν•  μ€‘μš”ν•œ 점은 μ‚¬μš© κ°€λŠ₯ν•œ μ •ν™•ν•œ ꡬ성 μ˜΅μ…˜μ„ μ§€μ •ν•˜μ—¬ μΆ”μƒν™”μ˜ λˆ„μˆ˜λ₯Ό μˆ˜μ •ν–ˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 이제 이 ν•¨μˆ˜μ˜ κ΅¬ν˜„μ„ axios λŒ€μ‹  fetchλ₯Ό μ‚¬μš©ν•˜λ„λ‘ 변경해도 μΈν„°νŽ˜μ΄μŠ€λŠ” μ „ν˜€ λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ 이제 ν•¨μˆ˜λŠ” 항상 λΉ„λ™κΈ°μ μœΌλ‘œ μž‘λ™ν•˜λ―€λ‘œ μ‚¬μš©μžμ—κ²Œ 더 μΌκ΄€λ˜κ³  λͺ…ν™•ν•œ λ™μž‘μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

쒋은 μΆ”μƒν™”λŠ” 단일 μˆ˜μ€€μ—μ„œ μž‘λ™ν•œλ‹€.

좔상화 μˆ˜μ€€μ„ ν˜Όν•©ν•˜λ©΄ λͺ¨λ“ˆμ΄ 더 μ˜ˆμΈ‘ν•˜κΈ° μ–΄λ ΅κ³  닀루기 μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” ν•¨μˆ˜λŠ” DOM도 μ—…λ°μ΄νŠΈν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. 이듀은 각각 λΆ„λ¦¬λ˜μ–΄μ•Ό ν•˜λŠ” 두 가지 λ‹€λ₯Έ μ±…μž„μž…λ‹ˆλ‹€. μ„ νƒν•œ ν”„λ ˆμž„μ›Œν¬μ—μ„œ 이 두 가지 λ™μž‘μ„ λ™μΌν•œ λͺ¨λ“ˆμ— 곡쑴할 수 μžˆλ„λ‘ ν—ˆμš©ν•˜λ”λΌλ„, λ‘œμ§μ„ 더 μž‘κ³  μ§‘μ€‘λœ ν•¨μˆ˜λ‘œ λΆ„λ¦¬ν•˜μ—¬ 각 μΆ”μƒν™”μ˜ 관심사λ₯Ό λΆ„λ¦¬ν•˜λŠ” 것이 항상 쒋은 μ•„μ΄λ””μ–΄μž…λ‹ˆλ‹€.

단일 μ±…μž„ 원칙도 μ–ΈκΈ‰ν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ™μΌν•œ 좔상화 μˆ˜μ€€μ—μ„œ μž‘λ™ν•˜λ„λ‘ 보μž₯ν•˜λŠ” 쒋은 방법은 각 λͺ¨λ“ˆμ— λ³€κ²½ν•΄μ•Ό ν•  이유λ₯Ό ν•˜λ‚˜ (opens in a new tab)만 μ œκ³΅ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.


이것이 λͺ¨λ“  ν•¨μˆ˜κ°€ "쒋은 좔상화 체크리슀트"의 λͺ¨λ“  ν•­λͺ©μ— 체크해야 ν•œλ‹€λŠ” 것을 μ˜λ―Έν• κΉŒμš”? λ°˜λ“œμ‹œ κ·Έλ ‡μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

이것듀은 κ·œμΉ™μ΄ μ•„λ‹Œ μ§€μΉ¨μœΌλ‘œ μ·¨κΈ‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 그리고 제 λ°”λžŒμ€ μ—¬λŸ¬λΆ„μ΄ 이 지침을 μ‚¬μš©ν•˜μ—¬ 좔상화λ₯Ό 완벽이 μ•„λ‹Œ 더 μ’‹κ²Œ λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€.

κ²°κ΅­ μš°λ¦¬λŠ” μ™„λ²½ν•œ 좔상화λ₯Ό λ§Œλ“œλŠ” 것이 μ•„λ‹ˆλΌ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것이 λͺ©μ μž…λ‹ˆλ‹€. 그리고 기쑴의 좔상화가 관리 κ°€λŠ₯ν•œ μˆ˜μ€€μ˜ λ³΅μž‘μ„±μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€λ©΄ 이미 μ€‘μš”ν•œ 일을 μ œλŒ€λ‘œ ν•˜κ³  μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€.

μ‹œμ²­ 리슀트

WET μ½”λ“œλ² μ΄μŠ€

좔상화에 λŒ€ν•œ 에세이λ₯Ό 막 마친 것을 μ•Œκ³  있으며 주제λ₯Ό λ°”κΎΈκ³  싢을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 쑰금만 더 κΈ°λ‹€λ €μ£Όμ„Έμš”. 이번 μ£Όμ œλŠ” κ·Έλ§Œν•œ κ°€μΉ˜κ°€ μžˆλ‹€κ³  μ•½μ†λ“œλ¦½λ‹ˆλ‹€.

λŒ„ μ•„λΈŒλžŒμ˜€ν”„ (opens in a new tab)λŠ” 2019λ…„ λ””μ½˜μŠ€νŠΈ(μˆ˜μ‹­ λ…„ μ „μ²˜λŸΌ λŠκ»΄μ§€μ§€λ§Œ)μ—μ„œ 이 강연을 ν–ˆμ§€λ§Œ κ·Έκ°€ κ³΅μœ ν•˜λŠ” μ•„μ΄λ””μ–΄λŠ” μ§„μ •μœΌλ‘œ μ‹œλŒ€λ₯Ό μ΄ˆμ›”ν•©λ‹ˆλ‹€.

λŒ„μ€ μš°λ¦¬κ°€ λ§Œλ“œλŠ” 좔상화가 μ—¬μ „νžˆ μ˜λ―Έκ°€ μžˆλŠ”μ§€ κ³ λ €ν•˜μ§€ μ•Šκ³  λ„ˆλ¬΄ DRYμ—λ§Œ μ§‘μ€‘ν•˜λŠ” μœ„ν—˜μ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ³ , 좔상화λ₯Ό λ‹€λ£° λ•Œ 염두에 두어야 ν•  λͺ‡ 가지 핡심 μš”μ†Œλ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€:

  • μΆ”μƒν™”μ˜ 이점: μ˜λ„μ— 집쀑, μ½”λ“œ μž¬μ‚¬μš©, 버그 ν”Όν•˜κΈ°
  • μΆ”μƒν™”μ˜ λΉ„μš©: μš°μ—°ν•œ κ²°ν•©, μΆ”κ°€ κ°„μ ‘μ„±, κ΄€μ„±(νŒ€μ„ μœ„ν•œ)
  • μ±…μž„κ° 있게 μΆ”μƒν™”ν•˜λŠ” 팁: ꡬ체적인 μ½”λ“œ ν…ŒμŠ€νŠΈ, 계측 μΆ”κ°€ 지연, ν•„μš”ν•œ 경우 항상 좔상화 인라인 μ€€λΉ„

λŒ„μ€ 이 μ£Όμ œμ— λŒ€ν•΄ 더 깊이 νŒŒκ³ λ“€λ €λ©΄ λ‹€μŒμ— 무엇을 봐야 ν•˜λŠ”μ§€μ— λŒ€ν•œ μΆ”μ²œμœΌλ‘œ 강연을 λ§ˆλ¬΄λ¦¬ν•©λ‹ˆλ‹€. 이 λͺ¨λ“  κ°•μ—°μ˜ μ—΄λ ¬ν•œ νŒ¬μœΌλ‘œμ„œ λŒ„μ˜ μΆ”μ²œμ— +1을 λ“œλ¦¬λ©° μ—¬λŸ¬λΆ„λ„ μ‹œμ²­ λͺ©λ‘μ— μΆ”κ°€ν•˜μ‹œκΈΈ ꢌμž₯ν•©λ‹ˆλ‹€:

μ•„ν‚€ν…μ²˜ μŠ€λ‚΅

확인해 λ³Ό λ§Œν•œ 링크

​React 18이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯을 ν–₯μƒν•˜λŠ” 방법 (opens in a new tab)​

​리디아 할리​ (opens in a new tab)

리디아 ν• λ¦¬μ˜ 이 μ•„λ¦„λ‹΅κ²Œ μ„€λͺ…λœ κΈ°μ‚¬μ—μ„œλŠ” Transitions, Suspense, React μ„œλ²„ μ»΄ν¬λ„ŒνŠΈμ™€ 같은 λ™μ‹œμ„± κΈ°λŠ₯이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯을 ν–₯μƒν•˜λŠ” 방법을 λ°°μ›λ‹ˆλ‹€.


β€‹λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ€ μ–΄λ–€ λͺ¨μŠ΅μΌκΉŒμš”?​ (opens in a new tab)

​웹 개발 μ½”λ”” (opens in a new tab)​

혼자 λ˜λŠ” μ†Œκ·œλͺ¨ νŒ€μœΌλ‘œ μž‘μ—…ν•˜λŠ” 데 μ΅μˆ™ν•œ 경우 λŒ€κ·œλͺ¨ κΈ°μ—…μ˜ μ „ν˜•μ μΈ μ†Œν”„νŠΈμ›¨μ–΄ 개발 라이프사이클(SDLC)에 λŒ€ν•œ 이 κ°œμš”λŠ” 맀우 μœ μ΅ν•©λ‹ˆλ‹€.


​가λŠ₯ν•œ ν•œ μ§€λ£¨ν•œ μ•„ν‚€ν…μ²˜λ₯Ό κ³ μˆ˜ν•˜μ„Έμš”β€‹ (opens in a new tab)

​애디 μ˜€μ‚¬λ‹ˆβ€‹ (opens in a new tab)

μ΅œμ‹  λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν”„λ ˆμž„μ›Œν¬λ‘œ 앱을 κ΅¬μΆ•ν•˜λŠ” 것은 항상 맀λ ₯μ μ΄μ§€λ§Œ μ‚¬μš©μžμ—κ²Œ κ°€μΉ˜λ₯Ό μ œκ³΅ν•˜λŠ” 데 관심이 μžˆλ‹€λ©΄ κ²€μ¦λ˜κ³  ν…ŒμŠ€νŠΈλœ(즉, μ§€λ£¨ν•œ) κΈ°μˆ μ„ κ³ μˆ˜ν•˜λŠ” 것이 μ„±κ³΅μ˜ κ°€μž₯ 쒋은 기회λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.


​Reactμ—μ„œ λΌμš°νŒ… 계측을 κ΅¬μΆ•ν•˜κ³  ν•„μš”ν•œ μ΄μœ β€‹ (opens in a new tab)

β€‹μ•ˆν† λ„¬λ‘œ μžλ‹ˆλ‹ˆ (opens in a new tab), λŒ„ μ• μ»€μŠ¨β€‹ (opens in a new tab)

React μ•±μ˜ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ λΌμš°νŒ… 둜직이 감당할 수 μ—†κ²Œ 된 경우 이 κΈ°μ‚¬λŠ” λΌμš°νŒ… 계측을 μ‚¬μš©ν•˜μ—¬ λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜λŠ” λͺ‡ 가지 아이디어λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


​Nuxt μ„œλ²„ ꡬ성 μš”μ†Œ κ°€μ΄λ“œβ€‹ (opens in a new tab)

β€‹λ‹€λ‹ˆμ—˜ λ‘œμš°β€‹ (opens in a new tab)

NuxtλŠ” λ‹€λ₯Έ ν”„λ ˆμž„μ›Œν¬μ™€λŠ” λ‹€λ₯Έ μ„œλ²„ μ»΄ν¬λ„ŒνŠΈ 및 섬 μ•„ν‚€ν…μ²˜ μ ‘κ·Ό 방식을 μ·¨ν•©λ‹ˆλ‹€. Vue λ©”νƒ€ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ΄λŸ¬ν•œ κΈ°λŠ₯이 μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄λŠ” 경우 이 κΈ°μ‚¬λŠ” ν›Œλ₯­ν•œ κ°œμš”μž…λ‹ˆλ‹€.

μ„œμž¬

μžλ°”μŠ€ν¬λ¦½νŠΈ λ””μžμΈ νŒ¨ν„΄ ν•™μŠ΅

ν•΄κ²°ν•˜λ €λŠ” λ¬Έμ œμ— μ ν•©ν•œ 좔상화λ₯Ό μ°ΎλŠ” 것은 μ’…μ’… μ˜¬λ°”λ₯Έ λ””μžμΈ νŒ¨ν„΄μ„ μ„ νƒν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 선택할 수 μžˆλŠ” νŒ¨ν„΄μ΄ λ„ˆλ¬΄ 많고 ν”„λ‘œκ·Έλž˜λ° 언어에 따라 κ΅¬ν˜„ 방식이 크게 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 말처럼 쉽지 μ•ŠμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ• λ”” μ˜€μ‚¬λ‹ˆ (opens in a new tab)의 고전적인 책인 'μžλ°”μŠ€ν¬λ¦½νŠΈ λ””μžμΈ νŒ¨ν„΄ ν•™μŠ΅' (opens in a new tab)의 κ°œμ •νŒμ΄ λ‚˜μ˜¨λ‹€λŠ” μ†Œμ‹μ„ λ“£κ³  맀우 κΈ°λ»€μŠ΅λ‹ˆλ‹€. 이 κ°œμ •νŒμ€ μ–Έμ–΄μ˜ μ΅œμ‹  κΈ°λŠ₯을 μ‚¬μš©ν•˜λ„λ‘ μ—…λ°μ΄νŠΈλ˜μ—ˆμœΌλ©° μ§€λ‚œ 10λ…„ λ™μ•ˆ λ“±μž₯ν•œ μƒˆλ‘œμš΄ νŒ¨ν„΄λ„ 일뢀 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

260νŽ˜μ΄μ§€ μ •λ„μ˜ λΆ„λŸ‰μœΌλ‘œ λ‹€μŒμ„ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€:

  • κ³ μ „: Gang of Four μ±…μ—μ„œ μΉœμˆ™ν•  수 μžˆλŠ” 생성 νŒ¨ν„΄, ꡬ쑰 νŒ¨ν„΄, 행동 νŒ¨ν„΄
  • μƒˆλ‘œμš΄ μ—…λ°μ΄νŠΈ: 비동기 μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό λ‹€λ£¨λŠ” νŒ¨ν„΄, MV* 및 λͺ¨λ“ˆ νŒ¨ν„΄μ— λŒ€ν•œ μ—…λ°μ΄νŠΈλœ μ„Ήμ…˜
  • λ Œλ”λ§ 및 React μ „μš©: React μ½”λ“œλ² μ΄μŠ€λ₯Ό κ΅¬μ„±ν•˜κ³  Islands μ•„ν‚€ν…μ²˜ 및 Next.js와 ν•¨κ»˜ν•˜λŠ” React μ„œλ²„ ꡬ성 μš”μ†Œμ™€ 같은 λͺ¨λ˜ λ Œλ”λ§ νŒ¨ν„΄μ„ ν¬ν•¨ν•œ νŒ¨ν„΄

μ˜€λŠ˜μ€ μ—¬κΈ°κΉŒμ§€μž…λ‹ˆλ‹€, μ—¬λŸ¬λΆ„! λκΉŒμ§€ ν•¨κ»˜ ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λ‰΄μŠ€λ ˆν„°κ°€ λ§ˆμŒμ— λ“œμ…¨λ‹€λ©΄ μΉœκ΅¬λ‚˜ λ™λ£Œλ“€κ³Ό κ³΅μœ ν•΄ μ£Όμ‹œλ©΄ 큰 힘이 될 κ²ƒμž…λ‹ˆλ‹€. (λ§ˆμŒμ— 듀지 μ•Šμ•˜λ‹€λ©΄ μ μ—κ²Œ κ³΅μœ ν•˜λŠ” 건 μ–΄λ– μ‹ κ°€μš”?)

μ €μ—κ²Œ ν”Όλ“œλ°±μ΄ μžˆμœΌμ‹ κ°€μš”? νŠΈμœ„ν„°λ‚˜ 이 이메일에 직접 λ‹΅μž₯ν•˜μ—¬ 자유둭게 연락해 μ£Όμ„Έμš”. λͺ¨λ“  λŒ“κΈ€μ„ 읽고 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

λˆ„κ°€ 이 이메일을 전달해 μ£Όμ—ˆλ‚˜μš”? λ¨Όμ € 그듀이 μ–Όλ§ˆλ‚˜ λŒ€λ‹¨ν•œμ§€ 말해주고, λ‹€μŒ 호λ₯Ό λ°”λ‘œ λ°›μ•„λ³΄μ‹œλ €λ©΄ λ‰΄μŠ€λ ˆν„° ꡬ독을 κ³ λ €ν•΄ λ³΄μ„Έμš”.

쒋은 ν•œ μ£Ό λ³΄λ‚΄μ„Έμš” πŸ‘‹

  • λ§₯슀