User Tools

Site Tools


blog:why_code_regresses

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
blog:why_code_regresses [2026/01/11 14:01] hyjeongblog:why_code_regresses [2026/01/11 14:07] (current) – [회귀는 실력의 문제가 아니라 규모의 문제다] hyjeong
Line 18: Line 18:
 그것은 수많은 **가정, 전제, 상태**가 얽혀 있는 구조물이다. 그것은 수많은 **가정, 전제, 상태**가 얽혀 있는 구조물이다.
  
-* 이 함수는 이런 값이 들어온다는 가정 +  * 이 함수는 이런 값이 들어온다는 가정 
-* 이 플래그는 여기서만 바뀐다는 믿음 +  * 이 플래그는 여기서만 바뀐다는 믿음 
-* 이 호출은 항상 이 순서로 이루어진다는 암묵적 전제+  * 이 호출은 항상 이 순서로 이루어진다는 암묵적 전제
  
 우리는 보통 **눈앞에 보이는 문제 하나**를 고친다. 우리는 보통 **눈앞에 보이는 문제 하나**를 고친다.
Line 41: Line 41:
 특히 다음과 같은 코드들은 매우 위험하다. 특히 다음과 같은 코드들은 매우 위험하다.
  
-* 디버그를 위해 남겨둔 분기 +  * 디버그를 위해 남겨둔 분기 
-* 실험하다가 주석 처리한 로직 +  * 실험하다가 주석 처리한 로직 
-* “혹시 몰라서” 유지한 예외 처리+  * “혹시 몰라서” 유지한 예외 처리
  
 새 기능이 추가되는 순간, 새 기능이 추가되는 순간,
Line 59: Line 59:
 **사람의 기억은 설계 의도를 오래 보존하지 못하기 때문**이다. **사람의 기억은 설계 의도를 오래 보존하지 못하기 때문**이다.
  
-* 당시 왜 이런 구조를 선택했는지 +  * 당시 왜 이런 구조를 선택했는지 
-* 어떤 대안을 포기했는지 +  * 어떤 대안을 포기했는지 
-* 어떤 버그를 피하기 위한 우회였는지+  * 어떤 버그를 피하기 위한 우회였는지
  
 이런 맥락은 코드에 온전히 남아 있지 않다. 이런 맥락은 코드에 온전히 남아 있지 않다.
Line 78: Line 78:
 **시스템이 커졌다는 신호**에 가깝다. **시스템이 커졌다는 신호**에 가깝다.
  
-* 기능은 늘었고 +  * 기능은 늘었고 
-* 실행 경로는 많아졌으며 +  * 실행 경로는 많아졌으며 
-* 상호작용은 예측하기 어려워졌다+  * 상호작용은 예측하기 어려워졌다
  
 이 상태에서 과거의 안정성을 그대로 유지하는 것은 이 상태에서 과거의 안정성을 그대로 유지하는 것은
Line 92: Line 92:
 하지만 **되돌아가는 비용**은 줄일 수 있다. 하지만 **되돌아가는 비용**은 줄일 수 있다.
  
-* 무엇을 고쳤는지가 아니라 *왜* 고쳤는지를 남기는 커밋 메시지 +  * 무엇을 고쳤는지가 아니라 **왜** 고쳤는지를 남기는 커밋 메시지 
-* “이건 여기까지만 책임진다”는 명확한 경계 +  * “이건 여기까지만 책임진다”는 명확한 경계 
-* 언제든 이전 상태로 돌아갈 수 있는 구조+  * 언제든 이전 상태로 돌아갈 수 있는 구조
  
 이것들은 단순한 개발 습관이 아니다. 이것들은 단순한 개발 습관이 아니다.
blog/why_code_regresses.1768107694.txt.gz · Last modified: by hyjeong