[번역] 좀 더 자주 형편없는 코드를 작성하세요 (you should write bad code more often)

Olgierd me
4 min readAug 25, 2016

--

이 글은 원작자 데릭 베일리(Derick Bailey)의 허락을 구해 한국어(Korean)로 번역했으며 원문은 you should write bad code more often 입니다.

번역 품질이 훌륭하지 않아 가능하면 원문을 읽는 것을 권장합니다.

This article has obtained the permission of the original author Derick Bailey translated into Korean. You can read the original article from his blog.

The translation quality is not great. I recommend you to read the original article.

저는 대부분 형편없는 코드를 작성하는 데 시간을 보냈습니다. 보기 흉하고, 읽고 이해하는 데 어려우며, 문제를 고치는 것이 불가능에 가까웠습니다.

저를 포함한 많은 사람들은 직접 작성한 코드를 보고 이 얼마나 훌륭한 코드인지 만족해 합니다. 쉽게 이해할 수 있으며 이 코드를 가지고 많은 것을 할 수 있다고 말이죠. 우리는 코드의 맥락과 단기 기억을 가지고 항상 코드를 보고 있다는 사실을 잊어버립니다. 물론 방금 만든 함수가 어떻게 동작하는지는 알고 있습니다. 그러나 몇 달, 몇 주, 며칠… 때로는 몇 시간 후는 어떨까요? 글쎄요…

저는 경력 생활의 많은 시간을 훌륭한 코드를 작성하는 고귀한 이상을 가지고 있었습니다. 최악인 것은 다른 사람의 코드보다 제 코드가 어쨌든 더 낫다는 망상에 빠져 있었습니다. 계속 성장하고 배워나가면서 언제나 제 오래된 코드를 다시 보면 형편없어 보입니다. 몇 가지 이유에서 이런 생각이 괜찮다는 것을 오랜 세월에 걸쳐 천천히 깨달았습니다.

배우고 있는 중이기 때문입니다(You’re Learning)

코드가 형편없는 이유는 배우고 있는 중이기 때문입니다. 새로운 언어, 프레임워크, 툴, API 등을 말이죠. 배운다는 것은 아직 그 답을 모른다는 것입니다. 그게 바로 배우는 이유죠. 답을 찾기 위해서요.

그러나 답을 찾기 위해서는 최소 한 번 그 문제를 해결해야 합니다. 처음에 해결할 때 형편없는 코드를 작성할 좋은 기회입니다. 배우는 중에는 좋은 추상화, 클린 코드, 우아함, 단순함 또는 유지보수성을 고려할 수 없습니다. 지금부터 10분간 간결함 위에서 요점을 가지고 아무것도 고려하지 않고 즉시 문제를 해결하는 코딩 스타일에 집중해야 합니다. 그 상태로 10일을 유지하세요. 이것이 바로 배움의 본질입니다.

배울 준비가 되어 있기 때문입니다(You’re Ready To Learn)

형편없는 코드를 작성하고 있다면 경기에서 한 발짝 나아간 상태입니다. 이 사실을 알고 있다는 것은 앞으로 더 나아질 수 있는 일종의 신호입니다. 당신이 더 발전하고 싶은 신호이며 다음 단계로 나아갈 준비가 되었다는 의미입니다.

당신의 코드가 형편없는 코드라고 인정하는 것은 배움의 신호입니다. 3개월 전에 작성한 코드를 보니 부끄럽습니까? 좋습니다. 그 후로 배운 게 있다는 의미입니다. 현재 프로젝트에 작성 중인 코드 때문에 기분이 안 좋거나 겁이 납니까? 적어도 배움의 필요성을 느끼는군요.

당신의 코드가 형편없다는 것을 인정하는 것은 스스로, 프로젝트에서, 경력 생활에서 할 수 있는 최선의 일들 중 하나입니다. 왜냐면 스스로 배우고 발전하길 원하니까요.

배우는 경험(The Learning Experience)

형편없는 코드의 진짜 문제는 코드 자체에 있는 것이 아닙니다. 진짜 문제는 배우고 있을 때 제품의 문제를 해결하려는 혼란에서 시작됩니다. 형편없는 코드를 너무 자주 제품 코드로 넣어버립니다. 가끔 이것은 도움되지 않을 때도 있고 나쁜 게 아닐 때도 있습니다. 그러나 배우는 과정에서 작성한 형편없는 코드는 제품에 넣어서는 안 됩니다.

배움은 프로젝트, 샘플, 그리고 데모에서 끝내야 합니다. 특정 라이브러리 사용법을 제품 코드로 배우는 대신, 제품을 흉내낸 데모 애플리케이션을 빌드하세요. 새로운 프로젝트를 시작할 때 사용해 본 적 없는 프레임워크를 사용하기로 결정하는 대신, 가지고 놀아 보는 시간을 가지세요. 조금만 뛰어들어 어떻게 동작하고 왜 그러는지 이해해 보세요.

제품 코드를 작성하는 과정에서 배우는 과정을 분리하는 것은 중요합니다. 제품을 다시 볼 때 어떻게 하면 더 나은 코드를 생산하고 이해할 것인지 문제를 해결하는 방법을 배우는 시간을 가지세요. 당신은 위기의 순간, 추가 요구사항, 그리고 기타 이슈에 대처하는 능력을 갖추게 될 것입니다.

형편없는 코드를 작성하세요(Write Bad Code)

항상 스케줄을 통제할 수 없을지도 모릅니다. 모든 아이디어에 대한 샘플 프로젝트를 작성할 시간이 없을지도 모릅니다. 그리고 가끔 형편없는 코드를 릴리즈하는 데 선택권이 없을 수도 있습니다. 이것이 현실입니다. 그러나 가능하면 한번 시도해 보세요. 형편없는 코드를 작성하는 것은 당신을 출시 준비된 솔루션으로부터 떨어지게 해 줍니다.

정말 좋아하는 글입니다. 코딩하기 시작하면 질 좋은 코드를 작성하려고 얼마나 머리 아프게 생각했는지, 아예 코딩을 못한 적도 많았습니다.

--

--