ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 우아한 테크코스 2기 오프라인 코딩테스트 후기
    우아한 테크코스/기타 2019. 12. 27. 22:36
    반응형

    우아한 테크코스 2기 오프라인 코딩테스트 느낀점

    루터회관

     이번 우아한 테크코스 2기 오프라인 코딩테스트는 인원이 대략 반씩 나뉘어 큰 집(?)과 루터회관으로 각각 장소가 배정되었다. 운이 좋은 것인지 모르겠지만, 나는 우아한 테크코스에 합격한다면 공부를 할 곳인 루터회관으로 배정되었고, 박재성님께서 코딩테스트 전에 긴장도 풀 겸 구경을 해도 괜찮다고 하셔서 인테리어 구경을 했다.
     유튜브로만 보았던, 프리젠테이션을 하는 공간도 보였고, 각자 앉아서 공부할 수 있는 테이블이나, 큰 강의실(이곳에서 시험을 보았다.) 그리고 컵들과 자그마한 싱크대(?), 회의실, 두 달 뒤에 이곳에 나도 앉아있을 수 있겠느냐는 물음을 뒤로 한 채 시험을 보러 들어갔다.

    웰컴 노트&펜과 다과&음료

     루터회관에 시험을 보러 들어가자마자, 신분증 확인을 했다. 신분증 필수! 그리고서 직원님들(아마 우아한 형제들 직원님들이신 것 같았다)께서 펜과 노트를 나눠주셨는데, 펜이 너무 귀여웠다. 아직 아까워서 필기도 못 해봤다는 사실. 노트는 종류가 많았는데 가장 문구가 와 닿는 노트로 골랐다. 하나씩 다 갖고 싶었지만, 욕심을 내려놓았다.
     그다음에 다과와 음료도 준비되어있었는데, 뭔가 자꾸만 소소한 감동. 과자는 기억 상으로는 견과류도 있고, 사탕과 초콜릿, 마가렛트같은 탄수화물을 충전할 수 있는 과자들. 그리고 물하고 스타벅스 따뜻한 아메리카노, 믹스커피같은 페트병 커피 등등 다양하게 있었다. 커피와 견과류를 샤샥 챙기고 큰 강의실(?) 혹은 고사장으로 입성해서 바로 인증사진을 찰칵.
     시험시간 동안 휴식이 자유로워서, 당 떨어질 때 초콜릿을 가져다 먹었다. 긴장된 와중에도 달콤해서 소소한 행복을 느꼈다.

    긴장 반 설렘 반

     긴장과 설렘이 뒤엉켜서 흥분도가 상승했다 하락했다 반복. 아침에 메일을 몇 번이나 확인하고, 목욕재계도 하고(?), 신분증과 맥북&충전기도 챙기고, 두근두근 설레는 맘을 가지고 출발. 루터회관 올라갈 때 같은 층을 올라가는 분들을 보며, '앗, 저분들과 나중에 스터디를 할 수 있는 건가'라는 김칫국을 거하게 한 사발 했다. 신분증 확인을 받고, 펜&노트를 받고, 다과를 가져가고, 강의실에 앉자마자 심장이 요동쳤다. 프리코스 때 다른 분들 Pull Request를 봤었는데, 잘하는 분들이 진짜 엄청나게 많으셨는데 이분들이 그분들인가! 하면서, 나도 같이 공부하고 싶다는 생각이 절로 났다.

     그리고 제한시간과 과제를 받고, 과제를 받은 후 다 같이 코딩을 진행하니까 진짜 엄청나게 뭔가 짜릿했다. 다 같이 모여서 코딩이라니! 긴장한 것보다 신남이 더 컸던 것 같다. 대체 어느 부분에서 신난 것인지 조금은 의문이지만, 신나고 설레고 아주 커피 마시면서 혼자 세상 행복했다.

     쉬는 시간에 Q&A를 진행했는데, 그땐 거의 마치 기분은 이미 우아한 테크코스 합격자! 머릿속에는 코드 마무리 어떻게 마무리하지 & 이제 곧 여기서 공부하는 건가 & 이분들은 이제 내 소중한 동료분들(?) 등등 오만가지 생각이 다 지나쳤지만, 쉬는 시간 종료 후 빠르게 생각을 정리하여 다시 코딩에 집중할 수 있었다.

     끝나고 나서도 괜스레 한 번 더 강의실을 훑어보고 기대치가 충만하게 차오른 상태에서 루터회관을 빠져나왔다. 아쉬운 건 Q&A 때 화장실을 가서 잘 못들은 부분.

     와 진짜, 재밌고 긴장되고 설레고 짜릿하고 다했다.

     

    우아한 테크코스 2기 오프라인 코딩테스트를 진행하며

    시험 진행 관련

     진행은 프리코스와 거의 흡사했고, 테스트 시간은 총 5시간이었다. (이 중 10분은 강제 휴식시간) 휴식의 경우에는 자유롭게 쉬거나, 화장실을 가거나, 다과를 가져와 먹을 수 있었는데 사람들이 잘 쉬지 않으니까 박재성님이 결국 강제 쉬는 시간을 10분 부여하셨다. (루터회관부터 쉬고 나서 큰 집에서도 10분 진행하신다고 하셨다.) 그 시간동안 Q&A도 진행하시고(우아한 테크코스 관련), 화장실도 다들 후다닥 다녀오고, 다과도 가져다먹었는데, 화장실 다녀오는 동안 뭔가 Q&A가 스르륵 지나간 느낌이라 너무 아쉬웠다.

     시험은 시작할 때, 박재성님이 프리코스 진행과 동일하게 이메일을 보내주시고, GitHub에 fork하여 branch를 생성하고, 기능별로 commit & push 후 pull request까지 끝내고, 완료 이메일을 보내면 되었다. 감독관 겸 도움을 주시는 직원분들(?)이 계셔서, 환경이 불안정하거나 문제가 있으면 도와주셨다. (친절..)

     참고로 개인 장비는 필수! 우아한 테크코스 진행시에도 개인 장비로 진행된다.

    시험 진행에 임하는 자세

     (발췌) 우아한 테크코스 오프라인 코딩테스트 PDF 문서
     - 5시간 동안 모든 요구사항을 구현하는 것보다, 하나를 구현하더라도 제대로 구현하는 것에 집중

     - 프리코스의 과정을 자신의 힘으로 구현했다는 것을 증명하는 데 집중
     - 기능을 하나 더 구현하는 것보다 아래의 것들이 더 중요
         - 기능 목록, 커밋 로그를 잘 작성하는 것
         - 코드 컨벤션, 읽기 좋은 코드 등 프리코스 과정에서 지켜야 할 원칙을 지키는 것
         - 구현한 기능이 모두 동작하는 것

    요구사항 & 제약조건

    요구사항

     - 기능을 구현하기 전 README.md에 구현할 기능 목록을 정리해 추가

     - git의 commit 단위는 앞 단계 README.md 파일에 정리한 기능 목록 단위로 추가

    제약 조건

     - 자바 코드 컨벤션을 지킬 것 - (1, 2, 3주차 제약과 동일)

     - indent(들여쓰기) depth를 3이 넘지 않도록 구현, 2까지만 허용 - (2주차 제약과 동일)

     - 3항 연산자를 쓰지 않을 것 - (1, 2, 3주차 제약과 동일)

     - 메서드가 한 가지 일만 하도록 최대한 작게 만들 것 - (1, 2, 3주차 제약과 동일)

     - 메서드의 길이가 15라인을 넘어가지 않도록 구현 - (1, 2, 3주차 제약과 동일)

     - else 예약어를 쓰지 않을 것 - (1, 2, 3주차 제약과 동일)

     - public / protected / private / package 접근 제어자를 용도에 적합하게 사용해 구현

     - 메서드의 인자 수를 3개까지만 허용, 생성자 제외 - (3주차 제약과 동일)

     

    제공내역

     - 일부 필요한 class의 일부 기능

     - enum

     - in/out view class

     - 관련 기능을 진행하는 class

    후기

     분명 README.md에 구현할 기능 목록 정리하고 그 단위로 commit 하라고 매번! 프리코스마다 제약조건을 주셨는데, 왜 구현할 기능을 예쁘게 정리하고 나서 그걸 머릿속에서 병합한 후에 기능 구현하고 commit을 하는지 의문. commit 메시지를 봤을 때 README.md와 같은가 비교해봤더니, 전혀 다른 느낌. 비슷한 것 같기도 하고, 그렇지만 다른 느낌! 조금 더 신경 쓰자.

     기능은 일단 100% 구현했다고 생각한다. 생각한 부분은 일단 다 구현했다. 예외도 생각하여 정리한 부분은 다 예외처리하였는데, 생각하지 못한 부분이 있다면 그건 내 생각이 짧은 탓.

     자바컨벤션 역시 지키려고 노력했다. 너무 긴장한 탓일까, 나도 모르게 상수를 적다가 변수를 적어놓고 카멜케이스가 아닌 스네이크케이스로 적어버렸다. 그런데 그게 또 너무 거슬려서 발견하여 다시 정정. 겨우 3주간 반복했을 뿐인데, 습관이 참 무섭다. 접근 제어자도 웬만하면 맞추려고 노력했다.

     메서드의 길이는 최대한 10라인이 넘어가지 않도록 노력했고, 그게 안 되는 것들만 15라인에 맞추었다. indent depth도 1까지만 허용하도록 노력했다. 이건 이렇게 해야 메서드를 무의식적으로 한 기능만 넣을 수 있기 때문!

     시간도 4시간 4n분에 맞춰서 완료했고, pull request 및 메일 발송도 이슈 없었다. pull request는 박재성님께서 미리 해놓고 commit을 추가하면 자동으로 들어가니까, 미리 해놓는 것도 TIP이라고 하셨는데 말씀 듣기를 정말 잘했다.

     어찌 되었건 프리코스에서 배운 것을 다 쏟아부었고, 내 역량도 다 쏟아부었다. 아까운 부분은 분명 있지만, 정말 열심히 했으니 후회는 없다. 당락은 이제 내 손을 떠났다.

    지금의 느낌

     총 Fork수 77개, Pull Request 수 76개. 합격 인원 약 50명. 1.52 : 1, 신경쓰지 않으려고 했는데 자꾸 신경은 쓰인다. 하지만 신경쓰인다고, 다른 것을 소홀히 하지 않기(특히 업무). 그것을 원동력으로 더욱 바쁘게 움직이기.

     주말동안 책 『IT에 몸담은 이들을 위한 지적생산기술』 읽는 것이 목표! 뭔가 목차를 읽어보고 앞부분을 읽어봤는데, 우아한 테크코스 전에 읽어놓으면 좋을 것 같은 내용들이 있었다.

     2020년 01월 03일 15시를 기대하며.. (그 때 합격 포스팅을 적을 수 있으면 정말 좋겠다!) 포스팅 끝!

    반응형

    댓글

Designed by Tistory.