이번에 우아한 형제들에서 진행하는 우아한테크캠프(우테캠)에 지원했다.
우아한테크캠프와 다르게 교육형 인턴 + 우아한 형제들 채용 기회까지 주어진다고 하여 굉장히 좋은기회라 생각하고 지원하게 됐다.
다만, 아쉽게도 과제테스트에서 탈락하였고, 이에 대해 간단한 후기 남겨보고자 한다.
우아한테크캠프
소개글에도 나와있듯이 여름방학 기간(약 10주) 커리큐럼에 맞춘 프로젝트 기반의 교육형 인턴 과정이다.
특히, 모집 분야가 백엔드이고 자바 베이스로 진행하는 만큼 자바로 따로 백엔드 교육을 직접적으로 받은 적이 없는 나에게 백엔드 역량을 제대로 강화시켜줄 기회라고 생각했다. 서류를 사전 제출하는 것이 아닌, 코딩테스트 및 과제테스트를 모두 통과해야 서류를 내고 면접을 진행할 기회가 주어졌기에 망설임 없이 신청했던거 같다.
🔥 1차 코딩 테스트
전형에 신청하고 나서 급하게 코딩테스트 대비로 알고리즘 문제를 풀어보기 시작했다.
물론 CS 문제도 나오지만, CS는 너무 광범위하기에 아는 지식으로 최대한 풀어보자 생각해서 대략적으로 훑어만 봤다.
특히나, 선택 가능 언어가 자바뿐이라 항상 알고리즘은 파이썬 위주로, 자바로는 가끔 하던 정도여서 자바의 경우 일부 함수나 자료구조에 대해서 익숙치 않아 어려움이 있어서 BFS, DFS, 이분탐색 등 다양하게 구현해보면서 감을 찾고자 했다.
준비하는 과정에서 여러 코딩테스트를 쳐본 느낌으론 백준보단 확실히 프로그래머스를 통해 준비하는게 더 맞다고 느꼈다. 백준은 알고리즘 익히기용 / 프로그래머스는 실전 테스트 준비용 느낌?
짧은 기간 동안 준비하면서 20문제 정도는 풀어본거 같다.
상세한 문제 자체까진 기억나지 않지만 대략적으로 푼 문제의 느낌은 아래와 같다
1. 단순 구현
정말 간단한 구현문제 였던거로 기억한다.
특별한 내용없이 말그대로 읽고 구현하는 느낌이라 그리 오래걸리지 않았다.
난이도는 백준으로 치면 실버5 정도
풀이 시간 5분
2. 백트래킹
내 기준으론 거의 비슷한 문제를 백준에서 풀어본 적이 있어서 빠르게 방법을 찾을 수 있었다.
완전탐색으로 구현하신 분도 있다고 한다. 완전탐색을 어떻게 구현했는진 잘 모르겠지만, 백트래킹이 아무래도 제일 확실한 방법인거 같다.
다만, 나같은 경우 특히나 자바의 형변환에 아직 덜 익숙해서 string <> int 타입 변환 함수가 기억이 안나서 어떡하지하면서 시간을 많이 소비했던거 같다. 잔머리 굴려서 int + ""붙이면 string타입이 된다는걸 찾아내서 겨우 해결했다.
난이도는 백준으로 치면 실버 1 정도
풀이 시간 25분
3. 이분탐색
여기서 가장 애먹었던 기억이 난다.
내 기준으론 100% 완전 탐색 방법이 5분만에 떠오르긴 했으나, 범위에서 무조건 100% 시간초과여서, 최초 기본으로 짜내는 용도로만 사용했다.
그러고나서 이걸 어떻게 풀어야할까? 하고 정말 오래 고민했던거 같다. 그러던 중 이전에 참가했던 코딩테스트에서 비슷한 문제가 나왔던게 기억났고, 알고리즘 초고수분이 이분탐색으로 풀면 된다고 알려주셨던 기억이나, 아! 이분탐색이구나 하고 응용하기 시작했다.
누군 100% 수학으로 풀 수 있었다곤 하는데, 나도 수학으로 접근했을 땐, 무조건 예외 케이스가 발생했어서 공식을 어떻게 짰는지 신기하더라.
결국 이분탐색으로 어찌저찌 풀었지만, 조금 코드를 최적화 할 수 있었던게 끝나고 나서 생각나서 아쉬웠지만, 결국 풀어낸거만으로 만족하기로 하고 제출했다.
난이도는 백준으로 치면 골드 3~4 정도
풀이 시간 1시간 20분
4. CS 문제
CS 지식을 묻는 문제지만 일부 문항이 직접 기술을 써보지 않으면 특징을 알기 어려운 예시도 있었다. 다만, 대체적으로 명확하게 잘못된 부분이 보이는 내용이 많아서 어렵지 않게 골라낸거 같다.
1문제 빼고는 전부 자신있게 정답을 맞춰 냈다.
제출하고 나서 그래도 자바로 모두 풀어냈다는 자신감과 만족감으로 꽤나 기대하면서 결과를 기다렸던거 같다.
🔥 2차 과제 테스트
결론부터 말하면 깔끔하게 탈락!
결과까지는 약 3주라는 시간이 걸렸다. 이미 결과를 예상했기에 기대조차 안하고 기다리지 조차 않았다.
과제테스트를 준비하면서 이보다 더 깔끔하게 탈락할 수 있을까? 싶을정도로 탈락했다. 특히 과제테스트를 실시간으로 하면서 구현한다는게 내 기준으로는 무엇이 나올지 몰라서 더욱 힘들었던거 같다.
과제테스트의 경우 우테캠과 관련된 정보가 거의 없기에 정보를 사실상 얻을 수 없었고, 어떻게 준비해야할까? 라는 생각만 계속 들었다. 누군가의 블로그에는 Spring으로 프로젝트 해본 경험 있으면 무난하게 통과할 난이도라고 했는데, 경험있는 나에겐 일부 사용하지 않은 부분에 의해 깔끔하게 막혀버렸다.
검색이 가능하더라도 체감적으로 준비를 제대로 하고 Spring에 대한 이해를 완전히 하고 있지 않으면 통과하기 어려울 거라고 느꼈다. 특히 테스트 코드를 짜본 경험이 있는게 아니라면 더더욱 그렇게 느낄 수 있을 듯하다.
아무래도 방향성을 잘 모르기에 대략적으로 가져올 수 있는 모든 정보를 모아서 내가 준비한 방법은 다음과 같다.
1. 로그인 과정 구현
Jwt를 활용한 로그인에 대해 다시 찾아보고, 공부하면서 이것저것 테스트해봤다. 로그인 기능이야기가 있기에 테스트해본것도 있었다.
2. JDBC를 통한 CRUD 과정 구현
CRUD 과정을 다시 한 번 구현해봤다. 평소 JPA, Lombok 같은 편의적인 기능을 모두 사용했는데, 이 모든 것을 사용하지 않고 JDBC를 이용해 전부 직접 작성했다. CRUD는 기본적으로 어렵지 않았기에 금방 구현할 수 있었는데, 복잡하게 구현해본게 아니라서 얕게 한 느낌이었다.
이렇게 준비하고 들어갔는데, 들어가서 문제를 보자마자 아.. 이건 망한거같다 라는 생각이 3분만에 들었다.
어떤 문제가 나왔는지는 구체적으로 다룰 수 없지만, 내가 사용해보지 않은 영역에서 문제가 나와버렸다.
그러다보니 어떻게 해야하는지 방향성조차 제대로 잡지 못했고, 인터넷 검색만 주제 초점을 맞춰 미친듯이 들락날락했다. 다만, 그럼에도 도움이 되는 코드를 발견하지 못해서 상당히 애먹었다.
다른거라도 볼려는데 문제에는 주석이 3곳이라 해놓고 2곳만 처리되어있다거나, 코드자체 사이트 IDE에서는 돌릴 수 없다거나 그런 이슈들이 많아서 더더욱 혼란을 가중시켰던 시험이었던게 더 심적으로 난이도를 높힌듯 하다.
대략적으로 크게
1. 내가 사용해보지 않은 영역에 관한 구현 (핵심)
2. CRUD 구현이 주된 목표였다.
다만, 1번을 구현하지 않고 2번을 구현할 경우 컴파일 간 에러가 발생하여 체점이 되지 않을 수 있으니 반드시 1번부터 구현하라 라는 부가 사항이 있었고, 곧 죽어도 1번 구현하겠다고 모든 시간을 다 쏟아 넣었다.
하지만 이쪽 관련해선 다뤄본 적이 없기에 지식 찾는것도 어려웠고, 설상가상으로 관련된 정보는 거의 찾기 어려웠다. 그러다보니 1번을 사실상 구현을 제대로 하지 못했다.
1번을 어떻게 대충 만들어놓고 보니 3시간 40분이란 시간이 흘러있어 남은 20분안에 2번도 완성하기 무리였다. 그냥 남은 시간에 2번이라도 조금 해놓자하고 만들어놨으나, 테스트 케이스 정답 갯수 0개로 깔끔하게 결론나버렸다.
시험보고 나서 결론은 굳이, 안하던 짓 하지말고 심화된 부분을 구현 연습해보는게 낫겠다 싶다.
확실히 심화되는 내용을 요구하니까 다뤄본 적 없으니 어떻게 하면 좋을지 조차 머리 속에 그려지지 않아 난감했다.
다음에 또 지원할 기회가 될지 모르겠지만, 만약 그렇게 된다면 어떤식인지 알게 됐으니 철저하게 준비할 수 있을거 같다.
이상 후기 끝
'기타 활동 > 후기' 카테고리의 다른 글
[네부캠 후기] 네이버 부스트캠프 웹풀스택 9기 챌린지 후기 (0) | 2024.08.13 |
---|---|
[후기] 네이버 부스트 캠프 Web 9기 베이직, 1,2차 테스트 후기 (feat. 챌린지) (0) | 2024.07.11 |
[싸피후기] SSAFY 2학기 수료 및 후기 (0) | 2024.03.13 |
[싸피후기] 싸피(SSAFY) 1학기 수료 후기 (6) | 2023.07.03 |
[후기] 뒤늦게 쓰는 SSAFY 비전공자 9기 합격 후기 (0) | 2023.03.05 |
댓글