Post

3개월 간의 취준을 끝내며

3개월간의 취준 끝에 얻은 교훈과 성장. 우테코 이후 면접·이력서·코테 준비를 통해 얻은 경험과 아쉬움을 정리했습니다.

3개월 간의 취준을 끝내며

사실, 그리 길지 않은 취준을 끝냈다. 우테코가 끝나고 본격적으로 취준은 12월 중반 정도부터 시작했으니 3개월 정도 걸리고 취업을 했다.

해당 내용은 취준을 하며 3개월 간 느낀 감정들과 노력한 점, 아쉬운점등을 적기 위한 내용이다.

12월의 감정

슬픔이

우아한테크코스에서 11월 중반에 진행한 리크루팅 데이 가 지나고 나의 취준은 매우 빠르게 흘러갔다. 2주 정도 지나고 KCD,토스 뱅크,우형(우아한 형제들) 에서 서류를 통과했다는 연락이 왔다. KCD 는 대면, 우형과 토스 뱅크는 비대면으로 이루어졌다.

그리고 면접 결과는?

400

500

500

다 떨어졌다. 특히, 3곳을 1주일만에 다 보고 결과가 1주일에 차례대로 왔었다. 이떄, 울면서 후회도 했다.

1
2
왜, 취업이라는 시간이 다가오면서 면접이나 C.S 같은건 공부하지 않고
계속 프로젝트 하거나 개인 공부를 한다고 시간을 낭비해댔을까..

버럭이 & 부럽이

슬픔이라는 감정이 끝나간 후에는 분노가 차올랐다.

면접 및 채용 프로세스는 얘기할 수 없으므로 추상적으로 얘기하며, 회사 하나를 지칭하는게 아닌 전체 경험을 말합니다.

엔티티를 왜 컨트롤러 까지 올려서 filter -> remove 를 하는거지?? JSON 을 직렬화해서 리턴하는 코드를 라이브코딩 하는게 무슨 의미가 있는거지? Redis에서 GC가 있는지 내가 알 게 뭐야. ( 써보지도 않았는데 )

특히, HR 프로세스에 분노를 많이 가졌다.

  • 진정으로, 실력이 있거나 열정적인 사람을 뽑을 수 있는건가?
  • 질문을 모른다고 회사에서 일을 하는데 지장이 있는가?
  • 블로그나 깃허브 같은것들도 다 찾아보고 온다는 후기가 있었는데, 그런게 하나도 없네?

나는 프로젝트 경험이나 경험에서 나온 깊이있는 얘기로 면접에서 드러내고 싶었다. 하지만, 그런 질문들은 받지 못하거나 사실상 5분? 도 채되지 않고 다른 질문들로 넘어갔다.

우테코 크루들이나 주변 사람들에게 한탄을 많이 했다. 그리고, 사람들에게 부러움을 느꼈다.

우테코 특성상 주변에는 토스뱅크나 우형이나 DH(딜리버리 히어로) 에 합격한 사람들이 매우 많았다. 모두가 취업을 한건 아니였지만( 백엔드 80명 중 20명 정도가 거의 바로 취업을 했으니 ), 인스타그램 처럼 잘난 사람들만 보이는걸 어쩌겠는가.

스스로에게도 질문을 많이 던졌던 거 같다. 나는 못난 사람인가? 개발자로서 자질이 아닌가?

1월의 노력한 점

그럼에도, 회사는 들어가야 하지 않겠는가.

그러기 위해서 닥치는 대로 원티드에 신입이 올라오는대로 회사를 넣었다.

500

500

이번 결과는?

한 곳 코딩테스트를 통과한 것 말고는 전부 떨어졌다. ( 그것도 코딩 테스트에서 떨어졌고 ) 솔직히 좀 충격이였다. 그냥 면접 경험을 보기 위해 들어도 보지 못한 곳에 냈는데 그 마저도 다 떨어지다니

스스로도 의식적인 노력과 개선이 필요하다고 생각했다.

메타인지 & 이력서 수정

1월 초중반 즈음 다시한번 나를 돌아보았다. 왜 개발자로 취업을 하고 싶은지, 어떤 회사를 들어가고 싶은지를. 이당시 은행이나 대기업 SI 같은 곳에서도 공채가 열리기 시작했기 때문이다.

SI 에 대한 부정적인 얘기도 많이 들었지만, 자기 기업만의 서비스를 만드는 곳에 들어가고 싶었다. 내가 사용하는 서비스를 만들고, 개선해나가는게 매우 재밌는걸 프로젝트를 하며 느꼈다. 서비스를 성장을 해나갈때 트러블 슈팅이나 고민은 발생하고 개발자도 함께 성장하는 것도

추가로, 겉으로나마 개발자를 위한 문화가 되어있는 곳에 가고 싶었다. ( 코드 리뷰, 사내 스터디, 교육비 지원 등등 ) 이런 이유로 오토에버나 한화 채용같은 대기업 SI나 은행쪽은 내지도 않았다. ( 코테 치는 용이라면 괜찮을지도…? )

서류 합격률이 너무 낮았기에 이력서 역시도 수정을 해야만 했다. 우테코 코치 리사에게 찾아가 이력서의 문제점이 뭔지를 봐달라고 했다. 피드백 받은 부분은 크게 3가지 정도였다.

  • 자기소개에서 나의 강점 및 매력이 안느껴진다.
  • 피그마를 사용했는데 여백이나 줄맞춤이 깨진 부분들이 많다.
  • 단순 수치만 있고, 그에 대한 설명이 없다. ( + 간결하지도 않다. )

이때, 왜 자기의 강점을 못 드러내냐고 겁나 혼났다 🙂

수정하기 전 이력서를 간단하게만 보여주자면

1
2
3
4
5
6
기록과 대화를 통해 성장하는 백엔드 개발자 이영수입니다.

탐구한 내용을 깃허브와 블로그에 정리하며 지식을 체계화하고 발전시켜 나가고 있습니다.
’우아한테크코스’에서 현업자와 841개의 대화를 통해 클린 코드와, 문제를 해결하는 관점을 얻기 위해 노력했습니다.
자동화 도구를 활용해 팀원의 시간을 절약하고, 프로젝트 효율을 높이는걸 좋아합니다.
다양한 선택지와 트레이드오프를 분석하며 최적의 해결책을 찾아가는 것이 좋은 개발자의 핵심이라 믿습니다.

와 같은 식으로 자기소개와

1
2
3
4
5
리뷰 완료 로직 내 깃허브 API 비동기 병렬 구현 - 블로그 정리글

문제 : 두 개의 요청이 동기로 작동해 응답 시간이 평균 0.6~0.8초, 최대 2~3초 범위내 측정
해결 : 측정 결과 가장 효율적인 두 요청 비동기 수행 + 페이지네이션 API 동기 방식으로 선택
결과 : 도입 후 매트릭 측정 결과 API 평균 시간이 0.4~0.5초 측정 및 33% 감소

수치적인 내용은 있지만, 왜에 대한 내용이 없는 프로젝트 내용이로 구성되어 있었다.

피드백을 기반으로

  1. 랠릿으로 이력서 전환 - 기본 탬플릿들이 제공되므로, 내용에만 집중하면 된다. ( 개발자는 피그마 쓰는게 아닌거 같다. 🥲 )
  2. 자기소개에서 나라는 사람에 흥미를 가지게
  3. 프로젝트 내용은 간결하지만, 이유 및 행위가 담기게

이력서를 아래와 같이 수정했다.

500

자기소개에는 구체적인 경험과 함께 궁금하다면 직접 볼 수 있는 내용들을

500

프로젝트 내용은 수치,이유,행위 를 포함시켜 작성했다.

C.S & 코딩테스트

나는 사실, 여전히도 C.S코딩 테스트가 왜 개발자를 뽑는 기준인지 모르겠다. ( 들어가서 근무를 하다보면, 생각이 바뀔지도…? )

나만의 근거로는

C.S는 사실상 7~8개의 과목으로 이루어지는데 ( 운영체제, 데이터베이스, 네트워크, 알고리즘, 자료구조, 프로그래밍, 자바, 스프링 ) 이를 툭 질문 받을때 모든걸 완벽하게 대답을 할 수 있는지, 그리고 진정으로 이 모든걸 외우는게 의미가 있는지 모르겠다.

( 자바 ENUM 이 몇바이트인지 아는지? 2의 보수는 무엇인지? )

이에 대해선 나름 깨달은 내용이 있어서 밑에 더 작성한다.

코딩 테스트는 골드 중간정도는 모르겠으나 그 이상에서 그 날의 컨디션이 좋거나, 처음 접근한 방식이 맞는지, 모르면 절대 못푸는 알고리즘이 의미가 있는지 모르겠다.

하지만, 대부분의 회사의 HR이 이를 따르기에 따라야만 한다.

이끌거나, 따르거나, 떠나거나! - 송파구에서 일을 더 잘하는 11가지 방법

C.S 는 우선적으로 BFS 형식으로 최대한 넓게 학습을 하는걸 우선시 했다. 처음 대답을 최대한 완벽하게 하기 위함이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Q : 자바에서 Equals & HashCode 가 뭐하는 건가요?
A : 객체의 동등성을 판단하기 위해 사용하는 것으로 압니다.

Q : 그러면 어디에서 사용 되나요?
A : Hash 요소나 컬렉션에서 식별하기 위해 사용하는 것으로 압니다.

Q : Hash 에 대해서 자세히 설명해주실래요?
A : Hash는 O(1) 이라는 짧은 시간 내 데이터를 가져오기 위해 사용하는 수단으로 학습했습니다.

Q : Java 에서 Hash는 어떻게 쓰나요?
A : System.identityHashCode 라는게 있는걸로 아는데 중복되지 않는 고유값을 주는걸로 기억합니다.

Q : 그러면, 그 IdentityHashCode 는 어떻게 결정이 되나요?
A : 제가 학습한 바로는 가상 메모리의 주소 값을 기반으로, 값이 결정되는걸로 기억이 나는데 혹시 제 설명이 정확할까요?
Q : ...

2번,3번 넘어가는 꼬리 질문은 일정부분 대답을 못해도 어쩔수 없다고 생각을 한다.

이때도 잘 모른다고 대답하는 것보다, 학습한 바로는 ... & 학습한지 오래 되어서 기억은 잘 안나지만, 제가 기억나는 부분까지 말해도 괜찮을까요? 의 맥락이 중요하다고도 생각한다.

600

이런식으로 잘 모르는 요소들을 하나씩 정리해나갔다.

그리고, 우테코가 끝나고 크루들끼리 하는 알고리즘 스터디 알무몰 에 참여했다. 매주 꾸준히 알고리즘 문제를 푸는 스터디로, 문제를 푸는 습관과 꾸준함을 기르고 싶기 때문이였다.

  1. 기본적인 알고리즘에 대해 학습
  2. 코딩테스트 문제 유형 정리 문제 반복해서 풀이 - 코딩 테스트에 필요한 카테고리 별로 문제가 잘 정리되어 있다.
  3. 랜덤 디펜스 풀이 & 아루 센세가 제공해준 문제들 묶어서 풀이

해당 부분에 정답은 없겠지만

  • 감을 잃지 않는 것 : 어떤 문제가 나오든 방향성을 파악하고 접근을 할 수 있게
  • 확실하게 하는 것 : 자신이 풀었던 패턴이나 유형이면 무조건 풀 수 있게 가 정말 중요하다고 생각한다.

2월의 아쉬운 점

이력서를 수정하며 서류 합격률이 꽤나 높아졌었다.

600

감사하게도, 면접이 2주동안 5개가 잡혔다.

비대면도 있었고, 대면도 같이 섞여져 있었다. 1대1, 2대1, 3대1 등 사람들도 다양했다.

면접을 경험하며 스스로에게 아쉬웠던 점에 대해서 작성해보려고 한다.

스타트업의 면접은?

스타트업의 면접은 기술면접이 전부가 아니였다. 당연히, 기술면접이라 적혀있고 기술에 대해 질문하지만 그게 모든게 아니였다.

  • 우리 스타트업에 왜 지원했는지?
  • 우리 제품을 써본적이 있는지?
  • 서비스를 어떻게 개선해나갈 수 있을지?

등 회사와 관련된 질문들도 자주 들어왔다. 그도 그럴것이, 백엔드를 전체 리드하는 백엔드 리더분이나 CTO가 나오기 때문이였다.

원티드에 신입공고가 올라왔으니까 냈는데요..? 는 너무 짜치지 않는가. 기술 면접이든, 컬처 면접이든 회사에 대한 기본적인 정보 및 서비스 분석은 해가는게 좋은거 같다. ( 안 그런 회사도 당연히 있다. )

이를 기반으로 꼬리 질문이나, 키워드가 나올 것들을 미리 준비하는 것도 가능할 것이다.

면접은 차갑습니다.

매우 차갑고, 의미가 없는 식의 면접도 이루어졌다.

1
2
3
4
5
A : 우리는, 3년차급 실력을 가진 개발자를 원했어요. 

B : 😳😳 혹시, 그러면 저를 왜 면접 보려고 하신 걸까요?

A : 우테코생이 잘한다고 해서 한번 면접은 보려고 불렀는데, 경험이 많이 부족한거 같네요.
1
2
3
4
5
6
7
8
9
A : 왜 메모리 DB가 성능이 좋은데 디스크 DB를 사용하나요?

B : 혹시, 메모리 DB를 사용하지 않아서 명확하게 모르겠는데 힌트를 조금 받을 수 있을까요?

A : 저도, 잘 몰라서 궁금해서 물어봅니다. 아는걸 대답해주세요.

B : 디스크 DB 만의 장점이 있을거라 생각합니다. 예를 들어, 보안적인 문제나 휘발성 문제도 있을거 같습니다.

A : 다소 틀린 정보를 가진거 같다. 비용적인 문제가 1순위겠죠. ( 블라블라 )

해당 내용들은 각색한 내용들입니다.

경험을 겪을 때, 매우 당황했었다. 절대 사과를 하지 말라는 조언을 받았기에, 사과는 하지 않았지만 나의 매력을 어필하는 시간이 아닌, 변명을 하는 시간처럼 느껴졌다.

만약, 다시 한번 이런 상황을 겪는다면 들이박을 거 같다.

3년차의 기준은 뭐라고 생각하시나요?, 힌트가 없기에, 제가 생각하기에 해당 부분이 가장 중요하다고 생각합니다.

상대방에게 시비를 걸라는게 아닌, 상대방의 역할과 의도를 어떻게든 파악하라는 것이다.

면접 스터디와 회고

면접을 하며, 가장 크게 후회한 부분이다.

대부분의 면접은 의도한대로 이루어지지 않는다. 상대방은 GPT가 아니다. ( 내가 원하는대로 흘러가는 )

자기를 쿠킹하며, 질문을 유도하는게 사실 면접의 가장 중요한 스킬이라고 생각한다.

자신이 생각하지 못한 질문을 받을때 얼마나 잘 답변할 수 있는지 순발력이 필요하다. 자신의 대답이 타당한지, 상대방이 대답을 기반으로 어떤 질문을 내는지 점검이 필요하다.

1
2
3
4
5
6
7
8
9
10
Q : Spring JDBC를 써봤나요?
A : 아니요. 미션에서도 JDBC를 사용하고 JPA로 전환하는 곳에서만 사용해봤습니다.
Q : 그러면, PreparedStatement 와 Statement 의 차이점이 뭘까요?
A : 어... 제가 둘다 사용을 해본 적이 없습니다. ( 사실, JDBC 미션에서 사용함 ㅋㅋ )
Q : 네. 뭐. 알겠습니다
A : 근데, 제가 키워드를 보고 유추하기에는 PreparedStatement 는 뭔가를 준비하는데 도와줄거 같습니다.
그래서, 값들을 주입하게 해주거나 SQL Injection 을 방지하는 작업등을 해줄거 같습니다.
Statement 는 그런 기능들을 하지 않는 단순 쿼리로서의 작업만 해줄거 같습니다.
혹시, 제 설명과 접근이 맞았을까요...?

실제 내가 답변한 내용이다. 순발력이 중요하고, 완벽한 C.S지식을 원하는게 아닌 추론과 접근과정을 보는거 같다고도 느꼈다. ( 왜 C.S 질문을 원하는지에 대한 성찰 )

이를 위해 가장 중요한 점은 상대방이 면접 스터디의 대상으로 의미가 있어야 한다. 냉정하게 면접을 한번도 보지 않은 취준생 끼리 면접 스터디를 하는게 얼마나 도움이 될지 생각한다.

질문의 깊이나 질문의 범위나 답변에 대한 생각들은 면접을 겪어야만 안다. 우물안 개구리 두명이서 세상에 대해 얘기하면, 정확한 세상을 묘사할 수 있을까?

핵심은, 면접 유무를 말하는게 아닌 상대방과 하는게 서로에게 도움을 줄 수 있는지다. 마땅한 면접 스터디 대상이 없다면 인프런이나 서비스를 찾아서 유료 면접 준비를 경험하는 것도 좋은 방법인 거 같다.

면접이 끝났다면, 질문 정리 및 면접에 대한 셀프 회고는 필수라고 생각한다. 코딩 테스트와 비슷하게 받은 질문에서 한번더 틀린다면 너무 억울히지 않겠는가.

와 같이 질문들에 대한 정보와 답변을 어떻게 할지 학습하고, 면접이 어떤 흐름으로 진행이 되었는지에 대해 정리했다.

3월의 내가 과거의 나에게

운좋게 취뽀를 하며 취준이 끝이났다.

여담으로, 면접이 4시간 동안 3대1 대면으로 진행되었다… 💀

위 면접 일정중 하나의 회사에 들어가게 되었다.

500

매일 불안함을 느끼고, 스트레스를 받았던 나와같은 사람들에게 해줄 수 있는 말이라면? ( 꼰대 모먼트 )

잘 맞는 회사 하나만 걸리면 된다.

회사가 원하는 인재상은 전부 다를것이다. ( 같은 계열사라도, 심지어 같은 팀이라도, 면접 나온 분 및 면접 나온 사람이 맡은 역할에 따라도 ) 모두에게 100% 맞을 필요는 없다.

어떤 회사는

  • 그 사람이 모르는 내용을 받을때 어떻게든 해결해나가려는 모습을
  • 그냥 완벽하게 대답을 하는 모습을
  • 모르는 걸 인정하고 자신의 학습 내용을 얘기하는 모습을

인재상으로 볼 수 있고

어떤 회사는

  • 블로그나 깃허브 크게 상관없이 이력서에서 흥미로운 내용을
  • 회사에서 사용하는 기술 및 도메인에 대한 내용을
  • 블로그나 깃허브 같은 자신의 노력을 남긴 내용을

에 대해서 집중적으로 질문할 수 있다.

면접을 망쳤다 하더라도 스스로에게 너무 자책하지 말자. 자책하면 자존감이 떨어지지 않더라도, 자신감이 떨어질 수도 있다. 코치 제이슨의 말마따나 잊지 마라. 지금 합격한 회사는 떨어져도 되는 회사이다.

의식적인 노력

해당 내용은 이전 글에서도 남겼지만 취준을 하면서 & 끝내며 더욱 느꼈다.

결과가 안 좋을순 있다. 하지만, 그 결과에 사용된 방법(이력서,프로젝트 경험,코테 실력 등등) 이 재사용되어선 안된다. 면접 스터디와 회고부분과도 비슷하지만

항상, 사람들이 자주 말하는 내용이 있다. '열심히'말고 '잘'하자 호불호가 있는 말이지만 나는 무척 동의한다.

요새, 개발자 시장이 매우 차가운데 이중에서도 자기가 원하는 회사를 가기 위해선 잘하기 위한 의식적인 노력 이 필연적이라고 생각한다.

자기가 끝없는 전문적인 학습을 하고 싶은건지, 취업을 하고 싶은건지에 대해 생각을 해보자. -> 대부분은 당연히 후자일 것이다.

그러면, 지금 당장에라도 바로 취준을 해야한다. ( 내일부터도 아닌, 의식한 순간 당장 ) 공부는 끝이 없다. 정말 공부 다하고, 취업을 하려면 절대 취업 못한다.

=> 투 트랙으로 운영해야만 한다.

자신의 지금 노력이 인정받는 노력인지를 끊임없이 검증받고 개선해야 한다.

나도 예전에 딥다이브나 탐구를 정말 좋아했다. 인터페이스의 내부 디버깅을 까며 코드를 전부 확인하거나, 자바에서 Object Layout 이 어떻게 되어있는지 같은 딥다이브나 인수 테스트가 뭔지, 통합 테스트가 뭔지, BDD가 뭔지 같은 키워드에 대한 탐구도 -> 무조건 도움이 되지만, 이게 개발자로 취업에서 1순위인가? 에 대한 의구심은 필요하다.

하지만, 기존 자신이 하던 행위를 완전 멈추진 말자. 투 트랙이다. 개발자가 취업을 위해 개발을 포기하는건 말이 안된다고 생각한다.

코테,CS,이력서 수정,면접 준비를 하면서도 코드 감을 유지하기 위해 리뷰 활동 이나 사이드 프로젝트를 했다. 기본기(코테,CS …)를 위해서 성장을 포기하지 말자.

해낼 수 있을거야

스스로도 건강과 삶을 못 챙겨나가는걸 느꼈다.

  • 새벽 2시에 자서 아침 9시 즈음 일어나는 생활 패턴
  • 매일 책상에 앉아 모니터를 보거나 키보드를 쳐서 손목 터널 증후군 초기 증상
  • 주말에도, 놀러 다니지 못하고 휴식을 위해 카페서 공부하는게 최대 행복

이 시간들이 합격에 도움이 안된건 전혀 아니었다.

하지만, 인간으로서 성장에 도움이 된건 아니라고 생각한다. 취준이 더 길게 되었다면 전혀 지속적이지 않은 삶이기 떄문이다. ( 왜, 코드는 지속 성장 가능하게 만들기 위해 노력하며, 자신은 돌아보지 않는가 )

열심히 살더라도, 자신을 잃지 않으면 좋겠다.

  • 단기 목표를 잡고 그 목표에 대한 보상 정하고 열심히 수행하기
  • 최선을 다하고, 결과가 좋지 않더라도 자책하지 않고 정비후 다시 나아가기

결론

현재는 개인 블로그 이관작업(이영수 개발 블로그로 블로그 옮길 예정) 이나 학습한 내용들 정리 및 여행갈 계획을 짜고 있다. 이제 다시 새로운 시작을 해야하니 잠깐의 휴식을 취하고 다시 나아갸아지.

30개 정도의 서류 지원과 8번의 면접을 봤다. 모두 값진 경험이였고 나를 더 성장하는 개발자로 만들어주었다고 생각한다.

면접을 보며 부족한 부분이나 놓친 부분을 깨닫고 하드 스킬을 학습하거나, 말을 간결하되 의미는 전달하게 하는 소프트 스킬에 중요성을 느꼈으니.

다음에는 신입 주니어 개발자로서의 회고가 될 거 같다. 🙂

긴 글 읽어주셔서 감사합니다~

This post is licensed under CC BY 4.0 by the author.