개인 블로그 이전하였습니다! https://mobilog.me 아무데나 클릭하면 닫힙니다.
우아한테크캠프 4기 (합격 회고 & 인생 회고)
📌 우아한테크캠프에 합격 통보가 왔다. :)
지원부터 결과까지 50일이 걸렸다.

이 글에서는 합격을 자랑하는것도 포함되지만
각 테스트의 후기와 내가 무슨 생각으로 이 과정을 참여하게 되었는지
이 과정에서 어떤 것을 목표로 삼고 있는지 다시한번 되새김질 하기 위해 작성하게 되었다.

 

우테캠 인원 선발 과정 (깨알 자랑)

우선적으로 궁금할 것 같아서 먼저 작성.

0. 쓰늬 간단 스펙

- 경기권 4년제 대학 [ 전공 : 문헌정보학, 복수전공 : 컴퓨터공학, 부전공 : 경영학 ]

- 대학시절 전공관련 교수님과 프로젝트 경험 2회 ( 지금와서 생각해봐도 개발직군에서는 도움되는 것이 하나도 없다. )

- 내가 얘기 할 수 있는 개발 관련 프로젝트 경험 ( 시간 순 )

   (1) 대학시절 특정 회사 DB를 직접 구축해보는 수업과제 (팀)

   (2) 졸업작품 (개인) - ( 첫 취업은 이 걸로 했다... )

   (3) 회사 프로젝트 2개 (팀 및 개인)

   (4) 간단한 블로그 글 자동작성 (개인)

 - 회사 경력 약 10개월 ( 졸업 직전에 취업 )

 - 자격증 : 정보처리기사

1. 우아한테크캠프 지원까지

1.1 개발의 시작 & 사회 입문

 - 보통 이렇게 생각할 수도 있다. ( 물론 쓰늬는 자신이 중고신입보다 신입 수준에 훨씬 수렴한다고 생각한다. )

'마 늬 중고신입 아니가 그런사람이 왜 교육 지원 왜하냐 ! 중고신입이 신입 기회 다 뺏어간다 !!'

참 내가 신입이었다면 무조건 했을 말이다. 당연하게도 취업할때 보면 중고신입이 엄청나게 많기 때문이다. 이런 사람들과 경쟁하면 불공정, 불평, 불만 안생길꺼 다생긴다. 

다만 취업을 하고나서 생각이 많이 바뀌었다. 중고신입들이 있는 이유 또한 알게되었고 그러한 사람들도 참 처절하다는게 느껴졌다. 신입 만만치않게 아니면 오히려 더 중고 분들도 처절하다.

 

그래서 내 경험을 써보려고 한다.

  쓰늬는 보통 국비지원이나 학원에 다니면서 길게는 6~8개월 짧게는 3개월정도의 교육을 받으며 취업을 하는 케이스와는 조금 다르다.

( 지금도 그 당시의 내 수준을 알아보았으면서 취업을 시켜준 것에 대해 감사하게 생각한다. 중소는 심각할 정도로 인원이 없는 듯 하다.)

그 당시 졸업작품을 면접에서 얘기하면서 취업했는데 나는 사실 졸업작품에 대한 이해도가 그렇게 많지 않다. 뭐든 해봐야겠다 라는 마인드로 유튜브에 있는 클론코딩을 따라하면서 백엔드에서 프론트까지 따라만 했다.

해당 프로젝트의 동작과정 등은 명확하게 얘기 할 수 없다. 라이브러리나 api등을 알고 쓰지도 않았고 더해서 해당 언어에 대해서 알고있는 것 또한 없었다. 객체가 뭔지도 모르고 사용하였으며 안다고 해봤자 '오 이거 배열이었지' 하고 무작정 코드만 따라했다.

여기서 그나마 잘 기억나는 부분은 로그인 부분에서 어 다른 OAuth를 이용해서 로그인 시켜볼까? 해서 기존에 있던 코드를 몇가지 바꿔서 추가 구현해본 것 밖에 기억에 안남는다.

어떤가? 쓰늬의 참 못났고 참 많은 것들이 아쉬운 개발의 시작이다.

 

  어쨋든 이 것들을 잘 버무려서 취업을 했고 자바스크립트라는 문에 몸을 완전히 집어 넣게 되었다. (첫 발은 졸업작품..) 내가 개발을 잘 못하는 것을 알기에 일은 처음부터 크게 주어지지 않았고 [기존회사 API 문서 읽기 - SEO - 점진적 개발단계 입성 ! ] 하지만 뭔들 알겠나 내 눈에는 api문서나 seo작업이나 똑같이 검은색은 글씨고 다른색들은 배경일 뿐이었다.

일을 하면서도 내가 이렇게 모른다는 것에 얼마나 서러웠는지.... 차라리 이럴거면 나가는게 맞지 않을까... 참 많은 생각을 했다. 다만 그럴때마다 자기도 그랬다면서 개발팀 분들이 잘 다독여주고 잘 알려주셨다. ( 이 분들에게는 여전히 감사하고 이 분들 덕에 개발에 대한 열망을 놓지 않았다. )

jquery도 회사가서 알았다. 바닐라 자바스크립트가 뭔지도 회사가서 알았으며 회사에서 팀원분이 jquery 도큐먼트 URL 주면서 함수들 야매로 다 한번씩 써보라고 했다. 이것이 내가 자바스크립트에 적응하기 시작한 순간이다.

일이 주어지고 처음으로 내가 회사에서 생산성 있는 일을 한 것은 자사 홈페이지 퍼블리싱이었고 이 일을 시작으로 점점 DB, api, 안드로이드 앱등 진행을 해보았지만 심도 있게 들어가지는 않았다.

 

1.2 퇴사이유

자 지금부터다 왜 쓰늬가 퇴사를 결심했는지 왜 여기까지 오게되었는지의 시작이다. 

 일을 본격적으로 시작하게 되면서 야근을 참 많이했다. 많이 늦으면 막차타고 가기도했는데 사실 업무를 많이 한다는 것에 대해는 크게 신경쓰지 않았다. 그 당시에는 개발자로 일을 한다는 것 자체가 공부였고 쓰늬의 성장이기도 했기 때문이다.

다만 어느 순간부터는 멈춰버렸다. 내가 성장하지 못한다는 것을 느꼈고 여기서 일을 한다는게 단순 복붙 정도의 수준으로 내려가기 시작했다. 여기부터는 답이 없었다. 개인적인 성장을 위해 내가 집에가서 뭔가를 하려고하면 집에 도착하고 잠자기 바쁘다. 시간이 없었다. 그렇게 일을 하다보니까 답답해지더라 겨우 이 정도에 만족하려고 취업했나 싶을 정도로...

  그 이후 부터 이직이라는 키워드에 관심사가 생겼다. 여러 회사 채용공고도 보았고 테스트도 보기도 했다. 물론 결과는 다 떨어졌지만.... 여기서 퇴사 결심이 서게된다.

  결심이 확고해진 이유는 실 개발경험은 길게치면 6개월이다. 그런데도 여기 떨어지고 저기 떨어지고 테스트 통과도 못하고 여전히 나는 다른 신입 대졸자보다 못하다는 것을 느꼈고 그에 대한 충격도 있었다. 그래도 실무경력인데도 서류도 안뽑히고 짤린 경우가 대부분이었다. 또한 내가 졸업작품으로 react를 준비했었지만 실제로 작업한 것들은 jquery, 바닐라, vue(매우 조금) 정도 이다. react를 실무에 써보고 싶다는 열망도 있었다. 

  이직을 하기 위해서는 정체되어 있는 내가 아닌 성장한 내가 되어야 했고 그 것은 지금 이 순간 코더가 된 내가 아니었다.

  ok 퇴사하자.

 

1.3 퇴사 후 & 지원까지

 퇴사후 뭐했는지 지금 생각해보면 버린시간이 참 많았다. 일단 무작정 그냥 뭐든 해볼려했다. 생각나는 것들은 시도해보았다. 쓰늬만의 블로그를 위해 홈페이지를 만들어볼려고도 했고 포트폴리오용으로 쓸 단일 페이지를 만들어 볼려고도 했다. 그간 쓰고 싶었던 언어, 안써보았던 기술 등 다양하게 접목 시키고 싶었다.

  점점 만들어갈 때 즈음... 이상했다. 단순 html에 화면 구성하는 것이 아닌 react, next 등을 다시 아무것도 제대로 모른채로 시작하려하니 이해가 안되고 어렵고 그럴 때마다 에잇 코드가 이상해! 뒤집어 버리고 다시 시작하고... 이렇게 삽질한 시간만 꽤 되더라.. 그나마 그 중 그렇게 삽질해서 만든게 블로그 글 자동작성 프로젝트이다. 

  이 이후 내가 새롭게 관심가진 것이 알고리즘이었다. 물론 이 전에도 알고리즘을 풀긴 했었지만 풀기만 했지 내 코드를 다시보거나 궅이 타인의 코드를 보려고 하지 않았다. 그러다가 문제를 풀고 진짜 아무생각 없이 다른 사람의 코드를 클릭해서 봤는데 세상에 map, filter, reduce 등 한라인으로 된 코드들 보는 순간 정신이 아득해져버렸다...

  해당 코드들이 좋다는 것이 아니다. 단순한 숏코딩으로 재미를 위해 있었지만 참 그 당시 나에게는 큰 충격이었다. 맨날 for(var i = 0; i < n; i++) {} 이렇게만 사용하던 그 수준에 멈춰있던.... 나에게 신선한 충격이었고 다시 나는 성장할 동력을 찾아 버렸다. 이전에도 map, filter, reduce는 알고 있었다. 다만 매번 사용하던거에 익숙해져 버렸고 알아도 쓰지않으면 모르게 되더라....

   이 후는 거의 최소 하루 2개 알고리즘 풀기를 목표정하고 나날이 보냈다. 어떤 문제는 오래걸리기도 하고 어떤문제는 3분도 안되서 푼 문제들도 있다. 문제를 풀면서 시간이 지나다 보니까 질문에 대한 답변도 몇개는 해줄 수 있는 능력이 되었다.

  이 때가 거의 퇴사후 반년이 지났을 때다. 이제부터는 초조해진다. 이렇게 오래동안 공백을 둘 생각은 전혀 없었다. 다시 취업해야겠다 라는 생각에 사로잡혀버렸다. 또한 그에 대한 공포심도 생겼다. 새로 들어간데에서 똑같이 잠깐 배우다가 내가 성장하지 못하면 어쩌지... 시간이 부족해서 다시 내가 공부를 못하게 되거나 그런 상황이 발생하면 어쩌지... 그렇게 회사 자주 옮기면 사람들 만나거나 새로 들어갈 때에도 문제가 생길텐데....

  그러면 좋은 회사를 들어가면 되지 않는가 ?? 맞다! 최소 중견이상으로 찾아보자 !! 한달이 지났다. 답이 없다... 여전히 나는 다른 지원자보다 못하고 부족한게 많다.. 여기 부터는 진짜 최악으로 치닫는다.. 예전처럼 그냥 취업만 시켜주면 감사합니다. 마인드로 바뀌어 버린다.  다시 소규모 회사로 바뀐다. (예전에 팀원분이 이직하려면 퇴사가 먼저가 아니라 이직할 회사가 먼저라는 말이 생각이 난다.)  그나마 다행이었던 것은 서류를 합격하거나 코딩테스트를 통과해도 과연 내가 이 회사에서 성장할 수 있을까? 라는 생각을 다시한번 하는 점이었다. 참 이윤을 추구하는 회사 입장에서는 이기적인 지원자가 아닐 수가 없다. '얘는 개인적인 성장을 목적을 겸해서 돈을 가져가네 어휴 치졸한놈' 물론 개발자가 성장한다는 것은 회사 이윤이 확대되는 과정에 포함될 수 있다. 그만큼 생산성이 늘어난다는 소리와 동일한 의미이기 때문이다. 다만 이렇게 개발자 성장이 회사이윤 확대과정이라고 생각하는 회사는 당신이 생각하는 만큼 많지 않다.

  사회는 생각보다 쓰고, 듣고 봐왓던 것 보다 힘든 면이 훨씬많다. 

 

자 그러면 쓰늬가 개발자로서 성장을 목표로하는데

그 성장을 이루어 낼수 있는 회사를 찾자.

그 회사를 들어가기 위해 쓰늬가 개발자로써 부족한 점은 무엇이 있는지 알아보자.

 

결과만 말하면 개발자로써 쓰늬한테 필요한 것은 협력 경험이다.

개발을 하게되다보면 99%의 모든 개발은 협력이라는 단어로 귀결되기도 하더라

다른 말로하면 커뮤니케이션, 의사소통, 공유 등 다양하게 말할 수도 있다. 심지어 나 자신과의 협력이라고도 말할 수 있다.

내가 작성한 코드 나중에 되돌아보면 내가 무슨코드를 작성했는지 왜이렇게 작성했는지 보자마자 단박에 알수 있을까.

만약 내가 사용한 변수는 a,b,c,d,e,f,g 이런식으로 사용했을 경우 이게 뭔소린지 이해할 수 있을까.

저어어어얼대 모른다. 확신할 수 있다. 위와 같다면 거의 일회성 코드 수준이라고도 할 수 있다.

( 코드를 파악하기 위해서는 다읽어야 되는 수준인데 이는 다시 작성하는 것과 똑같다. )

즉, 코드는 다시 말하자면 다른사람을 위해서 작성하는 것이라고 생각한다. 클린코드가 왜 필요하고 디자인 패턴이 왜 필요한지 왜 중요하게 여겨지는지 이에 대한 쓰늬의 답변은 결국에는 협력이라고 생각한다.

 

  성장할 수 있는 회사를 찾으면 쓰늬가 들어가기에는 아직도 많이 부족했다. 그 중 부족한 경험은 협력이었으며 그렇다고 단순히 개인의 입장으로 협력 경험을 키우기에는 어렵다. 그러면 그런 경험을 어디서 찾아야 하는가??

결국 내가 안할 줄 알았던 교육에서 찾게 되었다. 우아한 기술블로그에서 본 회고 등을 보면 페어프로그래밍과 같은 여러 진행과정들이 있는데 참 내가 경험해보고 싶은 것들이 많이 있었다.

그래서 지원했다.

물론 이 외에 이후에 있는 입사기회를 목표로 두고 있지 않다고는 말 못하겠다.

다만 내가 여기서 얻고갈 최종 목적는 협력경험이다.

2. 코딩테스트 회고

2.1 1차 코딩테스트

 - 1차는 총 4문제가 나왔고 문제유형은 말할 수가 없다.

    다만 쓰늬는 1, 2번을 맞았고 3번의 경우 부분점수이거나 못풀었던걸로 기억한다. 4번은 풀지도 못했다. 그래서 당연히 떨어진 줄 알았다. 근데 생각외로 다른 사람들도 많이 어려웠나보다.. 운이 정말 좋았다.

  문제의 수준은 백준기준으로 실버 5 ~ 골드 5 정도 되는 듯하다. 1번의 경우는 엄청 빠르게 풀었던 것으로 기억하다보니 브론즈 까지도 갈 수 있을것 같다. 프로그래머스 3레벨을 무난하게 푼다면 다 풀 수 있는 문제였을 것 같다.

 

2.2 2차 코딩테스트

 - 2차에는 하고싶은 말이 몇가지가 있는데 우선 js, ts를 이용하여 문제를 푸는 거였고 라이브러리 사용은 허가되지 않았다. css나 html에 대한 지식도 필요했고 js에 대한 지식도 많이 필요했다.

  다만 쓰늬가 말하고 싶은 점은 2차의 경우는 답안이 정해진 것이 아니다. 물론 최소 요건을 맞추는 것은 맞지만. 그 요건을 맞추기 위해서 만든 코드 내용이 중요하다고 생각한다. 즉, 알고리즘과 다르게 코드 자체를 본다는 의미이다. 그런 의미에서 쓰늬는 운이 좋았다고 말할 수있다. 2차를 진행하기 전에 프로그래머스에서 진행했던 데브매칭이 비슷한 유형이었기 때문이다.

  데브매칭때가 오히려 구현결과가 높았지만 이 당시 쓰늬는 그냥 파일을 분리하거나 그러지 않았고 html파일에 <script>태그 안에 막 함수 이것저것 대충 남발하면서 작성했기 때문에 가독성은 매우 떨어졌었다. 결과 당연하게도 데브매칭은 떨어졌다 :) 어떻게 쓰늬가 떨어진 이유 등을 알 수 있게 된 것은 데브매칭 이후 프로그래머스 측에서 해설을 올려주어 알게 되었다. 

 

'2021 Dev-Matching: 웹 프론트엔드 개발자(상반기)' 기출 문제 해설

'Dev-Matching 웹 프론트엔드 개발자'의 과제 테스트는 어떠셨나요? 내가 무엇을 잘못하였고, 무엇을 잘했는지 궁금하시지 않으셨나요? 우리 모두 해설을 보고 한번 점검하는 시간을 가지도록 해요.

prgms.tistory.com

  위의 해설을 먼저 보았기 때문에 이번 2차 코테에서는 좀더 가독성을 높이고 재사용성 등에 초점에 맞추어 진행했었다. 결과적으로는 구현결과은 데브매칭보다 낮았지만 운이 좋게도 코드를 좋게 봐주신 것 같다.

3. 면접 회고

  면접 시간도 짧기도 했고 면접 회고는 사실상 별다른 얘기가 없다. (물론 짧은 면접임에도 불구하고 좋게 잘 평가해주셔서 면접관 분들께도 감사의 인사를 전한다.)

이 글을 읽고있는 여러분이 생각하는 질문들이 나온다. 면접 한 내용을 이어서 붙이게되면 나의 스토리텔링이 되어버린다. 내가 어떤사람인지 알려주기 위해 면접을 준비했었고 보았던 것 같다. ( 코드와 js지식은 크게 준비 안했다. 이미 1차 테스트, 2차 테스트를 통해 보여주었다고 생각했기 때문이다. )

 면접에 대한 질문은 아니며 순수히 내가 준비 했었던 내용이다.

1. 작성한 이력서 읽기
2. 기술블로그 읽기
3. 지원한 이유
4. 개발자가 된 이유
5. 힘들었던 경험과 해결 그리고 교훈
6. 코드작성중 어려움이 있을 때 나만의 해결방법
7. 퇴사한 이유
8. 공백기간동안 진행한 내용
9. 배민앱의 사용자 측면에서의 평가 

 9번의 경우 어느 블로그에 있길래 왠지모르게 준비해야 될 것 같아서 준비했었던 기억이 있다. 크게는 저렇게 준비했었고 그에 따른 가지치기 질문을 생각을 좀 했었다. 만약 내 경험이 진짜라면 충분히 답을 할 수 있는 것들이었고 이 외의 질문들은 내가 평상시에 뭐가 되었든 개발공부에 관심이 있고 공부를 진행 하고 있다면 충분히 대답할 수 있는 내용이다.

4. 글 회고

 이 번 글은 우테캠의 최종 결과 자랑, 과정 회고, 짧지만 개발자로 살아온 인생 회고를 목적에 두고 있다.

 

 나는 일과 동시에 개발자로서 성장하고 싶은 마음이었고 여기서 최우선적으로 성장시키고 싶은 것은 협업능력이었다.

내가 원하는 직장으로 들어가기에는 내 자신의 능력이 부족해 보였고 우테캠이라는 교육에서 내가 원하는 능력을 키울수 있는 것을 찾게되었다.

 

또 하나의 몰두할 기회가 생겼다.