-
[회고]우테코 프리코스ETC 2023. 11. 20. 23:17728x90
지난 10월부터 시작된 우아한 테크코스 예비 6기 대상 프리코스 과정이 완전히 종료 됐다.

처음 지원서를 작성하던 때를 잠시 떠올려 보면 프리코스에 참여하는것은 단순히 본 과정에 참여하기 위한 디딤돌 정도로 여기고 내가 원하는 모습이 되기 위해 거쳐야 할 단계중 하나로 여겼던것도 같다. 물론 그렇다고 해서 이 과정을 쉽게 생각하거나, 어설프게 마무리할 생각은 전혀 없었지만 근거 없는 자신감이 있었던것도 역시 사실이다.
OT 이후 얻은 정보에 의하면 대략적인 선발 인원은 80명에서 90명 사이로 작년보다 축소된 규모인데 반해 지원자는 5,000명이 넘는 그야말로 수요만 넘치는 상황이었고 이를 인지한 후로 오히려 막연한 기대와 자신감 보단 이 과정을 통해 얻어가야할 목표만이 선명하게 남았고 상황이 나를 더 집중하게 만들어줬다고 생각한다.프리코스는 매 주마다 미션이 주어지고, 요구사항에 맞춰 문제를 풀어나가는 형태로 4주간 진행되었는데, 아직 프리코스가 시작되기 몇 주 전부터 오픈 채팅방을 통해 지원자끼리 활발한 교류(지난 회 차 문제 함께 풀어보기, 문제 공유 등)가 있기도 했지만 문제를 미리 풀어본다면 스스로 아는 문제라는 착각에 빠져 일주일간 몰입하지 못 할게 염려되어 굳이 문제를 찾아 풀진 않았는데 모든 과정이 끝난 지금 생각해보면 이 방법이 내겐 더 알맞은 방법이었던거같다.
실제로 미션이 주어지는 목요일부터 제출 전 날인 수요일까진 밥 먹는 시간 외엔 코드를 몇 번이고 들여다보면서 뜯어 고치길 반복하기도 했으니 말이다.
미션
매 주차 마다 나온 문제는 다음과 같았다.
- 숫자 야구
- 레이싱 카
- 로또
- 크리스마스
나는 각 주차 미션마다 나름의 목표를 세우고 이 부분만큼은 확실하게 채우고 가야겠다는 생각으로 임했는데 첫 번째 숫자 야구 게임의 경우 지금 내 상태를 스스로 진단하는 시간을 가졌다.
분명 미션을 제출하기 전까진 나름 만족감을 가지고 있었는데… 뼈가 부러져야 깨닫는 타입답게 다른 이들이 작성한 코드를 살펴보며 약간의 좌절감을 느끼기도 했지만 그간의 시행착오를 통해 맺집이 생겼는지 배워가야할 항목들로 자연스레 인지하게되더라숫자 야구 게임의 요구사항은 단순히 ‘코드를 작성해 동작하는 앱을 만드세요.’ 정도 였다면 레이싱 카부터는 본격적으로 객체지향 생활 체조 원칙이 등장하며 준수해야할 항목들에 대해 나열하기 시작했고 나 역시 원칙들을 마킹해가며 요구사항에 맞춰 구현해 나갈 수 있었다.

이 때부터 순수하게 '재미’를 느끼며 미션을 수행 해 나갈 수 있었는데 그 이유로 그동안 혼자 독학으로 공부하고 보내온 시간 속에서 나를 검증할만한 수단 다시 말하자면 내가 부족한 부분이 무엇인지 알기 어려웠는데 이런 명확한 규칙에 맞춰 풀어야 할 문제가 주어지니 문장 그대로 내가 해야할 것들이 무엇인지 뚜렷하게 보이는 경험을 했다. 그 전까지 이런 것들을 몰랐냐고 묻는다면 그건 아니지만 머리로 아는 것과 수행하는것의 차이로 이해해주면 감사하겠다.
다음으로 이어지는 레이싱 카 미션에서는 객체 지향 생활 체조 원칙 + MVC 패턴을 사용하라는 의미가 다분한 요구사항에 추가되었다.
사실 나는 웹 개발을 공부하면서 MVC 패턴을 어느정도 알고있고 흉내 낼 수 있는 정도라고 생각하지만, 이전 미션까지는 요구사항에 특정 되어 있는 부분이 아니기도 했고 객체 자체로 모든걸 해결하는 경험 역시 쌓고싶다는 이유로
소프트웨어 아키텍처를 도입하지 않았지만 다른 참가자들은 1주차 미션부터 MVC 패턴으로 구현하는게 대부분이어서 이 부분이 내겐 의아하게 다가왔었다.
물론 DDD로 구현하든 MVC로 구현하든 핵사고날로 구현하든 온전히 참가자 본인의 선택이고 이에 대한 패널티 역시 존재 하지 않지만 순수하게 사용 이유에 대한 궁금증이라고 보는게 맞는거 같다.마지막으로 크리스마스 미션은 누가 봐도 디자인 패턴을 사용해보세요 라는 느낌의 문제였고, 1 ~ 3 주차 미션과는 비교하기 어려울 정도의 난이도였다고 생각한다.
막구현으로 구현한다면 하루정도 공들이면 가능할것도 같은 느낌이긴 했지만, 지난 3주간 성장한것 이상을 보여주고싶다는 욕심이 들어 더 어렵게 느껴지기도했는데 만약 이와 상등한 문제가 2차 코딩 테스트로 나온다면
5시간이라는 시간 제한을 두고 테스트 코드부터 요구사항까지 모두 충족해 낼 수 있을지 확신은 없다.
이 미션에 대한 만족도를 5점 만점으로 표현하자면 4점으로 제법 만족스러운 결과였는데 뭐 내가 특출나게 잘했다거나 코드 리뷰에서 칭찬이 쏟아졌다거나 하는 것은 아니었지만 스스로 세워둔 벽을 허물었다는데서 나오는
기쁨의 점수이다. 그동안 나는 디자인 패턴을 나름 공부도 하고, 적용해야할 상황에 대해서 고민하기도 했지만 막상 실제로 적용하는것을 못 했는데 패턴이라는 것을 정형화된 틀의 하나로 보는 내 시각이 문제였다.정해진 규격에 맞춰 개발해야한다는 원인 모를 압박감과 완벽하게 적용하고 싶다는 욕심의 콜라보가 아니었나 싶긴 하지만 중요한건 내가 만든 내 시각을 허물었다는데 있다.

적용한 패턴은 전략 패턴과 파사드 패턴으로 제출전까지 반복한 리팩터링으로 인해 불필요한 요소가 몇 몇 남아있긴 하지만, 필요한 시점에 알맞은 패턴을 도입할 수 있었다는 점에서 뿌듯함을 느낄 수 있었고 다음엔 이보다 더 매끄롭게 코드 흐름을 끌어갈 수 있을거라는 기대감도 있다.
커뮤니티에 대하여
전 기수가 슬렉을 통해 커뮤니티 활동이 이루어졌던것과 달리 이번 예비 6기 프리코스는 디스코드를 통해 커뮤니티 활동이 진행됐다.
이전 기수가 어떤 식으로 활동했는지 알아보지않은 나로써는 커뮤니티의 활성도가 얼만나 큰 차이가 나는지 알 수 없지만, 확실한건 우테코 커뮤니티를 통해 얻어가는건 정말로 많다.
이 곳에 지원하는 지원자 대다수는 열정이 넘치는 사람들로 구성이 되었는지 잡담, 코드리뷰, 토론, 함께 나누기 등 여러 가지 채널들이 동시 다발적으로 글이 올라오고 댓글이 달리는 등 활발한 활동을 목격할 수 있었다.열정이 넘치는 인원들이 모인만큼 질문에는 깊은 생각이 담겨있고, 글에는 검증된 사실들이 나열 되어있었다. 심지어 그 사실이 유용하다.
물론 모든 질문이 혹은 글들이 유용하고 진중하며 사실은 아니겠지만 내가 봐온 어떤 커뮤니티보다 청결하고 함께 공유하고자하는 의지가 강하다는걸 느꼈기 때문에 상황이 허락하는 한 진행되는 등락 여부를 알 수 없는 본 과정은 둘째치고 프리코스는 반드시 참여해야겠다는게 지금 내 심정이다. 물론 본 과정에 참여하는것 보다 좋은 상황은 없겠지만 …아쉽게도 이번엔 미션에 치여 리뷰를 제외한 함께 나누기나 토론하기 등 다른 항목들에 기여하지 못 했지만 리뷰 만큼은 내부에서 스터디를 이루어 진행하는 경험을 하기도 했고, 2차 결과가 나오기 전까지 함께 하는 문제 풀이 스터디와 결과와 무관하게 CS 스터디를 하는것으로 이어지기도 했다. 아마 다른 스터디도 꽤나 활발하게 활동을 이어나가지 않을까?
코드 리뷰
나는 이제까지 누군가에게 내가 작성한 코드를 보여주며 설명해본 경험이 전무 했고, 1주차 미션을 진행 할 때까지만 해도 부끄러움을 느껴 차마 코드 리뷰를 받겠다는 글을 쓸 엄두가 나지 않았다. 이건 코드를 잘 작성했는지 아닌지를 떠나 처음이 어렵게 느껴지기 때문인데 그럼에도 코드 리뷰를 받고싶었다. 내가 부족한게 뭔지 회초리를 맞더라도 알고싶었다.
다행히도 미리 언급했듯이 우테코 커뮤니티는 굉장히 활발했고 굳이 내가 글을 쓰지 않아도 대다수의 사람들이 코드 리뷰를 주고 받기 위해 글을 올리는 환경이었기 때문에 나는 댓글을 하나 덧붙이는걸로 처음 한 분에게 코드 리뷰를 받아 볼 수 있었다.이전까지 어떤 식으로 피드백이 올지 몰랐고 어떻게 답변을 해야할까 고민이 많이 들었지만 역시 사람은 경험의 동물이라고 최초 한 번을 이겨 내고 나니 나 역시 활발하게 활동하며 2주차 미션에 대한 리뷰는 총 13명과 주고 받을 수 있었다. 사실 피드백이라는게 늘 좋은것만 있진 않고, 내 생각과 다른 의견이 달릴 때도 있었지만 이 부분 역시 꾸준히 대화를 주고 받으니 타협점을 찾을 수 있었고 이를 통해 코드 리뷰의 가치를 다시금 깨닫게되었다.
아쉬운 점
이건 과정에 대한 아쉬움이 아닌, 내가 달성하지 못한 스스로의 목표에 대한 아쉬움으로, 딱 하나 테스트 코드에 대한 아쉬움이 남았다.
문제에서 요구하는 테스트 코드에 대한 목표는 달성하긴 했고 어느정도 흐름을 캐치할 수 있었지만 내가 목표로하는 수준에 다다르진 못 했다. 앞으로 이어질 2차 코딩 테스트 스터디에서는 이 부분을 좀 더 개선하는 방향으로 진행해봐야겠다.우테코 지원을 망설이는 이들을 위해
우테코가 올 해로 6기째 진행 되고있는만큼 명망있고 검증된 교육 기관임은 틀림 없는 사실이다.
나는 우테코의 존재를 작년 5기 모집할 때 처음 알게되었는데 그 때 내 생각은 아직 내가 저기에 갈 수준이 아니라는 프레임에 쌓여있었다.
오히려 반대로 행동해야했다. 부족함을 아는 만큼 뛰어난 이들과 함께하려고 노력해야했고 떨어지더라도 다음을 준비할 수 있게 도전했어야했다. 물론 내가 허무하게 시간을 보낸건 아니지만, 여기서 보낸 4주의 시간이 나에게 준 보상은 내가 원하던 것 이상이었고 코드를 보는 눈이 달라졌다는걸 스스로 느낄 정도이다.
프리코스로 주어지는 4주라는 시간이 어쩌면 당신에게 길을 열어주는 활로가 될 수도 있다.
만약 나와 같은 이유로 지원을 망설인다면, ‘될지 안될지는 해보고 고민하세요.’ 라는 운영진 분들의 말이 도움이 되길 바란다.마치며
처음 회고를 작성하려고 마음 먹었을땐 1주차부터 4주차까지 코드를 부분 부분 비교하며 어떻게 성장했는지에 대해 남겨야겠다는 생각으로 시작했는데 막상 글을 적고 보니 에세이에 가까운 글이 되어버렸다.
오늘 작성한 글에 대해 되짚어 보니 나도 모르는 사이에 내가 나를 틀에 가두고 있었다는걸 알게되었다. 이래서 안 되고 저래서 안 되고 이런 생각은 나와 상관 없는 일이라 여겼는데 나도 모르는 사이 자신감이 많이 떨어졌었나보다.
프리코스가 종료된 시점에서 회고 글을 통해 또 뭔가를 얻어갈 줄 몰랐는데 기분이 묘하다. 또, 글 자체가 우테코를 찬양하는 느낌마저 드는데 내가 이 과정이 정말 만족스러웠다는걸 다시 확인할 수 있었다. 결과에 연연하지 않아야겠다는 다짐도 했지만 2차 코딩 테스트라도 참여해보고 싶다는 생각이 간절하다. 프리코스에서 느낀 바가 이정도인데 그 곳에서 또 이어지는 본 과정에선 어떻겠나? 결과 발표까지 남은 삼 주간 맑은 물이라도 떠봐야 하나싶다.

'ETC' 카테고리의 다른 글
H2 DB "data.sql" 삽입 오류 (0) 2024.03.26 H2 DB "start_value" 오류 (0) 2023.11.23 Unchecked overriding: return type requires unchecked conversion. Found (0) 2023.11.23 DND 9기 회고 (0) 2023.11.23