Software Develop

Code Kata

2020. 4. 23. 16:46

 

클린 코더(The Clean Coder, 단순기술자에서 진정한 소프트웨어 장인이 되기까지) - 6장 연습 을 읽다가...

Kata - 품새, 형 - 이라는 말이 나와서 간단한 글을 남겨 둡니다.

 

이를 테면, 카타는 준비 운동 같은 것입니다.

태권도에서도 품새같은 걸 연습하듯이, ('클린 코더'에서 역자는 Kata 를 품새로 번역을 했습니다.)

뭔가 코딩을 하기 전에 잠시 연습삼아 해보는 코딩을 말하는 것입니다.

저자는 매일 정해진 코딩을 하는 듯 한데, 찾아보니 https://www.codewars.com/ 에 적당한 연습 문제들이 꽤 있는 것 같습니다.

 

첫 Kotlin Kata 는 아래였습니다.

fun multiply(x: double, y: double) => x * y

잘 실행되도록 고치라는 것인데, 생각보다 대단치 않은 함정들이 있습니다.

(컴파일 후 나오는 어떤 에러메시지를 참조하지 않고, 단순히 에디터로 풀어보는 것도 괜찮습니다. ㅋㅋ)

 

저자는 마치 운동을 하기전, 준비 운동도 하고, 운동을 마친 후, 몸 풀기? 마무리 운동을 하는 것처럼 Kata 를 한 번씩 해보라는 정도입니다.

어떤 운동을 하기 전에 이런 준비/마무리 운동을 하는 것은 부상을 예방하거나 근육에 무리를 덜 가게 한다던가 하는 연구 결과들이 있을 듯 하지만, 코드 카타는 솔직히 그런 연구 결과들이 나오기는 어려운 녀석임에는 틀림없습니다.

코딩을 하기 전에 연습문제 하나 풀었다고 버그의 갯수가 줄어든다던가 혹은 만드는 시간이 줄어들었다던가 하는 것들은 측정하기 어려운 일일 것입니다. (S/W 개발 분야가 대부분 측정하기 힘든 것들 투성이이긴 합니다. ㅋ)

 

하지만, 간혹 Best Practice 나 남들이 풀어놓은 것들을 보다 보면, 평소에 내가 잘 모르던 api 들을 알게 될 수도 있고, 이런 식으로 코딩을 할 수도 있구나 하고 얻게 되는 것들도 있습니다.

그리고, 비록, 코딩하는데 도움이 될지/아닐지, 좋아/나빠 를 똑 부러지게 이야기하기는 어렵지만, 좋은것 같다? 나쁘지는 않다 정도

며칠 혹은 몇주간 매일 연습삼아 하나씩 해본 뒤, 괜찮다고 생각되면 습관처럼 계속 해보는 것이 좋을 것 같습니다.

 

P.S. 카타는 알고리즘 문제처럼 빠르거나 최적의 해결안을 내놓는 것을 목적으로 한다기 보다는 단순한 코드를 지향(?)한다고 볼 수 있습니다. 그래서, 몸 풀기용 문제로 어려운 문제보다는 쉽게 풀 수 있는 문제들이 많습니다.