Skip to content

Latest commit

Β 

History

History
102 lines (75 loc) Β· 3.03 KB

AGENTS.md

File metadata and controls

102 lines (75 loc) Β· 3.03 KB

Expo HAS CHANGED

Read the exact versioned docs at https://docs.expo.dev/versions/v56.0.0/ before writing any code.

섀계 μš°μ„  ν˜‘μ—… 원칙

이 ν”„λ‘œμ νŠΈμ˜ μž‘μ—…μ€ λ‹¨μˆœ κΈ°λŠ₯ κ΅¬ν˜„λΏ μ•„λ‹ˆλΌ μ‚¬μš©μžκ°€ ν˜„μž¬ ꡬ쑰λ₯Ό 직접 μ΄ν•΄ν•˜κ³  μ€‘μš”ν•œ 섀계 결정을 내릴 수 μžˆλ„λ‘ μ§„ν–‰ν•œλ‹€.

섀계가 ν•„μš”ν•œ 뢀뢄을 μž„μ˜λ‘œ κ²°μ •ν•΄ λ°”λ‘œ κ΅¬ν˜„ν•˜μ§€ μ•ŠλŠ”λ‹€. μ‚¬μš©μžκ°€ λͺ…μ‹œμ μœΌλ‘œ κ΅¬ν˜„ 진행을 μŠΉμΈν•˜κΈ° μ „κΉŒμ§€ 섀계 λ‹¨κ³„μ—μ„œλŠ” μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€.

μž‘μ—… μˆœμ„œ

섀계가 ν¬ν•¨λœ μž‘μ—…μ€ λ°˜λ“œμ‹œ λ‹€μŒ μˆœμ„œλ‘œ μ§„ν–‰ν•œλ‹€.

  1. ν˜„μž¬ ꡬ쑰(As-Is)λ₯Ό λΆ„μ„ν•œλ‹€.
  2. ν•΄κ²°ν•΄μ•Ό ν•˜λŠ” 기술적 문제λ₯Ό μ •μ˜ν•œλ‹€.
  3. μ‹€μ œλ‘œ 선택할 κ°€μΉ˜κ°€ μžˆλŠ” μ„€κ³„μ•ˆ 2~3개λ₯Ό μ œμ‹œν•œλ‹€.
  4. 각 μ„€κ³„μ•ˆμ˜ μž₯단점, μ„±λŠ₯, λ³΅μž‘λ„, μœ μ§€λ³΄μˆ˜μ„±, ν™•μž₯성을 λΉ„κ΅ν•œλ‹€.
  5. κ°€μž₯ μΆ”μ²œν•˜λŠ” μ•ˆκ³Ό μΆ”μ²œ 이유λ₯Ό μ œμ‹œν•œλ‹€.
  6. [결정이 ν•„μš”ν•œ 사항]을 μ •λ¦¬ν•˜κ³  μž‘μ—…μ„ λ©ˆμΆ˜λ‹€.
  7. μ‚¬μš©μžκ°€ μ„€κ³„μ•ˆμ„ μ„ νƒν•˜κ³  κ΅¬ν˜„μ„ λͺ…μ‹œμ μœΌλ‘œ μŠΉμΈν•œ λ’€μ—λ§Œ μ½”λ“œλ₯Ό λ³€κ²½ν•œλ‹€.
  8. κ΅¬ν˜„ ν›„ μ‹€μ œ μ½”λ“œκ°€ μ„ νƒν•œ 섀계와 μΌμΉ˜ν•˜λŠ”μ§€ λ‹€μ‹œ κ²€μ¦ν•œλ‹€.

의미 μ—†λŠ” λŒ€μ•ˆμ„ 개수만 λ§žμΆ”κΈ° μœ„ν•΄ λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€. μœ νš¨ν•œ 섀계가 ν•˜λ‚˜λΏμ΄λΌλ©΄ κ·Έ μ΄μœ μ™€ μ œμ•½μ„ μ„€λͺ…ν•œλ‹€.

섀계 μ‹œ ν•„μˆ˜ 뢄석 ν•­λͺ©

각 κΈ°λŠ₯의 μ„€κ³„μ—μ„œλŠ” μ΅œμ†Œν•œ λ‹€μŒ λ‚΄μš©μ„ 닀룬닀.

  • κΈ°λŠ₯의 μ±…μž„μ΄ μ†ν•˜λŠ” 계측
  • μ±…μž„μ§ˆ module, entity, feature, widget
  • μ™ΈλΆ€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν”„λ‘œμ νŠΈ domain μ‚¬μ΄μ˜ 경계
  • 데이터 흐름과 λ°©ν–₯
  • μƒνƒœ μ†Œμœ μž
  • lifecycle κ΄€λ¦¬μž
  • μ‹€νŒ¨κ°€ λ‹€λ₯Έ κΈ°λŠ₯에 λ―ΈμΉ˜λŠ” 영ν–₯
  • interface λ˜λŠ” adapter둜 격리할 λΆ€λΆ„
  • ν–₯ν›„ κ΅¬ν˜„ λ³€κ²½ μ‹œ κ΅μ²΄ν•˜κΈ° μ–΄λ €μš΄ λΆ€λΆ„

κ°€λŠ₯ν•˜λ©΄ κΈ°λŠ₯에 μ ν•©ν•œ 데이터 흐름도λ₯Ό ν¬ν•¨ν•œλ‹€.

Input
  ↓
Adapter
  ↓
Domain
  ↓
Use Case
  ↓
UI

μ„€κ³„μ•ˆ 비ꡐ ν˜•μ‹

각 μ„€κ³„μ•ˆμ€ ꡬ쑰, μž₯점, 단점을 μ„€λͺ…ν•˜κ³  ν•„μš”μ— 따라 μ„±λŠ₯, λ³΅μž‘λ„, μœ μ§€λ³΄μˆ˜μ„±, ν™•μž₯μ„± 차이λ₯Ό ν•¨κ»˜ λΉ„κ΅ν•œλ‹€.

섀계 κ²°κ³Ό λ§ˆμ§€λ§‰μ—λŠ” λ°˜λ“œμ‹œ λ‹€μŒ ν˜•μ‹μœΌλ‘œ μ‚¬μš©μžκ°€ 선택해야 ν•˜λŠ” λ‚΄μš©μ„ μ •λ¦¬ν•œλ‹€.

[결정이 ν•„μš”ν•œ 사항]

1. ...
2. ...
3. ...

이 μ‹œμ μ—λŠ” κ΅¬ν˜„ν•˜μ§€ μ•Šκ³  μ‚¬μš©μžμ˜ 선택을 κΈ°λ‹€λ¦°λ‹€. μ€‘μš”ν•œ μ•„ν‚€ν…μ²˜ 결정을 μ‚¬μš©μž 승인 없이 ν™•μ •ν•˜μ§€ μ•ŠλŠ”λ‹€.

섀계 κ²°μ • 기둝

μ‚¬μš©μžκ°€ μ„ νƒν•œ μ€‘μš”ν•œ 결정은 κ΅¬ν˜„ ν›„ ν¬νŠΈν΄λ¦¬μ˜€μ—μ„œλ„ μ„€λͺ…ν•  수 μžˆλ„λ‘ λ³„λ„μ˜ architecture λ¬Έμ„œμ— 정리할 수 μžˆλŠ” ADR ν˜•νƒœλ‘œ κΈ°λ‘ν•œλ‹€. μ½”λ“œμ—λŠ” 섀계 μ„€λͺ…을 μœ„ν•œ κ³Όλ„ν•œ 주석을 λ„£μ§€ μ•ŠλŠ”λ‹€.

Decision:
μ–΄λ–€ ꡬ쑰λ₯Ό μ„ νƒν–ˆλŠ”κ°€

Context:
μ™œ 이 결정이 ν•„μš”ν–ˆλŠ”κ°€

Alternatives:
μ–΄λ–€ λŒ€μ•ˆμ„ κ²€ν† ν–ˆλŠ”κ°€

Reason:
μ™œ 이 방식을 μ„ νƒν–ˆλŠ”κ°€

Trade-off:
무엇을 μ–»κ³  무엇을 ν¬κΈ°ν–ˆλŠ”κ°€

Result:
μ‹€μ œ κ΅¬ν˜„ λ˜λŠ” μΈ‘μ • κ²°κ³ΌλŠ” μ–΄λ• λŠ”κ°€