배경
- 저번주에 설명했던 Product Analytics, 잘 들으셨나요?
- 결국 우리가 만드는 소프트웨어는 유저의 니즈에 의해 만들어져야하고, 만약 유저가 사용하지 않는다면 과감히 버려야합니다. (모든 종류의 “정리”는 버리는 것으로부터 출발하죠)
- 저는 쓸모없는 부분을 지속적으로 지워나가는 것이 소프트웨어 운영의 꽃이라고 생각하는데요. 이를 위해 “지우기 쉬운 코드”를 작성하는 것은 매우 중요합니다.
- 지우기 쉬운 코드는 어떻게 작성하면 좋을까요?
이야기: 지우기 쉬운 코드
보통 거시적인 관점의 소프트웨어 “설계”를 하다보면, 레이어를 하나하나 쌓아올리게 되는데요. 그렇게 되면 특정 기능을 만들때마다 여러 레이어의 코드를 손대게 되고, 이러한 변경사항들은 지우기가 매우 어려워집니다. 또한, 우리가 기능을 만들때도 대부분 이 코드를 지울 생각을 전혀 안하기 때문에, 내가 작성하는 코드들은 점점 더 현재 코드베이스에 녹아들고, 녹아든 코드베이스는 레거시가 되어 우리를 지속적으로 괴롭히죠.
왜 우리는 코드를 작성하면서 지울 생각을 안할까요? 바로 우리가 만드는 것이 잘될거라는 막연한 행복 회로 때문일 것입니다.
짤

이 행복 회로를 없애야합니다. 기능을 10번 배포했다고 칩시다. 몇번이나 성공할까요? 지우기 쉬운 코드는 “우리가 만드는 제품이 실제로 유저에게 가치를 줄 지 도저히 모르겠다”라는 겸손함으로부터 출발합니다.
어떻게 하면 지우기 쉬운 코드를 쓸 수 있나요?
자 그럼 그 겸손함으로부터 출발해볼까요? 만약에 내 코드가 실제로 유저에게 가치를 줄 지 도저히 모르겠다면 어떻게 코딩을 하면 좋을까요?
(생각해보기) 파일 한개에 새 기능 몰아넣기 vs 파일 여러개를 수정해 구현하기
- 기능마다 파일이 나뉘어지고, 한 기능이 한 파일이 되면 얼마나 좋을까요?
- 시간이 지나면서 파일들이 쌓이고, 이것들이 모여서 전체 제품이 되는거죠
