우아한 테크캠프 7기 합격 + 2주차 후기

2024. 7. 7. 23:00카테고리 없음

우아한 테크캠프 7기(백엔드)에 합격했던 과정과 2주 동안 참여한 후기를 작성해보려고 합니다.

 

우아한 테크 캠프에 참여하기 까지

코딩 테스트

알고리즘 3문제 + CS 객관식 5문제를 프로그래머스에서 진행했습니다.

코딩 테스트 언어가 Java로 제한되어 있어 알고리즘 난이도가 어렵지 않을 거라고 생각했었고, 실제로도 그랬던 기억이 납니다.

1번 2번이 하여 푸는데는 25분 안으로 끝냈던 것 같고, 3번이 어려운 건 아닌데 처음 보는 아이디어가 필요했던 이분 탐색 문제라 구현을 헤맸습니다. 이후 반례를 찾으려 테스트 케이스 돌려보다 2번에서 특이한 반례를 찾아 그 부분을 고쳐서 제출했습니다.

CS 객관식 문제는 크게 어렵지 않아서 쉽게 맞췄던 거 같습니다. 하지만 CS 객관식 문제가 추론을 요하는 문제라기 보다는 해당 키워드를 들어본 적 있으면 그냥 찍어서 풀 수 있을 정도의 난이도였습니다.

이후 다른 일정이 있어서 준비를 위해 약 1시간정도 일찍 나왔었고, 오픈채팅방에서 본 커트라인은 완벽 2솔 + 객관식 5솔인 것 같습니다.

과제 테스트

과제 테스트는 프로그래머스에서 주문 관리 API 서버 개발 과제테스트가 올라와있었는데, 이 문제를 풀어보면서 과제 테스트 감을 잡으려고 노력했습니다. 실제로도 과제테스트가 이 과제와 유사한 형식으로 나왔어서 많은 도움을 받았습니다. (지금은 찾아보니 프로그래머스 측에서 내렸는지 안 보이는 것 같습니다.)

과제 테스트를 간단하게 정리해보면 Spring으로 프로젝트 전체를 개발해본 경험이 있으면 그렇게 어려운 과제는 아니였습니다. 게다가 작년 블로그 후기들을 찾아보면 작년 과제 테스트는 요구사항 API가 10여개였다는 말을 봤는데, 이번에는 너무 간단한 API 3~4개밖에 없었어서 훨씬 쉽지 않았나 생각됩니다. 구현은 여유롭게 다 끝냈는데 시험을 끝나고 복기해보니 Configuration 부분에서 말도 안 되는 실수를 해뒀던 거 때문에 혹시나 채점 성적이 낮으면 어쩌지 생각했었는데 크게 문제되지는 않았던 것 같습니다.

서류

과제 테스트 합격자를 대상으로 면접 전형을 위한 서류 제출을 안내받았습니다. 4개의 문항이 있었는데, 4개 문항 모두 1만자 제한이 있었기에, 하고 싶은 이야기를 제한 없이 해보라는 의도로 파악했습니다.

면접에 사용하는 직접적인 서류다보니 하고싶은 이야기를 다 적어보려고 노력했었고, 서류를 쓰다보니 30분의 짧은 시간동안 진행하는 면접이다보니 서류에서 나를 더 많이 보여주는 것이 중요하다고 판단했고, 그러다보니 하고 싶은 이야기가 많아져서

그래서 1번 문항은 약 6000자 나머지 문항은 약 2000~3000자정도 써서 제출헀고, 포트폴리오 제출란이 있어 이력서 느낌에서 조금 더 상세 내용을 덧붙여 제출했습니다.

면접

 우아한 테크캠프 면접을 준비하면서 토스페이 기술면접도 같이 준비했었는데, 면접 일정이 너무 가까이 잡혀서 힘들었던 기억이 있습니다. 게다가 토스페이는 모집 대상이 3년 이하이다보니 별 욕심 없이 ‘코딩 테스트나 쳐보자’ 면서 내용 정리도 안 된 포트폴리오를 올려뒀어서 그 부분에서 나올 수 있는 질문에 대해 답변을 준비하려다 보니 면접 준비하는 데 범위가 너무 방대해져서 힘들었습니다. (결국 토스페이는 면접 질문의 의도도 파악 못하고 어버버대다가 바로 떨,,)

 

 기술 면접 준비는 내둔 포트폴리오에 사용한 기술에 대해 근거를 명확하게 정리하려고 노력했습니다. CS는 마침 1달 전부터 동기랑 스터디를 가볍게 하고 있었어서 스터디 외에 추가로 포트폴리오랑 연관되는 CS를 공부하려고 했습니다. 인성 면접은 서류에 관련 문항이 있어서 답변한 내용에 대해 나올 수 있는 추가 질문들을 예상해서 준비하려 노력했습니다.

 

 면접은 제가 마지막 타임이였는지, 실제 예정된 30분보다 초과하여 진행했습니다. 면접이 끝난 후 긍정적인 결과가 있지 않을까? 라고 생각했었는데 왜냐하면 ‘어떤 문제에 대해 면접관이 생각하시던 부분을 전부 커버하고 있었던 부분?’ 이 있어서 저를 충분히 좋게 보시지 않았을까 생각했습니다. 이 부분은 작년 소프트웨어 마에스트로에서 운영하던 서비스에서 불완전했던 부분들을 이번에 많이 보완해왔어서 면접에서 받은 질문에 상대적으로 답변이 수월했던 부분이 있었습니다. 이렇게 만족스러운 답변도 있었지만 Spring 개발을 하면서 너무 당연하게 쓰고 있던 기능이라 이걸 사용할 때의 장단점이 뭐가 있을지 생각해보지 못 했던 부분을 대답하지 못해 혹시 떨어질 수도 있다는 생각에 걱정도 많았습니다. 이후 합격한 동기들과 이야기해보니깐 면접관별로 스타일이 천차만별이었던 거 것 같은데 다른 분들은 인성 질문만 받았다는 분들도 많았습니다.

 

 제가 우아한 테크캠프 면접을 보면서 느낀 중요하다고 생각되는 것들에 대한 결론은 단순 기능을 구현하는 것이 아니라, '실제 서비스를 진행할 때 얼마나 예외없이 일관적으로 서비스를 제공하기 위해 고민해본 경험이 있는지’가 핵심이라고 생각합니다.


2주차 후기

우아한 테크캠프는 미션을 내주고, 방법을 스스로 찾아가며 공부하는 과정으로 진행됐습니다.

 

 낯선 환경에 적응하기만 하더라도 바쁜 시기였지만, 2주라는 시간동안 주변 교육생들과 의견을 공유해가며 정답을 찾아가는 과정이 정말 재미있었고, 의미있던 경험이였습니다. 

1주차 - OOP, TDD로 개발하는 보드 게임

 주변 친구들이 우아한 테크코스 프리코스에 참여하며 클래스별 책임에 대해 고민하고, 더 나은 테스트를 작성하기 위해 고민하던 모습을 보고 흥미를 갖게 되어 언젠가 꼭 한 번 해보고 싶다는 생각을 가지고 있었습니다. 마침 이번 우아한 테크 캠프 1주차에는 위와 유사한 과정인 OOP, TDD 미션을 진행하게 되어 너무 행복하게 지냈습니다.

 

 1주차 미션은 특정 보드 게임을 직접 자바로 구현했습니다. 게임을 구현하기 위한 요구사항이 주어지고, 단계별로 주어지는 개발 요구사항이 계속 바뀌는 특징이 있어, TDD를 통해 계속해서 바뀌는 요구사항에도 안정성을 가질 수 있던 것이 이번 미션의 가장 큰 수확이였습니다. 또, 어떤 클래스가 어떤 책임을 가져야 변화에도 강한 코드가 될 지 고민해보고, 어떤 구조가 테스트하기 수월한지 주변 교육생들과 고민해볼 수 있어 많은 것을 배웠습니다.

 

 미션 중간중간에는 주변 교육생들과 함께 직접 구현한 내용과 의도에 대해 이야기를 나누면서 코드리뷰를 진행했는데, 본인들이 의도한 설계의 설명을 듣고, 다양한 코드를 이해하면서 새로운 시각을 배워가는 등 가치있는 시간을 보냈습니다. 하지만 제가 작성한 코드 설계에 대해 더욱 깊은 피드백을 받아보고 싶었지만 우아한테크코스 처럼 전문 리뷰어에게 전체적인 설계에 대해 깊이있는 피드백을 받아보지 못 했던 것은 다소 아쉽게 느껴졌습니다.

 

 그래서 느낀 우아한테크캠프의 의도는 우아한테크코스와 같이 객체지향을 통해 클린 코드를 작성하는 것을 배우기보다 기초를 닦아가는 것으로 생각하고 있습니다. 작년 과정은 우아한 테크코스와 유사한 부분들이 있었지만, 올해 교육 과정이 크게 바뀐 것을 보면 '백엔드 개발자로서 필요한 게 코드 퀄리티도 중요하겠지만 기반기술의 기초적인 이해도가 훨씬 더 중요해서 그런게 아닐까?' 라는 생각이 들었습니다.

 

2주차 - 바닐라 자바로 직접 구현하는 WAS

 저는 Spring을 공부한지 약 2년 정도 되었습니다. 학교 전공 공부에만 집중하다 우연히 백엔드 개발에 늦게 관심을 갖게 된 케이스이다 보니 평소 프로젝트를 진행함현서도 기초가 탄탄하지 못 하다는 생각을 스스로 많이 했었습니다. 작년에 참여했던 ‘소프트웨어 마에스트로’에서도 서비스를 만드는 것만해도 벅찬데다가, 스프링을 찍어 먹어본지 6개월도 안 됐을 무렵이라 웹 개발에 대해 시야가 지금보다도 더 좁았던 때라 기술적으로 성숙도를 높이지는 못하여 아쉬움이 많이 남았습니다.

 

 Spring으로 백엔드 개발할 때는 소켓에 대한 이해 없이 단순히 Controller의 메서드가 어떻게 실행되는지만 이해하려 노력했었습니다. 그러다보니 네트워크 CS 공부와 Spring 개발이 사실은 많은 연관이 되어있지만 평행선을 걸어가는 듯한 느낌을 느꼈습니다. 반드시 네트워크 CS내용을 Spring이 이용하여 구현돼있지만 이 깊은 연관을 글로만 공부하다 보니 표면적인 이해에 그쳤던 기억이 있습니다. 하지만 이런 부분을 직접 바닐라 자바로 직접 WAS를 구현하는 미션을 진행하며 이런 아쉬움을 조금 달랠 수 있었습니다.

 

 프레임워크를 전부 구현하기에는 어려움이 있고, 아직은 단순한 응답만 반환하는 2주차가 겨우 끝난 상황이지만, 충분히 많은 것을 얻어갔다고 생각하고 있습니다.

소감

일단 무엇보다도 학교에 있을 때는 알고리즘 2~3문제씩 풀고 프로젝트 잠깐 하고, CS 스터디 잠깐 하면서 살아가고 있었는데, 생활 패턴이 많이 바뀐 것 같습니다.

 

무엇보다도 운동을 하기 위해서라도 아침에 더 일찍 일어나는 습관을 가지게 되었는데, 매일 오전 8시에 아침 운동도 병행하면서 더 열심히 살게 된 것 같습니다.

 

 또 생각나는건, 다른 분들은 9시까지 남아서 공부하다가 퇴근하는 걸 보고 작년의 저였다면 그 모습을 보고 마음 졸이면서 걱정하곤 했었을 거라는 생각이 드는데, 이제는 주변이 어떻게 하는 지에 휘둘리지 않고 자신의 페이스를 지키면서 나아가는 것이 맞다고 확신을 가질 수 있게 되었습니다. 마라톤을 해본 적은 없지만, 스스로의 페이스를 조절하면서 급해지지 않고 꾸준하게 달리는게 성공의 지름길이 아닐까 라는 생각과 함꼐 하루하루를 살아가고 있습니다.

 

 직접 밝힐 수는 없지만 멋있는 경험을 많이 하고 오신 분들도 많았고, 이런 교육생들과 함께 토론하면서 내 의견을 말하고, 설득하고 공부할 수 있다는 것이 너무 재밌었습니다. 또한 교육생들과 대화를 해보면 지식의 깊이가 정말 깊다는 걸 알 수 있었는데, 최근 시작했던 CS 스터디에서 제가 공부하려고 했던 이상적인 방향을 그대로 실천하고 있는 분들을 만나뵐 수 있었습니다. 그 분들과 대화하면서 자극을 느끼고, 제가 부족한 부분은 주변의 잘하는 분들을 보며 배워간다면 충분히 만족하는 결과를 얻을 수 있을 것 같다는 확신을 가졌습니다. 

 

 남은 8주 동안 페이스 지키면서 잘 마무리해서 좋은 결과 얻도록 노력하겠습니다.