λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» 개발자 이야기/✏️ μ •λ¦¬λ…ΈνŠΈ

[TIL] 7μž₯ μ½”λ”©ν•˜λŠ” λ™μ•ˆ

by μ •μ„ ν•œ 2022. 5. 29.
728x90
λ°˜μ‘ν˜•
7μž₯ μ½”λ”©ν•˜λŠ” λ™μ•ˆ

였늘의 TIL 3쀄 μš”μ•½

  • κ°œλ°œμžλŠ” μš°μ—°μ— λ§‘κΈ°κ±°λ‚˜ λ§‰μ—°ν•˜κ²Œ κ°€μ •ν•΄μ„œλŠ” μ•ˆλœλ‹€. 증λͺ…ν•΄λ‚΄μ•Ό ν•œλ‹€.
  • κ°œλ°œμΌμ •μ΄λ‚˜ μŠ€μŠ€λ‘œμ—κ²Œ μ½”λ“œλ₯Ό 합리화 μ‹œν‚€λ©΄ μ•ˆλœλ‹€.
  • 기본원칙과 μ˜¬λ°”λ₯Έ κ·œμΉ™μ„ μ§€μΌœλΌ.

1. μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©

코딩은 기계적인 μž‘μ—…μ΄ μ•„λ‹ˆλ‹€. 
μ½”λ”©ν•  λ•ŒλŠ” λ§€ μˆœκ°„ 결정을 λ‚΄λ €μ•Ό ν•˜λŠ”λ°, ν”„λ‘œκ·Έλž¨μ΄ μ •ν™•ν•˜κ²Œ μƒμ‚°μ μœΌλ‘œ μž‘λ™ν•˜λ©΄μ„œ 천수λ₯Ό λˆ„λ¦¬λ„λ‘ ν•˜λ €λ©΄ 사렀 κΉŠμ€ 생각과 νŒλ‹¨μœΌλ‘œ 결정을 λ‚΄λ €μ•Ό ν•œλ‹€.

였직 μΈκ°„λ§Œμ΄ 무언가λ₯Ό 직접 보고, μ •ν™•ν•œ μ˜ˆμΈ‘μ— ν•„μš”ν•œ λͺ¨λ“  정보λ₯Ό νšλ“ν•˜κ³ , 심지어 μˆœκ°„μ μœΌλ‘œλŠ” μ •ν™•ν•œ μ˜ˆμΈ‘μ„ ν•œ 후에도, 그런데 그것이 μ•„λ‹ˆλΌκ³  말할 수 μžˆλ‹€.
ν”„λ‘œκ·Έλž˜λ¨Έλ‘œμ„œ κ²½ν—˜μ΄ λŠ˜μ–΄ 갈수둝 μ—¬λŸ¬λΆ„μ˜ λ‡Œμ—λŠ” 암묡적인 지식이 켜켜이 μŒ“μΈλ‹€.
잘 λ˜λŠ” 방법, 잘 μ•ˆ λ˜λŠ” 방법, 였λ₯˜ ν˜•νƒœλ³„λ‘œ κ°€λŠ₯ν•œ 원인 λ“± μΌν•˜λŠ” λ™μ•ˆ 보고 λ“£κ³  λŠλΌλŠ” λͺ¨λ“  것이 μŒ“μΈλ‹€.
 1) 일단 λ³ΈλŠ₯이 λ°˜μ‘ν•˜κ³  μžˆμŒμ„ 인지.
 2) μ™œ 이런 λŠλ‚Œμ΄ λ“œλŠ”μ§€ μ•Œμ•„λ‚Ό 것.

개발자인 μš°λ¦¬λ“€ μ—­μ‹œ μ§€λ’°λ°­μ—μ„œ μΌν•œλ‹€. ν•˜λ£¨μ—λ„ 수백 κ°œκ°€ λ„˜λŠ” 함정이 μš°λ¦¬κ°€ λΉ μ§€κΈ°λ₯Ό 기닀리고 μžˆλ‹€.
μš°λ¦¬λŠ” μš°μ—°μ— λ§‘κΈ°λŠ” ν”„λ‘œκ·Έλž˜λ°, κ³§ ν–‰μš΄κ³Ό μš°μ—°ν•œ 성곡에 μ˜μ‘΄ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€. λŒ€μ‹  'μ˜λ„μ μœΌλ‘œ ν”„λ‘œκ·Έλž˜λ°'ν•΄μ•Ό ν•œλ‹€.
μ™œ μ½”λ“œκ°€ λ§κ°€μ‘ŒλŠ”μ§€ κ°œλ°œμžκ°€ λͺ¨λ₯΄λŠ” μ΄μœ λŠ” μ• μ΄ˆμ— μ½”λ“œκ°€ μ™œ 잘 λŒμ•„κ°€λŠ”μ§€λ„ λͺ°λžκΈ° λ•Œλ¬Έμ΄λ‹€.
κ°€μ •ν•˜μ§€ 말라. 증λͺ…ν•˜λΌ.

μˆ«μžκ°€ μ™ΈλΆ€ μš”μΈμ— 따라 달라진닀면 μž μ‹œ μž‘μ—…μ„ λ©ˆμΆ”κ³  μ»€λ‹€λž€ μˆ˜κ°€ 듀어왔을 경우 μˆ˜ν–‰ μ‹œκ°„μ΄λ‚˜ λ©”λͺ¨λ¦¬ μ†Œλͺ¨μ— μ–΄λ–€ 영ν–₯을 λ―ΈμΉ μ§€ 생각해 λ³΄λŠ” 것이 μ’‹λ‹€.
μ‚¬μš©ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ 차수λ₯Ό μΆ”μ •ν•˜λΌ.
μ„±κΈ‰ν•œ μ΅œμ ν™”λ₯Ό μ‘°μ‹¬ν•˜λΌ. μ–Έμ œλ‚˜ μ–΄λ–€ μ•Œκ³ λ¦¬μ¦˜μ„ κ°œμ„ ν•˜λŠλΌ μ—¬λŸ¬λΆ„μ˜ κ·€μ€‘ν•œ μ‹œκ°„μ„ νˆ¬μžν•˜κΈ° 전에 κ·Έ μ•Œκ³ λ¦¬μ¦˜μ΄ μ •λ§λ‘œ 병λͺ©μΈμ§€ λ¨Όμ € ν™•μΈν•˜λŠ” 것이 μ’‹λ‹€.
μ±… μΆ”μ²œ : λ‘œλ²„νŠΈ 세지웍 - μ•Œκ³ λ¦¬μ¦˜. μ•Œκ³ λ¦¬μ¦˜ 뢄석 μž…λ¬Έ

μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ€ 건좕보닀 정원 가꾸기에 더 가깝닀. λ”±λ”±ν•˜κΈ°λ³΄λ‹€λŠ” 유기적인 ν™œλ™μ΄λ‹€.
λ¦¬νŒ©ν„°λ§ : λ°–μœΌλ‘œ λ“œλŸ¬λ‚˜λŠ” λ™μž‘μ€ κ·ΈλŒ€λ‘œ μœ μ§€ν•œ 채 λ‚΄λΆ€ ꡬ쑰λ₯Ό λ³€κ²½ν•¨μœΌλ‘œμ¨ 이미 μ‘΄μž¬ν•˜λŠ” μ½”λ“œλ₯Ό μž¬κ΅¬μ„±ν•˜λŠ” 체계적 기법.
 1) 이 ν™œλ™μ€ 체계적이닀. μ•„λ¬΄λ ‡κ²Œλ‚˜ ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€.
 2) λ°–μœΌλ‘œ λ“œλŸ¬λ‚˜λŠ” λ™μž‘μ€ λ°”λ€Œμ§€ μ•ŠλŠ”λ‹€. κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” μž‘μ—…μ΄ μ•„λ‹ˆλ‹€.
μœ„ν—˜ν•˜μ§€ μ•Šμ€ μž‘μ€ 단계듀을 λ°ŸλŠ” 일상 ν™œλ™. μ •ν™•ν•œ λͺ©μ μ„ κ°€μ§€κ³  μ •λ°€ν•˜κ²Œ μ ‘κ·Όν•˜λŠ” ν™œλ™μ΄λ‹€.
κ·Έλž˜μ„œ μ½”λ“œλ₯Ό λ°”κΎΈκΈ° μ‰½κ²Œ μœ μ§€ν•˜λŠ” 것이닀.
무엇이든 '잘λͺ»'λ˜μ—ˆλ‹€λŠ” 생각이 λ“€ λ•Œκ°€ μžˆμ„ 것이닀. μ£Όμ €ν•˜μ§€ 말고 λ³€κ²½ν•˜λΌ.
μ–Έμ œλ‚˜ λ°”λ‘œ μ§€κΈˆμ΄ μ΅œμ κΈ°λ‹€. μ½”λ“œλ₯Ό λ¦¬νŒ©ν„°λ§ ν•  μ΄μœ λŠ” μ•„μ£Ό λ§Žλ‹€.

ν…ŒμŠ€νŠΈλŠ” 버그λ₯Ό μ°ΎκΈ° μœ„ν•œ 것이 μ•„λ‹ˆλ‹€.
ν…ŒμŠ€νŠΈκ°€ μ½”λ“œμ˜ 첫 번 μ§Έ μ‚¬μš©μžλ‹€.
TDD λ°œμƒμ˜ 핡심은 TDDλ₯Ό μ΄ν–‰ν•˜λŠ” 반볡 μ£ΌκΈ°κ°€ 기껏해야 λͺ‡ λΆ„ μ •λ„λ‘œ 맀우 μ§§μ•„μ•Ό ν•œλ‹€λŠ” 것이닀. λ”°λΌμ„œ λŠμž„μ—†μ΄ ν…ŒμŠ€νŠΈ μž‘μ„±κ³Ό ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜κ²Œ λ§Œλ“€κΈ°λ₯Ό λ°˜λ³΅ν•˜κ²Œ λœλ‹€.

κΈ°λ³Έ λ³΄μ•ˆ 원칙
 1) 곡격 ν‘œλ©΄μ„ μ΅œμ†Œν™”ν•˜λΌ.
 2) μ΅œμ†Œ κΆŒν•œ 원칙
 3) μ•ˆμ „ν•œ κΈ°λ³Έκ°’
 4) 민감 정보λ₯Ό μ•”ν˜Έν™”ν•˜λΌ.
 5) λ³΄μ•ˆ μ—…λ°μ΄νŠΈλ₯Ό μ μš©ν•˜λΌ.

728x90
λ°˜μ‘ν˜•