본문 바로가기
회고/분기 회고

소프트웨어 마에스트로 15기 - 최종 불합격 회고

by NewCodes 2024. 3. 27.

 

 

안녕하세요. NewCodes입니다!

 

 

아쉽게도 소프트웨어 마에스트로 15기에

입과하지 못하게 되었네요 ㅠㅠ

 

 

그래도 제가 부족한 점을 확실히

알 수 있는 기회였습니다.

 

 

또한, 소마를 준비하면서

정말 많이 성장했습니다!

 

 

소마 선발 과정

 

 

 

저는 24년 1월 8일부터 준비했고, 

약 2개월 간의 과정을 회고하고자 합니다.

 

 

이번 소마 15기를 준비하며 저는 얻게 된 게 너무나도 많았고,

이 과정을 회고하며 다음 방향을 잡아보려 합니다.

 

 


1️⃣ 준비

  • 기간: 2024년 1월 8일 ~ 2024년 3월 15일
  • 코딩테스트 언어: Java, MySQL

 


2️⃣ 준비 전의 개발 경험

  • 백엔드 개발자를 희망하지만, 제대로 프로젝트를 해본 적이 없음.
  • html, css, js로 To do list, timer, 계산기 등의 기능을 포함한 간단한 웹 2개 만든 경험이 있음.
  • 우아한테크코스 6기 백엔드 프리코스 4주 간 참여하면서 자바 문법, mvc, 객체지향 등에 대해 학습
  • 그동안 해온 경험 중 대체로 SW와 관련되지 않는 경험이 많았음.

 

소마를 준비하기 전 24년 1월에 이전 기수 자소서를 살펴봤었습니다. 1번 문항에 'SW분야의 전문성을 키우기 위해 한 경험'을 적어야 하는데, 막상 적을 경험이 없었습니다. 또한, 알고리즘 및 자료구조, sql에 대해서도 무지한 상태였습니다. 

 

 


3️⃣ 2개월 동안 새롭게 쌓인 개발 경험

  • 코딩테스트 실력 향상
    • 알고리즘 약 170 문제 해결 (프로그래머스 + 백준)
    • SQL 89 문제 해결 (프로그래머스 + 리트코드)
  • 길찾기 알고리즘 심층 학습
    • 해외 논문과 블로그를 참고하며 CH, CCH 알고리즘 학습
    • 5개의 블로그 포스팅, 3개의 영상 유튜브 업로드
    • 길찾기 서비스 관련하여 간단한 프로젝트 (아직 미완성)
  • 면접 준비하면 쌓인 경험
    • 정말 기초적인 CS 지식
    • 개발자로서의 포트폴리오 작성 경험
    • 소마 15기 면접 스터디 '강소뿌' 스터디장으로서 개발자 한 분을 초청하고 스터디를 이끈 경험
  • 이전에 일 벌려둔 SW과 관련되지 않은 경험 마무리 짓기 (창업과 관련하여 포폴에 넣기 위해)

 

이제는 기본적인 알고리즘 문제를 풀 수 있는 수준이 되었습니다. 소마 코테 1차, 2차는 통과할 수 있는 실력 정도로요! 그리고 코테와 면접을 준비하면서 개발자 채용 프로세스를 간접적으로나마 한 바퀴 돌리면서 여러 경험을 쌓았습니다. 프로젝트도 진행해봤고, 면접을 준비하며 CS지식과 포트폴리오에 대해서 다뤘습니다.

 

 


4️⃣  준비하면서 갖췄던 마음가짐

저는 개인적으로 '태도'를 정말 중요시합니다. 일종의 자기암시이기도 한데요. 저는 매일 아래와 같은 문구를 되새기고 하루를 시작합니다. 그리고 이 문구를 정기적으로 나름 업데이트를 하는데요 ㅎㅎ 아래 문구들은 소마를 준비하면서 정말 힘이 많이 됐던 문구입니다!

 

  • 사소한 것에 행복하자
    • 행복은 becoming이 아니라 being이다.
    • 행복하기 위해 무언가를 하기보다는 무언가를 하면서 행복하고 싶다. 
    • 행복한 사람이 성공할 확률도 높다고 한다. 
    • 일상에서의 맛있는 음식, 친구와의 소소하면서도 즐거운 대화, 공부하면서 얻는 성취감 등에 대해 그 행복을 온전히 느끼고자 노력한다.
    • 앞으로도 이 신념은 변하지 않을 것.
  • 눈앞에 있는 것에 몰입하자
    • 먼 미래를 보면 아직 넘어야 할 산이 많기에 답답하기만 하다. 
    • 결국은 눈 앞에 있는 걸 잘 수행하다 보면 어느새 정상에 이르러 있다. 
    • 다만, 고개를 숙이기 전에 방향을 잘 설정해야 한다. 그리고 중간중간 고개를 들어 잘 가고 있는지 확인해야 한다.
  • 실패해도 성공한다
    • 외적인 결과는 실패일지라도 내적인 성장은 곧 성공이다.
    • 작년 우테코 최종 불합격 이후 생긴 마음가짐.
    • 내가 소마에 과감히 도전할 수 있었던 이유는 불합격해도 잃을 게 없고 오히려 성장하는 싸움이었기 때문이다.

 

 


5️⃣ 2개월 만에 코테에 합격할 수 있었던 이유

제가 2개월 만에 코테에 합격할 수 있었던 요인은 크게 세 가지입니다. 

 

1. 배경

 : 저는 고등학교 시절에 수학을 잘했습니다. 정확히 말하자면 입시 수학 문제 푸는 걸 잘했습니다. 그 덕에 가장 자신 있는 과목이 수학이었고, 졸업하고 나서 수학 과외를 하는 데에도 큰 도움이 되었습니다. 

 

수학 문제 풀 때 쓰이는 사고력이 코딩테스트 문제를 풀 때에도 조금씩 발현되는 게 느껴졌습니다. 그리고 수학 공부하던 것처럼 공부법을 적용하여 코딩 테스트를 공부했었습니다. 

 

입시 수학 문제를 풀며 얻은 공부법, 사고력 등은 분명 코딩테스트를 공부할 때에도 도움이 되었습니다. 역시 무엇을 준비하든 기존에 가지고 있던 배경은 무시할 수 없는 것 같습니다. 

 

2. SQL 문풀

: 이번 소마 코테에서는 2차 SQL 문제가 다소 어렵게 나왔습니다. 소마 준비 톡방에서도 보니 못 푼 사람들이 많이 보였습니다. 하지만 저는 이를 풀어냈습니다. 

 

저는 리트코드를 풀고 피드백했던 부분들이 실제 시험에서 도움이 되었습니다. 프로그래머스 고득점 KIT만을 푸는 것만으로는 풀기 힘든 문제일 수도 있었습니다.

 

프로그래머스에 계속해서 새로운 SQL 문제가 업데이트 되고는 있습니다만, 어려운 SQL 문제를 온전히 커버하기에는 아직 부족한 것 같습니다. 

 

소마를 준비하시는 분이 있다면, 이제는 리트코드까지 푸시는 걸 권장합니다. 리트코드의 문제 퀄리티가 상당히 괜찮습니다. 영어로 되어있긴 하지만, 구글번역기 돌려가면서 하면 풀만해요!

 

 

3. 관리형 독서실

 : 3번째는 가장 핵심이라고 해도 과언이 아닙니다. 저는 무수히 읽은 자기계발서에서 얻은 지식과 실천으로 빠르게 성장하는 방법에 대해 저 스스로 잘 알고 있다고 생각하는 편입니다.

 

빠르게 효과적으로 성장하기 위해서 가장 중요한 것 중의 하나가 '환경 설정'이라고 생각합니다. 

 

저는 소마를 준비하는 기간 동안, 관리형 독서실을 다녔습니다. 제가 다니는 독서실은 입실 시간과 쉬는 시간이 정해져 있고 몇몇 작은 규칙이 있는 독서실입니다. 주로 공무원을 준비하시는 분들이 많았고, 저는 항상 라운지에서 작업했기에 키보드 소음이 문제 되지는 않았습니다.

 

관리형 독서실의 장점은 규칙적인 생활과 더불어 최소 공부 시간이 확보된다는 점입니다! 컨디션이 좋을 때는 누구나 다 잘합니다. 관건은 컨디션이 안 좋을 때 어떻게 대처하는지와 어떤 전략으로 임하는지입니다. 

 

제가 만약 집에서 준비했거나, 이곳저곳 카페를 다니며 공부했다면 지금의 저보다 더 성장하진 못했을 겁니다. 

 

 


6️⃣ 코딩테스트 공부 전략 자체는 실패하다.

코딩테스트를 준비할 수 있는 시간이 제한적이었습니다. 24년 1월 당시 알고리즘 및 자료구조에 대한 지식이 없었습니다. 2개월 남짓 짧은 시간 안에 합격할 실력으로 향상시킨다는 건 현실적으로 어려워 보였습니다. 

 

더군다나 저는 코딩테스트에만 집중할 수 있는 환경이 아니었기에 하루에 투자할 수 있는 시간도 3시간으로 제한적이었습니다. 

 

그래서 제가 세운 전략은 그동안의 소마 빈출 유형(DFS/BFS/백트랙킹/구현)만 집중적으로 공략하는 것이었습니다. 외부적으로 봤을 때 해당 전략은 성공으로 비춰질 수 있습니다. 저는 코딩테스트 1차, 2차 모두 통과했기 때문입니다.

 

하지만, 실전에서는 DFS, BFS, 백트랙킹 단 한 문제도 나오지 않았습니다. 결과적으로 보면 DP를 학습해야 했고, 해당 전략은 엄밀히 실패한 전략입니다. 

 

시험 문제가 어떻게 출제될지는 정말 알 수 없는 것 같습니다. 하지만 '시험'을 대비하기 위해서는 빈출 위주로 공부해야 한다는 생각에는 변함이 없습니다. 

 

그럼에도 해당 전략이 실패한 원인을 생각해 보면 제가 빈출 유형을 너무 좁게 정의한 것 같습니다. DP는 소마가 아니더라도 핵심 알고리즘 중의 하나인데도 말이죠.

 

제가 이번 전략은 무리하게 짠 것 같습니다. 선택과 집중이라는 의미에서는 좋은 전략이었지만, 너무 적은 걸 선택했네요.. 하하.. 

 

혹시나 소마 다음 기수를 준비하시는 분이 계시다면 아래 알고리즘은 기본으로 꼭 숙지하시길 바랍니다! 소마 블로그 포스팅에서 아래 알고리즘들이 소개된 적이 있습니다.

 

배열
문자열
정렬
완전 탐색
재귀
백트랙킹
동적계획법
DFS/BFS
구현
조합

 

위 표에 그리디까지 추가해서 공부하신다면, 웬만하면 소마 코테는 통과하실 겁니다. 

 

 


7️⃣ 잘했던 점

  • 생활 - 쇼츠 줄인 것, 수면 패턴 유지, 관리형 독서실
    • 최대한 자극적인 걸 줄이려 노력함.
    • 오후 10시 30분에 자서 오전 6시 30분에 일어나는 규칙적인 습관 형성함.
    • 저녁에 유튜브 자제하는 습관 굿!
    • 독서실 좋았음. 올해 계속해서 다닐 예정.
  • 전략 - 현직 개발자 분들께 자문을 구한 것
    • 나 혼자서 생각하고 실행하는 게 아니라 현직 개발자 분들께 물어보고 한 점
  • 스터디 - 면접 '강소뿌' 스터디
    • 일반적인 스터디가 아니라, 현직 개발자를 초청하여 모의면접 및 멘토링하는 스터디 기획 및 실행
    • 개발자를 초청하는 게 다소 어려웠지만, 의미 있는 활동이었음. 다음에도 기회 되면 또 하고자 함.
  • 회고 - 꾸준히 회고한 점
    • '실패해도 성공한다' 이 말이 현실이 되려면, '반성'하는 게 중요함. 
    • 잘했다. 앞으로도 꾸준히 회고하자.

 

 

 


8️⃣ 불합격 원인

제가 면접에서 불합격한 원인은 크게 세 가지이며, 첫 번째가 가장 주요한 원인입니다.

 

  1. 백엔드 개발자로서의 기본기 - 제대로 된 백엔드 프로젝트가 없었고, 백엔드 개발 역량을 보여주지 못함.
  2. 내가 속한 분과의 특성 - 기술 질문의 비중이 높았음.
  3. 면접 경험 부족 - 답변할 때 여유가 부족했음.

 

소마는 개발을 배우는 일반적인 부트캠프가 아닙니다. 개발할 줄 아는 사람들이 모여서 비즈니스 모델을 설계하고 개발하는 곳입니다.

 

물론 이를 모르고 준비한 건 아닙니다. 제가 개발할 줄 아는 사람이라는 걸 보여주기 위해 2개월 내에 프로젝트를 하나 하려 했습니다. 포트폴리오에 기재할만한 프로젝트가 없었기 때문입니다.

 

결국엔 프로젝트를 마무리하지 못한 상태에서 면접을 봤습니다. 그 이유는 2개월 내에 저는 다소 많은 일들을 병행했기 때문입니다. 

 

'코딩테스트 준비' + '프로젝트 진행' + '제가 이전에 벌려둔 일 마무리' 이렇게 크게 3가지의 일을 매일 병행했습니다. 

 

이렇게 많은 일을 성공적으로 수행하기 위해서는 각 과업의 방향과 전략을 잘 설정하는 것이 중요했습니다. 그래서 제가 코딩테스트에서 빈출 알고리즘인 백트랙킹/DFS/BFS/구현을 위주로 공부했던 것이었습니다. 

 

 

1. 프로젝트의 방향성에서 문제가 드러나다.

 : 프로젝트 방향을 잘 설정해야 했습니다. 어떤 프로젝트를 어떻게 수행했는지에 따라 제가 면접관들에게 보여줄 수 있는 역량이 달라지기 때문입니다. 저는 포폴에 실을만한 개발 관련 프로젝트가 없기에 특히 이번 프로젝트가 더욱 중요했습니다. 

 

결과적으로 놓고 보면 프로젝트의 방향을 다소 잘못 설정했습니다. 24년 1월 당시의 제 생각은 이러했습니다.

 

코딩테스트를 통과하는 게 우선이니 알고리즘과 관련한 프로젝트를 하면 좋겠다.
알고리즘 실력도 기르고 프로젝트도 할 수 있으니 효율적인 전략이다!

 

 

그래서 생각하다가 하게 된 프로젝트가 '길찾기 프로젝트'입니다. 평소 사용하던 카카오맵에서 경로 추천 방식에 궁금증을 느껴 길찾기 알고리즘을 학습하고 프로젝트를 진행했습니다.

 

- 프로젝트에서 아쉬웠던 부분 정리

  1. CH, CCH 알고리즘 학습 위주의 프로젝트가 되어버림.
  2. DB 연동이 필요한 프로젝트가 아님.
  3. 분야에 대한 흥미를 고려하지 않음.
  4. 참고할 만한 자료가 부족했음.
  5. 결과적으로 알고리즘 실력 향상에 큰 기여를 한지는 잘 모르겠음.
  6. 지금 다시 돌아간다면,
    1. 개발자 분들께 자문을 구하면서 프로젝트 방향 재설정할 것.
    2. 다른 아이디어가 잘 떠오르지 않는다면, CRUD 기능의 게시판을 만들 것.

 

2. 내가 속한 면접 분과의 특성

  • 유독 기술 질문이 많았음. 다른 분과 혹은 이전 기수 후기 보면 그렇지 않은 경우도 있음. 
  • 하지만 이걸 탓할 순 없음. 어쨌든 내 역량이 부족한 부분에서 채점이 된 것이니.

 

3. 면접 경험 부족

  • 여유가 부족해서 그런지, 면접 때 말하고자 하는 것들을 제대로 하지 못함. 
  • 특히, 듣고 생각을 정리한 다음 답변해야 하는데, 듣자마자 바로바로 답변해버림.
  • 그렇게 되니 나를 온전히 보여줄 수 없었고, 단편적인 대답만 하는 경우가 많았음.

 


9️⃣ 향후 방향

  • 공신력 있는 기관의 부트캠프, 인턴을 목표로 백엔드 개발자로서의 기본기 쌓기
    • 하계 인턴
    • 네이버 부스트캠프
    • 혹시 추천하실만한 활동이 있다면 댓글로 추천부탁드려요!
  • CS 스터디 만들기
    • 기본기를 쌓는 것의 일환으로 CS를 꾸준히 공부하고 합니다.
    • 현재 스터디 모집중!
  • 길찾기 프로젝트를 마무리하거나 새로운 프로젝트 하기
    • 길찾기 프로젝트는 매몰비용으로 판단하고 새로운 프로젝트를 하는 게 나을 것으로 판단됨.
    • 이에 대해서는 개발자 분들께 자문을 구하기

 

절실히 깨달은 점

  • 방향, 전략 설계할 때도 멘토링 활용!!
    • 자소서, 면접에 대해서만 멘토링x
    • 중요한 건 무언가를 하기 전에 자문을 구하기!!
  • 평소에 면접을 염두에 두고 학습하기
    • 코딩테스트는 기본을 갖춰가고 있으니 면접 프로세스까지 갈 확률 높아짐.
    • 학습한 개념에 대해 블로그, 유튜브, 노션 등에 정리하고 설명할 수 있는 지식으로 만들기.
    • 면접관의 입장에서 나의 포폴을 봤을 때 의심할 만한 것, 증명해야 하는 역량 등의 리스트 정리하기.

 


 

여기까지 해서 약 2개월 준비 과정에 대한 회고를 마치겠습니다! 이번에 회고하는 데는 꽤 오래 걸렸네요 ㅠㅠ 아무래도 불합격 원인을 분석하고 향후 방향을 설정하는 건 정말 신중해야 한다고 생각했기 때문입니다!

 

그동안 정말 많은 분들에게 도움을 받았는데요. 소마 준비 오픈톡방, 소마 이전 기수의 블로그 후기들, 강소뿌 스터디원, 멘토링과 피드백을 주신 개발자 분들께 정말 감사드립니다. 

 

 

반응형