ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [회고] 크래프톤 정글 2기 회고
    Retrospect 2023. 8. 31. 11:37

    2023년 4월 3일부터 시작하여 2023년 8월 17일까지, 총 4.5개월간의 Computer Science를 공부하는 크래프톤 정글 과정이 끝이 났다.

     

    1. 지원 동기

    1년 차 개발자 회고에도 작성하였지만(https://techpedia.tistory.com/19) 나는 프로그래밍을 독학하고 바로 스타트업에 취업했다. 빠르게 개발해야 하는 스타트업 특성상 주로 기술 스택 공부에 시간을 투자하였고 Computer Science와는 점점 멀어졌다.

     

    CS에 대한 이해가 부족하다 보니 기능 구현은 가능해도 내가 작성한 코드에 확신이 없었다. '이 상황에서 이 자료구조를 사용하는 것이 최선인가?', '왜 비동기를 이렇게 처리하는 것이 응답 속도가 빠를까?' 같은 질문에 답을 할 수 없었다.

     

    그래서 개발자의 기초인 CS를 공부하기로 마음먹었고 기술 스택이 아닌 아닌 전공 지식을 학습하는 크래프톤 정글에 지원하게 되었다.

     

    2. 지원

    지원과제는 python + flask를 이용하여 간단한 서비스를 만들고 EC2에 배포하는 것이었다.

    node.js와 handlebars.js로 이커머스를 개발하고 운영했던 입장에서 과제는 어렵지 않게 제출했다

     

    이후 화상 면접을 봤는데 조금이라도 가산점을 받기 위해 셔츠를 입고 밝은 곳에서 면접을 봤던 기억이 난다.

     

    3. 합격

    며칠 후 합격 메일을 받았다.

    시험과 면접을 잘 봐서 붙을 것 같긴 했는데, 한편으로는 '정글에 입소하려고 퇴소까지 했는데 못 붙으면 어떻게 하지?'라는 불안함도 있었기에 메일을 받았을 때 정말 기뻤다.

     

    정글에 입소하기 전, 예습을 하고 싶었는데 covid-19 이슈로 인해 그러지 못했다.

    액땜을 해서 그런지 다행히 정글 과정 중에는 covid 이슈가 발생하지 않았다.

     

    4. 미니 프로젝트

    정글에 처음 입소한 날 팀원들과 가까워지는 것을 목적으로 작은 서비스를 만드는 과제가 주어졌다. 주어진 기간은 3일, 3일 동안 아이디어 회의와 기획을 하고 코드를 작성해야 했다.

    나의 경우 전 회사에서 이커머스와 SNS를 개발했던 경험이 있어 그리 어렵지 않게 완성했다. 우리 팀이 만든 서비스는 '정글 퀴즈'로, 정글에서 배운 것들을 퀴즈로 만들고 풀어보며 내가 잘 공부했는지 점검할 수 있는 서비스였다.

    다른 팀이 밤을 새우며 서비스를 개발할 동안, 우리는 진작 다 만들어서 여유롭게 테스트 및 디버깅을 진행하였고 일찍 들어가서 수면을 취했다. 정글에서의 첫 과제를 만족스럽게 마무리한 덕분에 이때까지만 해도 나는 앞으로의 과정을 순탄하게 헤쳐나갈 수 있을 것이라는 자신감에 차 있었다. 하지만 얼마 지나지 않아 이것이 큰 착각이라는 것을 깨닫게 된다.

     

    5. 알고리즘

    알고리즘 커리큘럼이 시작된 이후부터 멘붕의 연속이었다. 회사에서 1년 반 가량 백엔드 개발자로 일을 했었는데 백준 실버 문제조차 풀기 버겁다는 것이 살짝 충격이었다. 반면 컴공을 전공한 동료들은 매우 빠르게 치고 나갔다(이런 이유로 계속 마음이 조급해졌다).

    알고리즘을 총 4주간 공부했는데 공부한 주제는 다음과 같았다.

     

    • 1주 차: 배열, 문자열, 재귀 함수, 정렬, 완전 탐색, 정수론
    • 2주 차: 이분 탐색, 분할 정복, 스택, 큐, 우선순위 큐
    • 3주 차: 그래프, BFS, DFS, 위상 정렬
    • 4주 차: 동적 프로그래밍, 그리디

     

    한 주간 알고리즘 개념을 공부하고 문제를 풀어보며 해당 알고리즘에 대한 이해도를 높여갔다. 매주 목요일에는 정글에서 제공한 시험 문제를 풀며 나의 성취도를 파악했다. 1주 차 ~ 2주 차까지는 알고리즘을 접한 지 얼마 되지 않아 많이 헤매었지만 3주 차부터는 조금씩 알고리즘 사고에 익숙해져서 느리지만 문제를 풀기 시작했다. 한 달이 지났을 때는 백준 실버 ~ 골드 문제를 풀 수 있게 되었다.

     

    처음 골드를 달았을 때 정말 뿌듯했다.


    알고리즘 커리큘럼을 내게 '처음 어떤 것을 배울 때 낯설고 막막하더라도 스스로를 격려하며 꾸준히 노력하다 보면 익숙해지고 능숙해질 수 있다' 것을 느끼게 해 준 고마운 과정이라고 말할 수 있을 것 같다.

     

    6. C언어

    C언어 커리큘럼은 기초 문법을 공부하고 RB 트리, 말록, 웹 서버를 구현해 보며 C언어 숙련도를 높이는 과정이었다. 이 커리큘럼은 공부하는 요령이 부족해 힘들게 공부했었다. 지금 생각해 보면 빨리 문법을 익히고 csapp에 있는 코드를 따라 치고 이해하며 공부를 헸어야 했는데 이론 공부에 너무 비중을 두다 보니 직접 구현해 볼 시간이 부족했었다.

     


    비록 만족스러운 퀄리티로 과제를 제출하지는 못했지만 나중에 복습해 볼 예정이다.

    7. 핀토스

    핀토스(pintOS)는 교육용으로 사용되는 작은 운영체제로 운영체제의 핵심 요소들의 구현을 지원한다. 개발자는 핀토스를 통해 운영체제의 핵심 요소들을 구현해 보며 보다 운영체제를 깊게 이해할 수 있게 된다. 구현해야 할 요소들은 다음과 같다.

    • kernel thread
    • loading and running user programs
    • virtual memory
    • file systems

    kernel thread부분까지는 어려워도 과제를 달성했는데 user programs와 virtual memory부터는 정말 어려웠다.

     

    그래도 직접 운영체제를 만들어보며 추상적으로 알고 있던 쓰레드의 동작 방법이나, 유저 프로그램이 동작하는 과정 등을 보다 뚜렷하게 알게 되었다. 이 과정 덕분에 과거 모호하게 이해했던 동기/비동기, Pass by value, Pass by reference 같은 개념을 명확하게 이해하게 되었다.

     

    8. 나만의 무기 만들기

    나만의 무기 만들기는 현업에서 사용하는 기술 스택으로 프로젝트를 만드는 과정이다. 한 달간 빠르게 프로젝트를 완성해야 하는 나만무 특성상 node.js를 많이 사용하는데 나는 Spring을 사용하고 싶어서 팀장을 지원했다.

     

    각 팀마다 멘토 매칭이 이뤄졌는데 향로님(https://jojoldu.tistory.com/)과 멘토 매칭이 되었다. 예전부터 블로그 글도 읽고, 유튜브 영상도 많이 봤는데 매칭이 되어 신기하고 좋았다.

     

    향로님께서는 매주 우리의 개발 상황을 보고 피드백해주셨고 개발 외에도 팀 운영, 미팅, 티켓 관리 같은 소프트스킬도 많이 알려주셨다.

     

    우리는 로드맵을 생성하고, 공유할 수 있는 로드맵 플랫폼, RoadMaker를 개발하였다. RoadMaker의 핵심 기능은 자동 생성 기능으로 OpenAI API를 이용하여 로드맵 초안을 자동으로 생성할 수 있도록 하였다.

     

    메인 페이지

     

    로드맵 페이지

     

     

    9. 마무리

    Computer Science의 고수가 되기에 4개월은 너무 짧았다. 하지만 비전공자가 갖는 CS에 대한 막연한 두려움이 사라졌고 공부하는 습관과 방법을 익혔다. 앞으로는 CS와 기술스택을 깊게 공부하며 이직을 준비할 예정이다.

     

    내게 성장의 방향을 제시해 준 크래프톤 정글과 코치님과 멘토님 그리고 함께 공부했던 동료들에게 진심으로 감사드린다.

Designed by Tistory.