티스토리 뷰




코드스쿼드 웹 백엔드과정 (화이트레벨) 을 시작한지 어느덧 6주가 지났다 (ㄷㄷ;)

이 과정을 진행하면서 얻은 것은 무엇이고, 앞으로 해야할 것은 무엇일까

계기

나는 시스템 엔지니어였다. 그런 내가 개발자로 전향하게 된 데에는 많은 이유들이 있겠지만, 결론적으론 코딩하는 시간의 몰입이 좋았기 때문이다.

회사에 들어가서 사내 웹 개발을 할 기회가 생겼고, php / mysql 등을 독학하면서 처음에는 무언가를 만들어간다는 것 자체가 너무나 즐거웠다. 하지만 웹의 규모가 점차 커지면서 코드의 복잡도가 커지고, 기능들이 추가될 때마다 능력의 한계가 드러나는 것 같아 괴로웠다.


프로그래밍을 하고싶다. 적당히 하고싶지는 않다. 아니, 잘 하고 싶다.


그 갈망이 커지던 차에 박재성 님을 알게 되었고, 코드스쿼드를 알게 되었다.

처음 코드스쿼드 모집 공지를 보고 든 생각은, “와, 진짜 비싸다.”

요새 (국비지원을 제외한) 교육기관들은 왜이렇게 비싼가. ㅠㅠ)

올 하반기에는 (매력적인) 신입 개발자로서의 개발역량을 다지고자 했기에,

가장 효율적이고 Risk가 적다고 판단되는 길을 선택하기로 했다. (무엇보다 내 시간이 가장 소중하므로)



읭? 코딩 테스트?

화이트 레벨은 입문자 과정인데도, 신청하려면 간단한 코딩 테스트가 있다.

기본적인 문법 정도는 학습해오라는 것 같았다. 관련해서 인강도 무료로 제공하고 있다. 테스트 후에도 수업 전에 필요한 부분들에 대해서 생활코딩이나 인프런 등의 강의들을 안내해준다.

자바는 처음이었기에 매우 유익했고, 교육 컨텐츠가 이렇게나 많다는 데에 새삼 놀라기도 했다.

마치 여행 준비를 하듯, 이런 저런 준비를 하면서 많은 기대를 품고 수업에 임하게 되었던거 같다.


개발환경 세팅부터 배포까지

Spring Boot, github, AWS ..

SE였던, 나에게는 익숙한 주제였지만, 다른 입문자 분들에게는 가장 힘든 시간이지 않았을까.

(EC2에 Ubuntu를 설치했다. 지금 생각해보니 Linux를 처음 사용하는 사람들은 CLI 환경도 낯설었을거 같다.)

하지만 첫주차에 이 과정이 있었기 때문에 이후로 다른 사람들간의 협업이 원활하게 되었던거 같다. 그리고 수업 자료들도 단계별로 branch가 나뉘어져 있었기 때문에 능동적으로 수업에 임할 수 있었다. (미션을 해결하기 위해 직접 코딩하고 리뷰하다보면 강사의 코드와 상이해지는 경우도 생기는데, git을 활용하니 그런 고민들은..)

그리고 첫주차에 로컬에서 작성한 웹을 github에 올리고 원격서버에 배포하는 경험을 하고 나니, 앞으로의 과정에서 어떤 결과물을 낼지에 대해 윤곽을 잡게된 것 같다.

자극적인 페어프로그래밍

나는 누군가가 쳐다보고 있으면 생각이 멎는다. 그래서 트러블 슈팅하다가도 누가 다가오면 ‘동작그만’ 상태가 되곤했다. 그런데 페어프로그래밍이라니.. (페어프로그래밍이란, 두사람 이상이 시간을 정해놓고(보통 10~15분씩) 번갈아가며 프로그래밍하는 것을 말한다. 이 떄 코딩하는 사람외의 사람들은 네비게이터라 하며, 프로그램의 설계를 담당한다.) 그런데 하필 옆사람이 실력자다. pobi가 보는 중에 갑자기 내차례가 되었고, 구글신없이는 배열 선언도 못하던 나였기에.. 당시엔 정말 어디론가 숨고 싶었다. 그런데 돌이켜 보면 그 날의 자극이 실력을 키우는 원동력이 되었던 것 같다. 그 날 바로 집에 가면서 자바 입문서(자바의 신)을 샀다. 일단은 자바는 어떤 주제를 담고 있는지 파악하는 것이 우선이었기에 첫 주에 빠르게 1회독을 하였다. 목적하는 항구의 방향을 모른다면, 모든 바람은 역풍이라고도 하지 않던가. 여전히 검색없이는 코딩이 불가능한 상태였지만, 우선 지도를 하나 얻었다는데에 만족하기로 했다.

이상한 커리큘럼

과정 초반에 웹을 만들고 DB와 연동하고 배포도 완료한다. 결과물이 너무 빨리 나왔다. 이제 프론트엔드를 시작하면되는건가 싶지만, 뭔가 이상했다.

그렇다. 자바로 뭔가를 만들었는데, 아직 자바를 배우지 않았던 것이다?!

초반에 다소 멘붕인 상태지만, 결과물을 일단 내고나니, 단순히 책을 읽었을 때 평면적으로 나열되던 주제들이 우선순위를 가지고 입체적으로 다가오기 시작했다. 이제는 각 주제들을 학습해야하는 필요성들이 명확했기에, 보다 효율적으로 학습할 수 있었다.

TDD, 그리고 리팩토링

수업을 듣기 전에 커리큘럼을 보고 이 과정에서 내가 얻을 것은 무엇일지 예상하기 마련이다. 그래서 나는 단순히 6주 과정 이후에 ‘어떠어떠한 웹 페이지를 만드리라’ 생각했던 것 같다.

하지만 TDD와 리팩토링의 세상을 접한 뒤 새로운 즐거움을 맛보게 되었다. 기능 추가를 위한 테스트를 하며 파란불을 하나씩 만드는 즐거움, 그동안 나를 괴롭히던 코드의 복잡도를 낮추는 경험 등등.. 잘 만들어진 기능들이 유연하게 접목되는 것들을 보며 내가 만든 코드들에 애착을 갖게 되었다. 

또 한편으론, ‘이제는 완벽하겠지’ 하고 pobi(우리는 수업중에 마스터들과 닉네임으로 불렀는데, 이제는 박재성님은 pobi, 정호영님은 honux라고 부르는 것이 편하다.)에게 코드리뷰를 받아도 늘 부족한 부분이 있었고, pobi가 짠 코드를 보면 왠지 모르게 겸허해지곤 했다. (저런 코드를 짜려면 얼마나 수련해야하는 걸까!) 

그리고 나중에 안 사실이지만, pobi의 가르침 곳곳에 디자인패턴, Effective JAVA, CleanCode 등의 책에서 지향하는 철학들이 스며들어 있었다.

다시 쌓는 CS 지식들

월, 수는 pobi가 자바를, 금요일에는 honux가 CS 기초 수업을 하였다

사실 처음에 커리큘럼을 보고 금요일 수업은 나에겐 좀 필요가 없겠다는 생각을 했었다. 하지만 그건 교만한 생각이었고, 첫 날 git과 vi 수업을 듣고보니 나는 그동안 정말 기초적인 기능들만 쓰고 있었을 뿐이었다.

honux의 수업은 스토리텔링 형식이었는데, 단편적으로 알고 있던 지식들에 대해 이러저러한 생각거리들이 쏟아지는 시간이었다. 그러한 것들이 ‘프로그래밍’이란 것에 대한 시야를 좀 더 넓혀주었던 것 같다. (honux는 입문자 분들을 고려하여 수업을 준비하셨던 것 같은데 생각보다 당사자들에겐 그런 고려들이 와닿지 않았던 것 같다. 기초체력을 키우는 것은 늘 힘들고 단기간에 이루긴 어려운 것 같다. 무엇보다 스스로 필요성을 느끼지 않으면 안하게 되는 것 같다.)

그리고 인터넷이나 책들과 씨름하다 해결되지 않는 질문들(수업 내용 외에도 AWS나 DB 등등)을 honux에게 싸들고 가서 물어보곤했다.

(우아한테크 후기 에 ‘호눅스님은 구글 그 자체이신게 틀림없다’ 는 의견에 전적으로 동의합니다.)

우리들만의 공간, 질문하는 시간들..

코드스쿼드에서 수업 외의 시간에도 공간을 제공하여 자유롭게 와서 학습할 수 있었고, 휴일에도 pobi가 들러서 코드리뷰도 해주시고 상담도 해주셨다. 그리고 honux가 추천도서들을 계속 구입해주셔서 필요한 책들을 편하게 찾아 볼 수 있었다. 물론 굳이 나오지 않더라도, slack으로도 의사소통해서 사실상 6주동안에는 계속해서 이 곳 멤버들과 연결되어 있었던 거 같다.

무엇보다 좋았던 것은 수업시간이 굉장히 Active 했던 것이다. 수업 시간 내외로 (의미있는) 질문들도 참 많았고, 마스터들도 항상 간단히 답변하기보다는 생각할 거리나 추가적으로 학습할 부분들까지 안내해주셨다. (그러다보니 한달 새에 책이 부쩍 늘었다 ;;) 그리고 구성원도 다양해서 한 주제에 대해서 다양한 시각으로 바라볼 수 있었던 것 같다. 단순히 로또 게임을 만드는데 실제 로또데이터를 크롤링해서 쓰는 분, 도서관 프로그램을 만드는데 라즈베리파이를 이용해서 바코드 리더기능을 추가하는 분, 체스게임을 하는데 ajax를 이용해서 역동적으로 구현하는 분 등등.. 덕분에 자바 외의 다른 언어들에 대한 장벽도 조금은 허물어졌던 것 같다.

아쉬웠던 부분들..

수업을 마치는 시점에서는 다소 분위기가 쳐졌다. 마스터들은 수강생들의 수준차로 인해 개개인에게 효율적인 수업이 되지 않았었다고들 생각하신것 같다. (나는 중간정도라 반사적 이익을 얻었는지도..) 그래서 기존의 커리큘럼(화이트/블루)를 없애고 다음부터는 수준별 수업을 진행한다고 한다. (자세한 내용은 추후 모집공지를 확인하는 것이 좋을 것 같다.)  [모집공지 링크]

하지만 나는 좀 다른 생각이 들었다. 동시간대에 우아한테크가 진행되었고, 현장의 후기들을 보니 결과물이 만족스러웠던 것 같다. 어떤 차이가 있던걸까? 


분명 수강생간의 수준차는 존재했다. 수년간 여러 언어로 코딩도 하고 다양한 공모전에 참여해본 사람들도 있고, 업계에서 일하다가 좀더 실력을 쌓기 위해 온 사람들도 있었던데 반해 생활코딩만 보고 온 사람들도 있었다. 하지만 수업내의 참여도도 좋았고 pobi가 개개인에게 맞는 미션들을 부여하면서도 주제별로 전하고자 하는 메시지는 전달하였기에 그부분은 크게 문제되지않았을 것 같다.


보다 근본적인 문제는 각 과정을 참여하는 우리들의 목적의식이지 않았을까..

우리는 ‘취업’이라는 현실적인 문제가 당면한 최종목표였기에, 실력이 있었으나 취업이 안되던 사람들은 명쾌한 취약점 진단을, 처음 시작하는 사람들은 불확실성에 대한 해소를 바라고 있지 않았을까

물론 이는 당연한 부분이고, 대부분의 수강생이 교육기관에 바라는 것은 이 부분일 것이다.

하지만 답이 없는 부분이기도 하다.


우리는 돈을 매개로 우리의 책무를 위임하려 한 것은 아닐까


흔히들 면접과 소개팅을 비유로 들듯,

우리는 우리 자신이 매력적인 사람이 되려고 노력하기보다는 주위의 이야기만 듣고 너무 재고있는건 아니었을까 


혹은 대입과 같은 정량적 평가에 익숙해져 정답만을 요구하던 것은 아니었을까 


아니면, 학문을 정면으로 마주하는 데에 두려움을 느끼는 것은 아닐까


그리고, 스스로의 길을 선택하는 것이 아직 미숙한 것은 아닐까


‘어른이란, 세상 어디에 던져놔도 스스로 설 수 있는 사람’을 말한다고 하셨던 아버지 말씀이 생각난다.
그리고 예전에 재수를 하던 친구가 했던 말도 생각난다. 

‘가슴의 먹먹함은 잠시 잊을 순 있지만 해소되지 않아. 그건 그냥 안고가는 거야. 대학에 들어가야 해소되는 거야’

좀 더 단단해져야겠다.

총평

이번 화이트 레벨을 마치면서 (스스로 만족할만한)가시적인 결과물은 나오진 않았지만, 좋은 개발자로 성장하기 위해 정말 중요한 것들을 얻을 수 있었다. (물론 성과가 아에 없었던 건 아니다. 6주동안에 4권의 책을 읽었고, 5권의 책에서 필요한 부분들을 발췌해서 읽었으며, (부트스트랩을 이용해서 야구, 로또, 체스, 자동차 등의 게임을 위한) 간단한 웹 플랫폼도 만들었고, TIL을 하면서 이 블로그가 자리잡기 시작했으며, 무엇보다 자바라는 언어에 대한 막연한 두려움이 사라진 것이 나름의 성과라면 성과랄까.)

앞으로 어떤 개발자로 성장해갈 것인지 보다 긴 호흡으로 바라보게 된 것 같고, 코드의 품질을 높이기 위한, 스스로의 전문성을 높이기 위한 열정을 얻을 수 있었다. 그리고 무엇보다 그동안 머릿속으로만 그리던 고급 개발자들과 같이 호흡했던 경험은 메말라가던 나에게 좋은 영감을 주었던 것 같다. 좋은 사람들과 함께하는 시간은 언제나 소중한 것 같다. (나는 그들에게 좋은 사람이었을까..) 프로그래머로서의 첫 걸음을 잘 디딜수 있도록 도와주신 코드스쿼드에 너무 감사하다.


솔직히 수업이 끝났다는 기분이 들지 않는다. 잠깐의 방학이 시작된 것 같고, 별다른 이슈가 없다면 다음 과정을 신청할 것이다. 다음 과정이 열리기까지 한 달 여의 시간이 남았고, 그동안은 학습하고자 하였으나 잠시 미뤄두었던 주제들을 정리하는데에 시간을 보내게 될 것 같다. 그 사이에 각자의 상황들이 달라지겠지만, 많은 사람들과 다시 보게되었으면 좋겠고, 새롭게 만날 인연들도 기대된다.

.


'Log > .daily' 카테고리의 다른 글

HTTP 웹 구현 후 알게된 점  (0) 2017.10.24
구글 클라우드 데이를 다녀와서  (0) 2017.09.14
hexo로 블로그를 해보다  (0) 2017.08.31
TIL 시작  (0) 2017.08.24
작은 변화라도..  (0) 2017.08.23
댓글
링크
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
Yesterday