개발자 커뮤니티인 글또와 제휴를 맺은 다양한 기업 및 서비스를 체험해 볼 수 있는 여러 기회가 있었는데, 나는 이번에 코딩테스트 및 자료구조/알고리즘 공부 플랫폼인 코드트리 (Codetree)에 챌린지 지원을 하여 약 한 달간 사용 후 후기를 남겨본다. 소프트웨어 엔지니어로 현재 일하고 있거나 대학생의 경우라도 구직 준비 중이라면 코딩 테스트에 대해서는 어느 정도 알고 있을 것인데, 기존에 잘 알려진 플랫폼으로는 LeetCode나 프로그래머스와 같은 서비스가 있을 것 같다. 우선 구체적인 후기를 남기기 전에 몇 가지 나의 배경 및 면책 조항을 먼저 얘기하고 시작하는 것이 좋을 것 같아서 명시하고 넘어가 본다.

배경 및 면책 조항

  • 배경: 나는 17년부터 소프트웨어 엔지니어로 근무를 시작했고, 지원자로서 코딩 테스트와 면접관 관점에서 코딩 테스트 모두에 어느 정도 익숙한 케이스이다. 다만, 신입 공채 수준의 악명 높은 알고리즘은 이제는 빠르게 풀어내진 못하며 경력직 코딩테스트 수준에서 자주 빈출 되는 주요 자료 구조 (Hash, Stack, Graph 등)와 알고리즘 (DFS/BFS, 정렬 등) 정도의 문제 풀이를 최근까지 주로 했었음
  • 면책 조항: 아무래도 글또 커뮤니티를 통해서 기회를 받았으므로 일종의 '광고'로 볼 수 있다는 점을 글을 읽는 사람들이 고려했으면 함. 다만, 작성자 나름의 객관성을 유지하려고 하며 아쉬운 부분은 솔직하게 얘기할 것임

전체적인 인터페이스

우선 코드트리의 메인 페이지로 접속하면 아래 그림처럼 크게 6개의 단계별 섹션 (코드트리 내에서는 이것을 Trail이라고 하는 것 같음)이 존재한다. 

부문별로 다루는 내용과 난이도에 대해서 간략한 설명이 있기 때문에, 본인의 현재 수준에 대해서 잘 알고 있다면 해당 트레일로 바로 시작할 수 있도록 잘 분리가 되어있는 점이 눈에 띄었다. 하지만, 객관적인 수준에 대해서 정확히 잘 모르는 경우 코드트리 내에서 실력 진단 테스트를 제공하고 있고, 이때 본인의 목표 기업도 설정할 수 있는 것으로 보아 특정 회사에서 빈출 되는 유형에 대해서 더 효율적으로 학습할 수 있는 경로를 제공하는 것으로 보인다. 다만, 본인은 아쉽게도 해당 테스트가 약 3시간 정도 걸린다고 하여 테스트까지는 진행하지 않았고, 이번 한 달은 코드트리 플랫폼에 익숙해지기 위해서 가장 낮은 난도부터 차례대로 풀되, 너무 지루할 때는 그래도 잘 알고 있는 유형 (완전 탐색 등)에 대해서 몇 문제만 골라 풀기로 계획을 세웠다.

실력 진단을 누르면 난이도 테스트를 시작할 수 있음
난이도 테스트는 약 3시간이 걸린다고..

실제 문제 풀이를 진행하는 인터페이스는 아래와 같은데, 사실 해당 인터페이스는 기존에 LeetCode나 프로그래머스를 사용했던 사람들이라면 금방 익숙해질 수 있을 만큼 유사하다. 좌측에는 문제에 대한 설명이 있고 우측에는 코드 작성란과 사용자가 지정해서 등록할 수 있는 테스트 케이스, 코드 실행 및 채점 메뉴들이 존재하여 직관적으로 이해할 수 있을 것이다. 

사실 여기까지만 보면 기존 플랫폼들과 특별히 다른 점이 있냐는 생각이 들 수 있는데, 세세한 부분에서 실제 사용자를 배려하고 동기를 유발하는 몇 가지 추가 기능들이 있어서 아래에서 자세히 소개해 본다.

학습 업적을 활용한 동기부여

매일 첫 코드트리 접속 시 뜨는 모달 또는 오른쪽 위의 경험치 목표를 사용자가 설정할 수 있고, 연속 학습에 따라 업적을 아래와 같이 부여하는 것을 볼 수 있다. 아마도 연속 학습에 대한 트래킹은 유사 서비스에서도 제공하나, 당일 업적을 쌓기 위해서, 필요한 경험치(XP)를 사용자가 직접 지정할 수 있기 때문에 조금 더 유연하게 동기부여를 할 수 있다는 점이 마음에 들었다. 내 경우 주말이나 퇴근 후에 컨디션이 괜찮은 경우 100XP 정도로 설정했고, 바쁘거나 컨디션이 좋지 않으면 최소 경험치 값인 25XP를 설정하여 부담 없이 스트릭을 유지할 수 있었고 2월 초 기준 28일 연속 학습으로 Tree 업적 (30일) 까지는 2일이 남은 상태다. 

GitHub 연동

위에서 얘기한 서비스 내에서의 업적 외에도 코드트리는 자체적으로 GitHub 연동을 지원하는데, 무슨 말인가 하니 본인이 제출한 코드에 대해서 자동으로 연결된 GitHub 저장소에 연동이 된다. 연동에 대한 메뉴는 코드트리 오른쪽 아래의 본인 아이디를 누른 후 GitHub에 학습 기록 남기기 메뉴를 통해 아래와 같이 진행된다.

예를 들어서 나는 https://github.com/gamamoe/Codetree-TILs 저장소를 설정했고, 아래처럼 1월 6일부터 제출한 코드들이 차곡차곡 쌓여있는 것을 확인할 수 있다. 날짜별 디렉터리를 들어가게 되면 푼 문제에 대한 요약도 같이 생성되어 있어 나중에 특정 자료구조나 알고리즘에 대한 코드가 필요할 경우 간단하게 검색을 통해 찾기도 쉬울 것으로 보인다. 이 기능이 마음에 드는 이유는 특히 경력이 없는 신입 개발자 지원자의 경우 면접관에게 어필할 수 있는 수단이 많지 않은데, 객관적으로 본인의 공부 내역을 보여줄 수 있기 때문에 얼마나 꾸준히 공부했고 어떤 자료구조/알고리즘을 공부했는지 파악할 수 있어 나중에 하나의 포트폴리오처럼 활용해도 좋을 것으로 보인다.

디스코드 커뮤니티 운영

사실 위 2개의 수단만 해도 게이미피케이션 및 동기부여 기능으로는 충분한 것 같은데, 거기에 더해 추가로 디스코드 커뮤니티를 운영하고 있다. 다만, 글또X코드트리 챌린지 동안만 한시적으로 운영하는 것인지 아니면 이후에도 계속 운영할 것인지는 조금 불분명하나 관리자분들이 적절하게 설치한 봇을 통해서 매일매일의 목표를 설정할 수 있고, 다른 사람들의 진행도를 보면서 좋은 자극과 동기부여를 받을 수 있다는 점이 장점으로 보인다. 꼭, 디스코드가 아니더라도 플랫폼 내에 비슷한 기능을 구현하거나 앞으로도 디스코드 커뮤니티를 계속 운영하면 좋겠다.

문제 구성, 난이도 및 지원 프로그래밍 언어

또 하나 특이한 점은 단순히 입력을 받아 출력을 계산하는 코드 작성 문제만 존재하지 않고, 다지선다 문제가 존재하는데 이는 처음 코딩테스트를 준비하는 사용자에게 단순히 코드만 작성하는 것이 아니라, 손과 머리를 활용하여 직접 다른 형태의 자극으로 공부에 도움이 될 것으로 보인다 (다만 코드를 복사해서 실행 후 답을 내면 의미가 없어지니, 펜과 종이를 활용하여 직접 풀어보자!)

추가로 25년 2월 기준으로 대부분의 메이저 프로그래밍 언어 (C/C++, Java, Python, JavaScript)는 지원하고 있으며, Go와 Rust 등의 언어도 지원하는 것으로 보인다. 다만 해설의 경우 대부분 많이 사용되는 프로그래밍 언어로만 작성되어 있다. 

아쉬운 점

1월 초까지는 제출 시 채점 속도가 느리거나, 간혹 페이지가 멈추는 현상이 있었으나 아마도 개발자분들의 노력으로 25년 2월 기준으로는 쾌적하게 사용할 수 있었다. 다만, 아래처럼 웹브라우저 크기를 줄이는 경우 데스크탑 환경인데도 아래와 같은 메시지가 뜬 거는 문제가 아직 있는 것 같다. 추가로 매일매일의 업적을 위해서 설정하는 경험치를 모아서 무언가를 할 수 있으면 좋겠다는 생각이 드는데 그런 콘텐츠는 아직 없는 것으로 보인다. 동기부여가 떨어지면 25XP만 매일 설정하는 때도 생길 수 있을 것 같아 뭔가 보상이 있으면 더 좋을 것 같다는 생각이 든다.

총평

전반적으로 기존 코딩테스트 플랫폼과 유사한 인터페이스를 가져서 새로 시작하려는 사용자에게 거부감을 최대한 덜고, 삼중으로 무장한 동기부여 수단 (업적, GitHub 연동, 디스코드 커뮤니티)를 지원해 학습자가 꾸준히 진행할 수 있도록 도와줄 수 있다는 점이 장점으로 보인다. 코딩테스트는 결국 평소에 꾸준히 푸는 것이 중요하다고 생각되므로 이런 부분이 큰 도움이 될 수 있을 것 같다고 생각한다. 특히, 학생의 경우 할인이 추가로 있으니 이런 부분도 고려하여 코딩 테스트 준비에 고려하면 좋겠다. 그럼, 후기 끝!

반응형