상세 컨텐츠

본문 제목

[플랫폼리뷰] 코드트리로 (드디어!) 알고리즘과 친해지기

리뷰

by Helia-17 2024. 3. 2. 22:41

본문

 

이 글은 개발자 글쓰기 모임 글또 내 코드트리 x 글또 챌린지에 참가하여 작성한 글입니다. 

 

 

개발자 글쓰기 모임인 글또에서 코드트리와의 협업을 통해, 코드트리의 다양한 기능들을 8주간 체험해볼 수 있는 기회가 있었다.  4주의 시간이 지나 그동안 코드트리를 사용하며 느껴본 점에 대해 얘기해보려고 한다.

 

 

내 상황

 

나는 신입으로 취업 준비를 할 당시 참가했던 SSAFY에서 안내하는 알고리즘 사이트에서 수업을 들으며 150문제 정도를 풀었었는데, 개념과 문제의 포인트들을 확실히 소화하는 느낌 보다는 '어쨌든 풀었다'의 느낌에 가까웠던 것 같다. 그리고 신입으로 몇번의 코테를 경험한 뒤 실무에 투입되고부터는 적응하느라 알고리즘에 소홀했다. 그러다 올해를 시작하며 회사 동기들끼리 알고리즘 문제를 주 1회 풀어와서 점심시간을 활용해 얘기하는 스터디에 참가하고 있었다. 하지만 기출문제 위주로 풀다 보니 막막한 경우도 많았고, 결국 풀어도 내 실력이 된 게 맞는지, 경험치가 늘어난 게 맞는지 애매해하고 있던 와중에 챌린지에 참가하게 되었다.

 

 

 

 

 

 

써보니까 어때?

처음에는 유료 플랜이니까 좋겠지! 하는 막연한 생각에 신청을 했는데, 생각보다 시스템이 체계적으로 잘 되어 있다. 

 

우선 실력진단을 통해 나의 위치를 가늠할 수 있고, 그 레벨에 따라 커리큘럼 중 나에게 적합한 것을 고르면 된다.

 

 

 

각 커리큘럼마다 어떤 사람에게 추천하고 어떤 사람에게는 추천하지 않는지, 또 이 커리큘럼으로 어떤 것을 얻어갈 수 있는지를 상세히 알려준다. 나는 꾸준히 매일매일 하는 것을 목표로 해서 프로그래밍 연습을 택했는데, 대기업 코테 1번 문제를 해결하게 되는 커리큘럼이라고 한다. 

 

 

 

풀어보면서 완전 탐색은 쉽겠지 했는데, 생각보다 어떻게 구현해야할지 바로 떠오르지 않는 문제들도 있고, 또 효용감을 주는 쉬운 문제들도 있어서 하루에 잠깐 짬내서 풀기엔 적절한 난이도라고 생각하고 있다. 

 

 

그 외에도 실전 훈련과 기업별 커리큘럼 등 다양한 기능을 제공한다. 기출문제 중 삼성의 경우를 보니 프로그래머스에 있는 것보다 더 문제 수가 많아서 회사 동기들에게도 코드트리를 소개했고, 스터디를 진행할 플랫폼을 옮기려고 하고 있다. 그리고 인상적이었던 기능 중 릴레이가 있는데, 마이페이지에 들어가서 시작할 수 있으며 주어진 문제를 해결하면 알아서 다음 문제가 생기는 기능이라고 한다. 

 

 

 

그리고 경험치 시스템이 존재하고 매일 내가 목표로 하는 경험치를 설정할 수 있는데, 보통 문제의 포인트는 쉬운 건 10~20xp부터 어려운 것은 70 ~ 90xp까지 있고, 보통의 경우 한 문제가 30xp~50xp 정도의 경험치를 준다. 나는 꾸준히 하는 것을 목표로 해서 가장 낮은 가볍게(25xp)로 설정하고 매일매일 달성하고 있다. 글또 인원들끼리는 오늘과 어제 학습 목표를 달성한 인원을 볼 수 있는데, 높은 목표치를 설정해두고 달성하시는 분들을 보면 대단하다는 생각이 들면서도 나도 자극을 받아 내일 또 코드트리를 켜게 된다. 그리고 github 연동을 해서 잔디도 함께 찍으니까 동기부여가 2배가 되는 면이 있다. 

 

 

 

그래서 한달동안의 결과는..!!

 

놀랍게도 매일매일 재밌게 문제를 풀고 있다! 퇴근하고 집에서도 알고리즘 푸는 건 정말 다른 사람의 얘기인 줄로만 알았는데, 크게 스트레스 받지 않고 풀고 있다.

코드트리

 

깃허브는 연동을 빼먹은 채 12시를 넘겨버린 하루를 제외하고는 마찬가지로 꾸준히 커밋을 찍었으며 현재 99커밋을 달성했다. 실제로 해결한 문제는 40개 정도인데 한번 풀 때마다 record 커밋이 또 따로 찍혀서 커밋 개수는 좀 더 많은 것 같다.

 

어쨌든 중요한 건 꾸준히 했다는 것! 다른 플랫폼에서 꾸준히 하지 못했던 내가 코드트리의 커리큘럼으로는 알고리즘에 재미를 붙일 수 있었단 것 만으로도 코드트리를 추천할 이유는 확실하다.

 

 

 

 

 

다른 플랫폼이랑 뭐가 다른데?

 

조금 더 어떤 점들이 내가 한달간 알고리즘 학습을 지속할 수 있게 했는지 얘기해보고자 한다.

 

 

1.  차근차근 배울 수 있다.

보통 내가 알고리즘 문제를 고르면 유형 정도는 알 수 있지만, 한가지 유형만 계속 할 수도 없는 노릇이니 나는 결국 이거했다 저거했다 하며 성장하는 느낌은 없었던 것 같다. 반면 코드트리는 정해진 커리큘럼 내에서 자신 있는 유형은 빠른 테스트를 통해 최종 문제를 해결하면 바로 넘어갈 수 있고, 빠른 테스트가 어렵게 느껴지는 경우 개념을 차근차근 밟아갈 수 있으니 내가 유형에 대해 확실히 이해하며 문제를 해결하고 있다는 느낌이 컸다.

 

 

 

예를 들면, 여기 구간 칠하기라는 유형이 자신있다면 바로 테스트 문제인 신기한 타일 뒤집기 문제를 풀면 된다. 하지만 이 테스트 문제가 어렵게 느껴진다면 최대로 겹치는 지점부터 문제를 풀어도 된다. 도무지 어려워서 기본 개념에 대한 설명을 듣고 싶다면 제일 첫번째 문제인 블럭쌓는 명령2를 통해 개념을 잡고 다시 차근차근 다음 문제를 풀어, 처음에 풀지 못했던 마지막 문제를 풀 수 있게 되는 것이다.

 

이 부분이 매일매일 학습에 대한 연속성을 제공하여, 마치 문제집 한권을 가진 것처럼 목표를 달성하고, 유형을 클리어하는 느낌을 준 부분이다. 또 좋은 점은 한 문제를 푸는 데 얼마나 시간이 소요될지 예상시간을 제시해 주어, 내가 가진 시간을 짬짬히 활용해 문제를 풀기에 좋다.

 

 

 

또 한가지는 토론 기능이다. 문제를 풀기 전에 해설을 볼 수도 있지만, 그러면 학습 경험치를 얻을 수 없다. 하지만 주어진 테스트케이스는 성공하고 제출은 실패하는 경우, 유용하게 활용하는 것이 토론 기능이다. 다른 사람들이 동일한 문제를 풀면서 겪은 오류와, 코드트리 담당자의 답변이나 제시하는 테스트 케이스로 내 코드의 문제점도 잡아낼 수 있게 된다.

 

 

알고리즘 학습 중 테스트케이스를 보는 것에 대해서는 의견이 분분하지만, 개인적으로는 높은 레벨이 아니라면 빠르게 내가 어떤 부분을 놓치는지 확인하고, 실전 연습을 할 때는 다양한 테스트케이스를 고려할 수 있는 힘을 길러나가는 것이 좋다고 생각한다.

 

 

 

 

 

2.  자주 들어오게 된다.

 

 

 

다른 플랫폼에 비해 저항감 없이 더 자주 들어오게 되는 이유는 재미와, UI인 것 같다. 

 

 

 

 

 

앞서 말했던 경험치 시스템과, 시즌 안내 문구 등이 마치 롤이나 오버워치 같은 게임을 떠올리게 한다. 딱히 다른 비교대상 없이도 열심히해야지! 라는 생각이 절로 드는 문구들이 플랫폼 곳곳에 자리해 있다. 그래서 문제를 고를 때, 풀 때도 스트레스 보다는 재미가 크고, 동기부여도 팍팍 되는 것 같다.

 

 

또한 이곳저곳 게이미피케이션 요소가 많은데, 업적 달성도 그 중 하나다. 프론트엔드 개발자로서 플랫폼 서비스를 이용하다가 만나는 뱃지나 업적 같은 게이미피케이션 요소를 참 좋아하는데, 코드트리에도 그런 페이지가 있어서 반가웠다. 각 업적들의 내용과 진척도도 볼 수 있다. 또한 획득한 뱃지도 등급이 있어 다른 보석 등급으로 변화하기도 한다.

 

 

 

 

 

 

추가적으로, 가끔 문의사항이 발생할 때도 채널톡으로 문의하면 생각보다 정말 빠르게 답변이 와서 성장하고 있는 플랫폼에 대한 직원들의 열정을 느낄 수 있었다. 이 부분도 코드트리에 대한 긍정적인 인상에 영향을 준 것 같다.

 

 

어떻게 학습하고 있나요

 

마지막으로는 내가 코드트리를 이용해 어떻게 학습하고 있는지를 짧게 공유해보려고 한다.

 

 

 

1. 빠른 테스트를 이용해 내가 잘 해결할 수 있는 유형이라면 테스트 문제만 풀고 넘어간다.

 

2. 테스트 문제가 어렵게 느껴진다면 뒤로 가면서 풀 수 있는 문제부터 시작해서, 차근차근 다시 테스트 문제를 향해 넘어온다.

 

3. 제출 성공 후 깃허브 연동을 하고 어려웠던 점과 주의사항, 놓쳤던 점 등을 주석으로 정리해서 깃허브에 남긴다.

 

전체 문제에 대한 내용은 상단의 주석으로 정리하고,

단순히 어떤 일을 하는지 남기는 주석은 일반 주석,

놓쳤던 점은 주석의 맨 앞에 [!] 표시를 하고 있고,

기억해두면 좋겠다 싶은 점은 주석의 맨 앞에 [*] 표시를 남겨 구분하고 있다. 

 

4. 매일 이 과정을 반복한다!

 

 

 

 

 

2월이 짧은 만큼 다소 이른 후기인 감이 있지만, 앞으로도 남은 기간동안 꾸준히 해보겠다는 다짐 삼아 글을 써 보았다. 8주가 다 끝난 후에는 알고리즘을 기초부터 다시 다져보면서 유용했던 팁들을 정리해서 공유해볼까 한다.

관련글 더보기

댓글 영역