• 우아한테크코스 한 달 생활기
    Study/일상·회고 2023. 3. 18. 16:41
    반응형

    벌써 우테코에 들어온지 한 달이 훨씬 넘었다. 우테코에서 느낀 몇 가지를 정리해보려고 한다.

    우선 프론트엔드 개발을 희망하는 나는 이번 2월에 컴공을 졸업하자마자 바로 우테코에 합류했다.

    전공 생활 중에 자바스크립트는 미지의 영역이었다. 학교 커리큘럼 상 중요도가 떨어지는 자바스크립트는 소외될 수 밖에 없었고, 오로지 독학만 가능한 환경이었다. 학교에서 학과 홈페이지를 유지보수하고 기능 개발을 하던 나는 백엔드, 프론트엔드, 데이터베이스, 서버 등등 가리지 않고 어깨 넘어 학습을 해왔다. 이 중 가장 흥미로우면서 나의 역량을 최대한 보일 수 있는 분야가 프론트엔드라고 생각했다.

    안타깝게도 학교에서는 자바스크립트의 중요성에 대해서 크게 강조하지 않는다. 현실적으로 학교 입장에서는 빠듯한 커리큘럼으로 인해 (프로그래밍 언어 중에서는) 취업에 가장 유리한 자바에 가장 힘을 많이 줄 수 밖에 없다. 또, 자바스크립트는 과거에 멸시 받던 프로그래밍 언어 중 하나였기에 최근 흐름과는 다른 커리큘럼이 유지될 수 밖에 없는 점도 이해했다.

    실제로 학교에서 전공생 대부분이 백엔드를 선호하는 분위기에서 프론트엔드란 유니콘 같은 존재였다. 프론트엔드를 준비한다고 했을 때의 반응은 난해하다. 물론 프론트엔드의 세계를 잘 모르는 사람들의 편견에 불과한 것이겠지만, 어찌됐든 세간의 인식 때문에 모집단이 적어 주변에 함께 학습할 사람을 찾는 것이 쉽지 않았다. 결정적으로 취업 준비는 혼자할 수 있는게 아니기에 이런 부분에서 큰 어려움을 겪어 우테코에 합류하게 됐다.

    우테코에 들어오기 전 프리코스를 할 때에는 우테코에서 자바스크립트의 A to Z를 가르쳐주는 줄 알았다. 1년 동안 자바스크립트의 모든 것을 배우고 그대로 취업 시장에 진출한다고 생각했다. 프로그래밍 언어를 다양한 방식으로 학습하고 접근하다보니, 우아한형제들의 입맛에 맞게 밑바닥부터 교육을 할 것으로 생각했다.

    하지만 한 달을 생활해보니 이것은 근거없는 기대에 불과했다. 사실 프리코스의 높은 경쟁률과 험난한 과정을 생각해봤을 때, 이 자리에 있는 사람들이 자바스크립트를 당연히 할 줄 알아야 했다. 따라서 자바스크립트의 모든 것을 알려주지는 않는다. 그렇다면 우테코에선 도대체 무엇을 배우는 걸까?

    우테코에서는요 …

    우아한테크코스에서는 2주마다 새로운 미션이 나온다. 미션은 두 가지 step으로 구성되어있다. 첫 3일은 step1으로 랜덤으로 매칭된 크루와 함께 페어프로그래밍을 해야하고, 나머지 기간인 step2에는 독립해서 추가된 요구사항을 만족하면 된다. 개인적인 생각으로는 step1이 우테코의 핵심 가치라고 생각한다. 원래 내가 짠 코드는 내가 잘 이해한다. 하지만 다른 사람 눈에도 그럴까?

    내가 굳게 믿고있던 개발 철학을 가지고 어떤 코드를 작성했다고 가정해보자.
    페어에게 내 코드를 보여줬더니, 반응이 썩 좋지 않다. 그런데 심지어 그 이유가 굉장히 분명하다.
    내가 알고있던 철학과 다른 의견을 제시하지만 가만 생각해보니 상대가 말한 것도 맞는 것 같기도 하다.
    썩 내키지 않지만 상대의 피드백을 반영한다. 마음속 어디선가 찝찝함과 불편함이 느껴진다.
    (step2가면 내 입맛대로 고쳐야지~)
    
    ** 실제 사례가 아닙니다 **

    위 사례와 같이 사람들은 일반적으로 인지부조화를 싫어한다. 내가 알고 있던 신념이나 정보가 실제로 아니었다면 굉장한 불편함을 느낄 수 밖에 없다. 오히려 상대방을 이상한 사람 취급할 가능성이 매우 크다. 이는 꼭 프로그래밍에서만 일어나는 일이 아닌 일상, 정치, 종교, 학습, 역사적인 사례 등등 여러 상황에서 인간의 삶에 공통적으로 나타나는 현상이니 자연스러운 현상이다.

    당연히 우테코에서 페어프로그래밍을 하거나 피드백을 받으면 불편하다. 만약에 내가 아는게 없다면 배우면 되니깐 불편할게 없겠지만, 나도 내 나름대로 철학을 가지고 프로그래밍을 해온 사람인데 내가 알고 있던 사실과 다른 의견이 들어온다면 불편할 수밖에 없다.

    그렇다면 우테코에서 왜 굳이 불편한 페어프로그래밍을 경험하게 할까?

    왜 내 코드 기를 죽이고 그래요!

    기본적으로 프로그래밍 설계 지식이 사람마다 다를 수밖에 없다. 본인만 알아듣는 네이밍이나 코드가 있는지 본인 스스로는 잘 모를 수 밖에 없다. 본인은 의도 하고 설계 했기에 문제가 없다고 생각한다. 하지만 내 페어가 네이밍이나 코드를 봤을 때 단번에 이해를 하지 못하면 이는 필연적으로 제 3자가 봤을 때에도 문제가 될 가능성이 크다. 사람들이 보는 시야는 생각보다 비슷하다. 내 페어가 내 코드에서 불편함을 느꼈다면, 내 페어 뿐만이 아닌 우테코 크루 대부분이 불편함을 느낄 수 있을 것이라고 생각한다.

    함께 자라기

    페어프로그래밍을 하다보면 분명히 기술적으로 막히는 부분이 있다. 이럴 때 함께한다는 것이 굉장히 도움된다. 인터넷에서 2배의 속도로 정보를 수집하거나 검토할 수 있다. 이 과정에서 서로 알고 있는 지식을 동기화하는 과정이 필연적으로 일어난다. 페어와 내가 알고 있는 지식들을 총 동원해서 문제를 해결해나갈 수 있다. 이는 프로그래밍 설계에서도 마찬가지인데, 어떤 구조를 설계할 때에도 함께 하면 더 넓은 시야로 검토할 수 있기에 두렵지 않다.

    소프트스킬

    우테코는 크루들이 알아서 성장하라고 두지 않는다. 페어프로그래밍을 하기 위한 여러 가지 방법론을 제시한다. 예를 들면 페어프로그래밍을 더 잘하는 법에 대해서 알려준다. 개발자들이 소통하는 법을 넘어서서 상대방을 설득하고, 설득당하는 연습을 꾸준히 하게 한다. 남을 설득하려면 논리와 근거가 필요한데, 글쓰기 훈련을 통해서 이런 능력을 성장시키기도 한다. 학습로그를 남기거나 글을 쓰거나, 심지어 스터디나 자료 공유를 하면서 크루들 앞에서 말하는 일도 생각보다 많다. 우테코에서 알게된 새로운 기술이나 개발 방법론을 타인에게 소개하는 것은 나를 한 단계 더 성장시킨다.

    피드백

    우테코에서는 미션 관리를 위해 현직 개발자들이 매 스텝마다 피드백을 준다. 내 코드를 부검(?)하는 듯한 느낌이라 두렵기도 하지만, 앞서 말한 것 처럼 리뷰어 뿐만 아니라 다른 사람도 그렇게 느낄 것이라고 생각하며 받아들이고 있다. 내 코드에 대한 평가가 나에 대한 평가는 아니니깐 너무 상처받을 필요 없다!

    중간에 진행하는 공통피드백에서는 미션에서 사용하면 좋은 방법을 제시해주거나, 자바스크립트의 난해한 문법에 대해 배운다. 당연히 난이도는 상당히 높다. 명확한 이유를 설명하기 어려운 주제들이 쏟아져 나온다.

    정답은 없다

    내가 느낀 우테코의 교육방향을 감히 이야기 해보자면 정답은 없다는 것이다. 특히 프론트엔드는 상황에 따라서 설계가 전혀 달라지게 되는데, 어떤 구조나 패턴을 따르는 것은 불가능하다. 유연한 설계를 하려면 다양한 시도로 경험을 쌓아야 한다. 그래서 코드를 반드시 이렇게 작성해야한다~ 가 아닌 이것만은 하지 마세요~ 의 느낌이 강한 리뷰가 많다.

    가끔 다른 사람들의 피드백을 읽거나, 수업에서 받는 피드백 등을 종합해보면 라이브러리 수준의 범용성이나 확장성을 가지는 절대적인 어떤 패턴이나 구현 방법론을 마치 정답인 것 처럼 모방하고 따르는 것이 아니라 상황에 맞게 적당히 유연하게 확장 가능성을 가지는 프로그램을 작성하는 것을 원하는 것 같다. 물론 본인이 해당 아이디어가 정말 필요했다고 느끼면 사용 이유에 대해서 상세하게 설명해서 리뷰어를 설득하면 된다. 정답은 없다는 사실을 리뷰어들도 알고 있을 테니깐 말이다.

    우테코에서 느낀 점

    친구들끼리 모였을 때 기술적인 이야기를 꺼내기 쉽지 않다. 프로그래밍을 아는 전공생들끼리 모여도 밥먹는데까지 이런 얘기 하냐는 반응이 대부분이다. (여담이지만 이래놓고 개발자 하고 싶다는 소리를 들으면 숨이 턱 막힐 때가 간혹 있다.) 반면에 여기에 모인 사람들은 일상이 프로그래밍이다. 인생이 프로그래밍인 사람도 있는 것 같다. 대화 내용의 90%는 개발 이야기다. 진정으로 프로그래밍 언어를 사랑하는 사람들이 많고, 그만큼 속도와 추진력 있게 학습이 가능한 것 같다는 생각을 많이 했다. 누가 이렇게 하라고 하지 않아도 다들 열심히 정보를 공유하고 함께 성장하고 있음을 매일매일 느끼고 있다.

    경쟁하지 않아도 함께 성장할 수 있다는 것을 보여주는 우테코만의 철학이 있기에 크루라는 명칭이 생긴 것일까? 이렇게 대단한 사람들과 앞으로도 함께할 날이 더 많이 남았다는 것에 감사하고 이런 환경을 마련해준 코치들과 리뷰어들 그리고 우아한형제들에게 무한한 감사를 느낀다.

    반응형

    댓글