본문 바로가기

Programming

뜯어 고치기 vs '2' 추가하기

이게 아닌데...

뭔가 잘못됐다. 높이가 40px인 공통 버튼 컴포넌트 <Button/>를 만들었다. 하지만 알고 봤더니 높이가 40px이 아니라 28px이었다. 이미 수십 번 넘게 이곳저곳에서 쓰였던 상황이다. 당신은 어떤 선택을 해야 할까?

 

A.  뜯어고치기

어차피 바뀌어야하는 것이다. 레이아웃이 깨지는 곳을 고치는 것은 매우 귀찮은 일이지만 어처피 해야 할 일을 하는 것일 뿐이다. 지금 고치지 않으면 점점 공수는 커져만 갈 것이다.

그래서 당신은 공통 버튼 컴포넌트를 수정하기로 결심했다.

선택의 결과

이제 당신에게 주어진 것은 버튼을 쓴 곳마다 레이아웃이 깨지는지 확인해야 하는 일이다.

아쉽게도 버튼은 주변 레이아웃에 많은 영향을 끼쳤다. 하단 푸터 버튼 영역의 height를 무심코 40px로 지정했었고, 15개의 푸터 컴포넌트를 수정했어야만 했다. 

당신은 약간 후회했다. 사실 버튼이 40px 일 때도 조금은 컸지만 괜찮았다며, 지금 이 시점에 굳이 멀쩡히 돌아가는 곳을 고쳐야 할 필요가 있었을까 하고 생각했다.

 

B.  '2' 추가하기

지금 멀쩡히 돌아가는 컴포넌트들을 수정하여 일거리를 만드는 것은, 현재 시점에 해서는 안될 일이다. 하지만 이 상태로 방치할 수는 없다. 앞으로 새로 만든 컴포넌트는 Button2 컴포넌트를 사용하게 될 것이다. 나중에 시간이 생기거나 수정해야 할 일이 생길 때, 기존의 Button 컴포넌트를 Button2 컴포넌트로 변경하면 될 일이다. 

그래서 당신은 기존 컴포넌트 대신 Button2 컴포넌트를 만들기로 결심했다.

선택의 결과

모든 Button 컴포넌트를 Button2 컴포넌트로 변경해야 Button2 컴포넌트로 변경할 수 있다. 1년의 시간이 지났다. 코드의 곳곳에 Button2가 넘쳐난다. 이번엔 Button과 Button2 모두 수정해야할 상황이 생겨서 Ctrl C + Ctrl + V로 2번 고쳤다.

당신은 약간 후회했다. 차라리 그때 좀 고생하더라도 2를 붙이는 대신 잘 돌아가게 수정할 것을 말이다. 왜냐면... 이젠 Button3이 등장할 것이기 때문이다. ButtonButton2, 그리고 Button3까지, 숫자가 계속 늘어나고 있다. 

 

둘 다 마음에 안 든다

그럴 수밖에 없다. 제일 좋은 상황은 높이가 28px이지 않은 상황이었다. 바꿀 필요가 없었으면 선택을 할 필요도 없었다. 차악을 골라야 했을 뿐이다.

 

언제부터 '2'를 골라야 할까?

만약 높이를 고치는 것이 아니라 사이드 이팩트가 없는 로직을 수정하는 것이라면 '2'를 붙이고 새로 만들지 않아도 될까? 겉보기에는 달라지는 게 없는데 굳이 2를 붙여서 안정성을 가져가야 할까? 숫자형 네이밍이 갖는 문제점도 무시 못한다. Button2를 만드는 것이 어렵지, Button3을 만드는 것은 쉽다. 

 

네이밍만큼 어려운 선택

A가 깔끔한 선택인 것은 누구나 다 아는 사실이다. B를 선택하면 마치 아래 사진 같은 선택을 하는 것만 같을 수도 있다.

흔히 프로그래밍 관련하여 나오는 사진

그러나 A는 아슬아슬한 젠가 블럭을 빼내는 것과 마찬가지로 쉽게 선택할 수 있는 일은 아니다. 결국 위의 A vs B를 선택할 때 중점을 두는 것은 사이드 이펙트를 감당할 수 있는지 여부라고 할 수 있다.

 

그래서 결국...?

2를 붙이는 선택을 많이했었다.

 

반응형