DAY 18 & 19

πŸ”– 였늘 읽은 λ²”μœ„: 9μž₯ λ‚˜λ¨Έμ§€ 절반(p.161~169), 그리고 Quiz

πŸ˜ƒ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©μ„ μ¨λ³΄μ„Έμš”.

도메인에 νŠΉν™”λœ μ–Έμ–΄(DSL)

ν”νžˆ μ“°λŠ” μ‹œμŠ€ν…œ μ‘°μž‘ APIλ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  API μœ„μ—λ‹€ ν•¨μˆ˜μ™€ μœ ν‹Έλ¦¬ν‹°λ₯Ό κ΅¬ν˜„ν•œ ν›„ κ·Έ ν•¨μˆ˜μ™€ μœ ν‹Έλ¦¬ν‹°λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ§œκΈ°λ„ 읽기도 μ‰¬μ›Œμ§„λ‹€.

개인적으둜 κ°€μž₯ 이해가 μ•ˆκ°€λŠ” νŒŒνŠΈμ˜€λ‹€. μš”μ§€λŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 지 λ•Œ ν…ŒμŠ€νŠΈ API λ₯Ό κ΅¬ν˜„ν•΄ DSL 을 λ§Œλ“€λΌλŠ” κ±°μ˜€λŠ”λ°, 이 DSL μ΄λž€ κ°œλ…μ΄ 잘 이해가 μ•ˆκ°„λ‹€.

이쀑 ν‘œμ€€

ν…ŒμŠ€νŠΈ API μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€μ€ μ‹€μ œ μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€κ³Ό ν™•μ‹€νžˆ λ‹€λ₯΄λ‹€. λ‹¨μˆœν•˜κ³ , κ°„κ²°ν•˜κ³ , ν‘œν˜„λ ₯이 풍뢀해야 ν•˜μ§€λ§Œ, μ‹€μ œ μ½”λ“œλ§ŒνΌ 효율적일 ν•„μš”λŠ” μ—†λ‹€.

ν…ŒμŠ€νŠΈ λ‹Ή assert ν•˜λ‚˜ & ν…ŒμŠ€νŠΈ λ‹Ή κ°œλ… ν•˜λ‚˜

  • ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 지 λ•ŒλŠ” ν•¨μˆ˜λ§ˆλ‚˜ assert 문을 단 ν•˜λ‚˜λ§Œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•˜λŠ” ν•™νŒŒκ°€ μžˆλ‹€.
  • μ–΄μ©Œλ©΄ "ν…ŒμŠ€νŠΈ ν•¨μˆ˜λ§ˆλ‹€ ν•œ κ°œλ…λ§Œ ν…ŒμŠ€νŠΈ ν•˜λΌ" λŠ” κ·œμΉ™μ΄ 더 λ‚«κ² λ‹€.
  • "κ°œλ… λ‹Ή assertλ¬Έ 수λ₯Ό μ΅œμ†Œλ‘œ 쀄여라" 와 "ν…ŒμŠ€νŠΈ ν•¨μˆ˜ ν•˜λ‚˜λŠ” κ°œλ… ν•˜λ‚˜λ§Œ ν…ŒμŠ€νŠΈν•˜λΌ"라 ν•˜κ² λ‹€.

F.I.R.S.T

κΉ¨λ—ν•œ ν…ŒμŠ€νŠΈλŠ” λ‹€μŒ λ‹€μ„― 가지 κ·œμΉ™μ„ λ”°λ₯΄λŠ”데,

  • Fast: ν…ŒμŠ€νŠΈλŠ” 빨라야 ν•œλ‹€.
  • Independent: 각 ν…ŒμŠ€νŠΈλŠ” μ„œλ‘œ μ˜μ‘΄ν•˜λ©΄ μ•ˆλœλ‹€.
  • Repeatable: ν…ŒμŠ€νŠΈλŠ” μ–΄λ–€ ν™˜κ²½μ—μ„œλ„ 반볡 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€. μ‹€μ œ ν™˜κ²½, QA ν™˜κ²½, λ²„μŠ€λ₯Ό 타고 μ§‘μœΌλ‘œ κ°€λŠ” 길에 μ‚¬μš©ν•˜λŠ” (λ„€νŠΈμ›Œν¬μ— μ—°κ²°λ˜μ§€ μ•Šμ€) λ…ΈνŠΈλΆ ν™˜κ²½μ—μ„œλ„ μ‹€ν–‰ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • Self-Validating: ν…ŒμŠ€νŠΈλŠ” λΆ€μšΈ(bool)κ°’μœΌλ‘œ κ²°κ³Όλ₯Ό λ‚΄μ•Ό ν•œλ‹€. 성곡 μ•„λ‹ˆλ©΄ μ‹€νŒ¨λ‹€.
  • Timely: ν…ŒμŠ€νŠΈλŠ” μ μ‹œμ— μž‘μ„±ν•΄μ•Ό ν•œλ‹€. λ‹¨μœ„ ν…ŒμŠ€νŠΈλŠ” ν…ŒμŠ€νŠΈν•˜λ €λŠ” μ‹€μ œ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•˜κΈ° 직전에 κ΅¬ν˜„ν•œλ‹€.

πŸ€” 였늘 읽은 μ†Œκ°μ€? λ– μ˜€λ₯΄λŠ” 생각을 κ°€λ³κ²Œ μ μ–΄λ³΄μ„Έμš”

ν…ŒμŠ€νŠΈ API, DSL 에 λŒ€ν•œ κ°œλ…μ΄ ν—·κ°ˆλ¦° μž₯μ΄μ—ˆλ‹€. κ·Έλž˜λ„ ν…ŒμŠ€νŠΈ μ½”λ“œμ— λŒ€ν•œ μ „λ°˜μ μΈ κ°œλ…μ„ λ‹€λ£° 수 μžˆμ—ˆλ‹€λŠ” μ μ—μ„œ 의의λ₯Ό λ‘”λ‹€.

πŸ”Ž κΆκΈˆν•œ λ‚΄μš©μ΄ μžˆκ±°λ‚˜, 잘 μ΄ν•΄λ˜μ§€ μ•ŠλŠ” λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ μ–΄λ³΄μ„Έμš”.

μ†Œκ° 3쀄 μš”μ•½

  • ν…ŒμŠ€νŠΈ API μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€μ€ μ‹€μ œ μ½”λ“œμ— μ μš©ν•˜λŠ” ν‘œμ€€κ³Ό ν™•μ‹€νžˆ λ‹€λ₯΄λ‹€. λ‹¨μˆœν•˜κ³ , κ°„κ²°ν•˜κ³ , ν‘œν˜„λ ₯이 풍뢀해야 ν•˜μ§€λ§Œ, μ‹€μ œ μ½”λ“œλ§ŒνΌ 효율적일 ν•„μš”λŠ” μ—†λ‹€.
  • ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ λ°©μΉ˜λ˜μ–΄ 망가지면 μ‹€μ œ μ½”λ“œλ„ 망가진닀. ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό κΉ¨λ—ν•˜κ²Œ μœ μ§€ν•˜μž.
  • ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” F.I.R.S.T κ·œμΉ™μ„ λ”°λΌμ•Όν•œλ‹€: Fast, Independent, Repeatable, Self-Validating, Timely

0개의 λŒ“κΈ€