Search

CodeWars로 알고리즘 공부하기

subtitle
알고리즘 공부의 게이미피케이션
Tags
알고리즘
Created
2021/06/05
2 more properties
Jay Lee라는 사람이 쓴 글을 보고 코드워즈를 시작했다.
백준이나 릿코드처럼 유명한 플랫폼도 있지만 코드워즈는 streak 서비스를 제공한다. git 일일 커밋처럼 연속 공부 일자때문에 일단 시작하면 꾸준히 할 것 같다는 생각이 들었다.
단, streak 서비스는 유료이고 이용하려면 한달에 5달러 또는 20% 할인된 가격으로 6개월에 24달러를 지불해야 한다.

CodeWars의 용어들

코드워즈 docs도 따로 있다.
warriors: 코드전쟁에 참전하는 전사, 코드워즈의 유저들이다. 근데 난 왜 김치 워리어가 생각이 나는 걸까.
kata: 일본의 여러 공수무술에서 사용되는 '카타(Kata)'라는 일련의 수련 동작이 있다. 코드워즈에서의 Kata는 문제 하나하나를 일컫는다.
kyu, dan: 코드워즈를 시작하면 8kyu부터 시작한다. 처음엔 이 '뀨'라는 게 대체 뭘까 생각했는데 알고보니 '급(kyu)', '단(dan)'이었다. 쉽게 말하면 실력 레벨인데, 코드를 풀 때마다 경험치가 쌓이고 다음 급이나 단으로 넘어간다.
급은 단으로부터의 거리이기 때문에 레벨이 올라갈 수록 숫자가 낮아진다. (8 → 1)
단부터는 실력의 수준이기 때문에 레벨이 올라갈 수록 숫자가 높아진다. (1 → 8)

CodeWars의 기능들

좋은 문제가 많다는 건 알고리즘 사이트의 기본 덕목인 것 같다. 코드워즈에는 그 외에도 장점들이 많은 것 같다.
코드워즈는 badge, dan 랭킹 시스템 등 공부를 게임처럼 만들어서 계속 공부하게끔 동기부여를 해준다. 프로필에 내가 어떤 언어를 써서 풀었고, 얼마나 활동했고, 다음 급으로 가려면 얼마나 남았는지 대시보드로 보여준다. 더 많이 활동하고 더 많은 문제를 풀 수록 더 많은 badge를 얻고, 레벨이 높아지므로 계속 공부하고 싶은 마음이 들게 한다.
특히 streak 기능은 연속 활동 일자를 제공해서 꾸준히 공부할 수 있도록 만든다. 또, 언어 별 활동과 랭킹을 보여준다. Jay Lee님의 포스트에서 봤던 것처럼 자주 사용하는 언어가 아니더라도 공부하고 싶은 언어를 사용해 문제를 풀어보면 좋을 것 같다.
낮은 급의 문제들을 풀면 자동적으로 기본적인 문법을 공부할 수 있게 된다. 또한 다른 사람들의 풀이를 보면서 더 나은 풀이를 볼 수 있다. 사실 알고리즘 사이트의 기본 기능이긴 하지만 코드워즈에서는 내 코드랑 어떻게 다른지(Compare with your solution), 다른 사람의 풀이를 포크(Fork)할 수 있는 추가 기능이 있다.
또한 Profile - Solution에서 자신의 풀이를 리팩토링 할 수도 있다. 좀 더 가독성 좋은 코드를 쓰고 싶거나, 다른 사람의 풀이를 보고 아이디어를 얻은 경우 리팩토링 기능을 통해 코드를 수정할 수 있다.
코드워즈가 온보딩에서 설명하듯이 코드워즈에는 창의적인 방법으로 문제를 풀고 싶어하는 사람이 있는 반면, 실제 프로덕트에서 쓸만한 가독성 좋은 코드를 쓰고 싶어하는 사람들도 있다.
그래서 문제 풀이에서도 Best Practices와 Clever가 나뉘어져 있는데, 아직까지는 쉬운 문제만 풀어서 그런지 양쪽의 솔루션이 다르다는 느낌은 받지 못했다.
+ 내 프로필 ㅎㅎ.
지금은 6뀨다!

코드워즈 단점

속도가 매우 느리다. 코드를 submit할 때나, 특정 페이지로 이동할 때 매우 느리다.