블로그 이사🏡 했습니다. 👉🏻 둘러보기
본문 바로가기
  • What Get's You Here, Won't Get You There
Life/Postmortem

소프트웨어 마에스트로 13기 선발 전형 회고

by OMIN_ 2022. 4. 13.

1월부터 약 3개월에 걸친 2022년 소프트웨어 마에스트로 13기 선발 전형이 종료됐다. 비록 최종 결과는 불합격이지만, 3개월 동안 몰입해서 준비했고, 이 과정을 통해 배운 점, 느낀 점을 돌아보며 성장의 기회로 삶고 싶어 회고글을 작성하게 됐다. 

 

 

이 글에서는 크게

  • 소프트웨어 마에스트로 소개와 지원 동기
  • 코딩테스트 및 면접 준비 과정
  • 배운 점, 느낀 점
  • 앞으로의 계획

에 대해 다룬다.

 

소프트웨어 마에스트로 소개와 지원 동기

소프트웨어 마에스트로는 한국정보산업연합회가 주관하는 SW 인재 육성 정부지원 사업(대외활동)이다.

1, 2차 코딩테스트와 심층 면접을 통해 13기 기준 250명 내외의 SW 인재를 선발하고, 이들이 3명씩 팀을 이뤄 소프트웨어 개발 프로젝트를 진행할 수 있도록 장학금, IT기기, 사무공간, 학습 지원금, 창업 지원금 등을 지원한다.

 

코딩테스트를 본다는 점과 3명이 팀을 이뤄 소프트웨어 개발 프로젝트를 진행한다는 점에서 알 수 있듯이 기본적인 프로그래밍 역량이 있고, 이를 기반으로 창업 프로젝트를 수행할 수 있는 지원자를 선발하며, 쉽게 요약하면 

너는 소프트웨어 개발, 창업만 생각해. 나머지는 우리가 지원해줄게.

이다.

 

아래는 공식 홈페이지에서 스크랩한 전체 과정 소개다.

출처: 소프트웨어 마에스트로 공식 홈페이지

그렇다면 필자가 SW마에스트로에 지원한 이유는 무엇일까?

 

필자는 인생을 바꾸려면 스스로의 의지와 행동도 중요하지만, 변화하고 성장할 수밖에 없는 환경을 만드는 것이 가장 효과적이라고 생각한다. 여태까지 삶에 변화를 주고 싶을 때마다 이러한 방식으로 이전과 다른 삶을 만들기 위해 노력해왔다.

 

창업을 꿈꾸고 있는 나에게

  • 적극적으로 창업에 도전할 수 있는 금전적, 환경적 지원
  • 함께 실질적인 결과물을 만들어 낼 수 있는 동료 연수생
  • 글로벌(실리콘밸리) SW 역량교육

등을 제공하는 SW마에스트로는 개발자로서, 창업가로서 크게 성장할 수 있는 환경이었기에, 이러한 환경에 나를 노출시키고자 SW마에스트로에 지원했다.

 

코딩테스트 및 면접 준비 과정

1월부터 방학 내내, 그리고 최종 결과가 나온 4월까지 3개월 간 SW마에스트로 13기 선발 전형을 준비했다.

 

SW마에스트로 13기 선발 전형은

서류전형 -> 1차 코딩테스트 -> 2차 코딩테스트 -> 심층 면접

순으로 진행됐다.

 

올해는 약 2,000명이 지원했고, 심층면접에 약 500명이 참여했으니 1차, 2차, 심층 면접에서의 경쟁률은 2:1 정도였다.

 

비전공자에 개발 경험이 거의 없는 내가 이러한 경쟁을 뚫고 SW마에스트로에 합격하기 위해 무엇을 준비해야 할까? 나를 어떻게 어필해야 그들이 뽑지 않고는 못 베기는 지원자임을 어필할 수 있을까? 많은 시간 고민했다. 자소서를 쓰는 와중에도, 면접을 위한 포트폴리오를 만드는 와중에도 계속해서 고민했다. 

 

3개월이라는 길다면 길고 짧다면 짧은 준비 기간 동안 수많은 컴퓨터 관련 학과 전공생들과 '프로그래밍 실력 및 경험'만으로 경쟁하는 것은 불리한 싸움이라 판단했고, 나만의 차별점으로 '두 번의 창업 경험에서 배운 점과 그 과정에서 갖게 된 스킬 셋'을 자소서와 포트폴리오에 녹여냈다. 공식 설명회와 선배 연수생 블로그 후기 등에서 "창업에 관심이 많고, 기본적인 프로그래밍 역량이 있다면 합격이 가능하다"는 내용을 접했기에, 이와 같은 전략을 적극 추진하기로 했다.

 

따라서 선발 전형 동안 내가 전달하고자 한 메시지는 다음과 같다.

 

1. 창업에 진심이고, 창업 경험이 있다.

2. 필요에 따라 무엇이든 빠르게 배울 수 있다.

 

실제로 나는 창업을 꿈꾸고 있고, 그 과정에서 필요하다면 디자인, 마케팅 고객 인터뷰 등 무엇이든 빠르게 배워왔기에, 이를 자소서에 최대한 녹여냈다.

 

하지만 코딩테스트를 통해 기본적으로 프로그래밍을 할 수 있는 지원자를 우선 걸러낸다는 점에서, "창업에 관심이 있다"를 내세우는 것 만으로는 부족했다. 애초에 코딩테스트에 합격하지 않으면 자소서를 읽어보지 않을 것이고, 당연히 심층 면접의 기회도 얻지 못하기 때문에 서류 전형 접수와 동시에 코딩테스트를 열심히 준비했다.

 

SW마에스트로 코딩테스트에서는 알고리즘, SQL, WEB 3종류의 문제가 출제된다. 1차와 2차에서 문제 비율이 다른데,

 

1차

알고리즘 6, WEB 1, SQL 1

총 8문제

 

2차 

알고리즘 3, WEB 1, SQL 1

총 5문제가 출제됐다.

 

코딩테스트는 1차와 2차 모두 소마 출신 기업인 디지털 교육 플랫폼 elice에서 온라인으로 진행됐다. 알고리즘 문제의 시간제한은 100초였고, 메모리 제한도 넉넉해서 어떻게든 풀어내기만 하면 됐지만, 주의할 점은 코딩테스트 도중 구글링, IDE 자동 완성 기능 등을 활용하지 못하기 때문에 코딩테스트에서 사용할 언어의 문법과 함수를 완전히 숙지해야 한다는 점이다. 전자기기(아이패드 등) 또한 일절 사용금지이지만, 종이와 펜을 활용한 손코딩은 가능하다.

 

1차 코딩테스트

1차 코딩테스트를 준비하기 위해,

알고리즘은 백준에서 매일 5문제 푸는 것을 목표로 하며 준비했다.

사전 지식이 없어 한 문제를 푸는 데 예상한 것보다 많은 시간이 걸렸고, 하루 5문제 목표에는 도달하지 못했지만 두 달 간 106개라는 적지 않은 수의 문제를 풀었다. 주로 푼 문제 유형은 그리디, BFS/DFS, DP였다.

 

SQL은 프로그래머스 SQL 고득점 kit를 두 번 풀어봤고,

 

알고리즘, SQL에 집중하기 위해 WEB 문제에는 시간을 투자하지 않았다. 만약 알고리즘과 SQL을 충분히 풀고 시간이 남으면 이전에 공부했던 WEB 지식으로 풀자고 생각했지만, 평소에 알고리즘 한 문제를 푸는데 30분 정도가 걸렸기에 선택과 집중이 필요했다.

 

 

 

solved.ac 기준 골드 5를 기록하고, 실버 1 수준의 문제는 30분 이내에 풀 수 있었기 때문에 알고리즘에서 2~3문제는 풀 것이라는 자신감을 갖고 시험에 임했다.

 

1차 코딩테스트에서는 알고리즘 6문제 중 문자열 Slicing하는 완전 탐색 문제를 완벽히 풀었고, 순열/조합 문제에서는 유형은 알지만 풀이가 떠오르지 않아 한 시간 정도 손코딩을 하며 붙잡고 있다가 시험이 종료됐다. 그리고 다른 문제들은 어떤 유형인지조차 감을 잡지 못했다. 후에 코딩테스트 후기를 살펴보니, 나머지 문제는 수학(암호 복호화), 이진 탐색, DFS, 자료구조 구현 등이라고 한다. 

 

SQL은 JOIN과 BETWEEN을 활용하는 문제였고, 무리 없이 풀어냈다.

 

WEB은 css를 활용해 HTML element의 배경색을 바꾸는 문제가 출제됐다.

 

1차 코딩테스트에서 아쉬웠던 점은 WEB 문제가 기초적인 수준으로 출제되어서, WEB을 한 번이라도 복습하고 시험에 들어갔으면 충분히 풀어낼 수 있었을 거라는 점이다. 그랬다면 마지막 조합 문제에서 막혔을 때  빠르게 WEB 문제를 풀었을 것 같다. 하지만 이 또한 내가 선택한 전략이고, 알고리즘과 SQL에서도 공부한 범위 내에서는 완벽히 풀었기에, 아쉬움이 남지만 일단 결과를 기다려보자고 생각했다. 

 

1차 코딩테스트 결과는 합격이었다! 풀었던 알고리즘과 SQL이 모두 맞은 것 같다. 이전 기수 코딩테스트부터 SQL과 WEB 문제의 점수 비중이 크다는 것은 들었지만, 떨어질 것 같았는데 다시 기회를 받으니 너무 기뻤다.

 

2차 코딩테스트

1차 코딩테스트 합격 이후 2차 코딩테스트에서는 전략을 조금 수정했다.

전체적인 테스트 난이도가 올라갈 것인데, 1차 코딩테스트에서의 알고리즘 난이도를 보니 현재 필자가 보유한 알고리즘 문제 풀이 역량을 올리는 것보다 SQL과 WEB 문제 풀이 역량을 올려 확실하게 풀어내는 것이 한정된 학습 시간을 활용해 합격 확률을 높일 수 있는 방법이라 생각했다. 따라서 알고리즘 공부에는 추가로 시간을 투입하지 않았고, 1차 때까지 공부해온 지식을 바탕으로 1차에서 WEB 문제를 대하는 스탠스를 취했다. SQL과 WEB을 먼저 풀고, 그 뒤에 알고리즘을 시도하기로 한 것이다. 

 

2차 코딩테스트 SQL과 WEB 준비 과정은 다음과 같다.

SQL은 HackerRank의 SQL 문제들을 풀었고, 난이도는 Intermediate까지 풀었다. 이는 서브 쿼리, 다중 JOIN 정도에 해당하는 난이도다.

 

WEB은 Udemy에서 web developer bootcamp를 수강했다. 풀스택 웹 개발을 경험해볼 수 있는 강의이며, JS의 AJAX 수준까지 강의를 듣고, 실습을 하며 2차 코딩테스트를 준비했다.

 

위와 같이 준비한 뒤 2차 코딩테스트에 임했고, 예상대로 코딩테스트 난이도는 많이 높아졌다.

 

알고리즘 문제 유형은 다른 분의 코딩테스트 후기를 참고하자. 

 

SQL은 DATEDIFF 함수를 알아야 풀 수 있는 문제였고, DATEDIFF(), 서브 쿼리 JOIN, GROUP BY를 활용해 풀었고, 필자의 기준에서는 난이도가 높았다. SQL 공부에 많은 노력을 기울였기에, SQL만은 잡는다는 생각으로 꼼꼼하게 여러 조건을 바꿔보고 직접 계산도 해보며 정답이 맞는지 수차례 검증했다. 

 

WEB은 JS를 활용해 테이블을 갱신, 정렬하는 문제였다.

두 가지 요구사항이 있었는데,

마침 코딩테스트 전 날 object의 특정 value를 다루는 방법을 공부했기에 테이블을 갱신하는 부분은 무리 없이 구현했지만,

object정렬은 완전히 처음 접해봐서 제대로 구현하지 못했다.

코딩 테스트 끝난 뒤 복기를 해보니, 이는 JS sort() 함수의 [compare function]을 활용하면 해결할 수 있는 문제였다.

 

이렇게 SQL 한 문제를 정확히 풀어내고 WEB을 절반까지 풀었기에 합격할 거라는 자신은 없었지만, 1차 때도 그랬듯이 혹시 모르는 마음에 한 번 기다려보기로 했다.

정말 감사하게도 2차 또한 합격했다. SQL에서 DATEDIFF 함수를 사용해서 풀어낸 것이 큰 역할을 한 것 같다. WEB에서 부분 점수가 있었다면 이 또한 보탬이 됐을 수 있다.

 

심층 면접

심층면접에서는 이전 기수와 다르게 포트폴리오 3분 발표가 추가됐다. 발표에 자신 있는 필자는 오히려 좋다는 생각으로 포트폴리오를 준비했다.

포트폴리오에서는 이번 전형에서 전달하고자 한 메시지인

1. 창업에 진심이고, 창업 경험이 있다.

2. 필요에 따라 무엇이든 빠르게 배울 수 있다.

를 일관성 있게 전달하고자 노력했다.

 

주로 창업 혹은 리더십 경험과 관련된 내용으로 구성했고, 내가 얼마나 창업에 관심이 있는지, 이러한 관심을 기반으로 실제 어떤 행동들을 해왔는지, 그리고 그 과정에서 무엇을 배웠는지 기술했다.

 

최소 30번 이상 발표를 연습했고, 대망의 심층면접 날이 됐다.

면접은 5:5로 진행됐고, 먼저 지원자 5명의 포트폴리오 발표를 모두 끝낸 뒤 면접관의 질문이 이어졌으며, 필자가 복기한 질문 리스트는 다음과 같다. (들여 쓰기는 꼬리 질문)

공통질문

  • 본인이 가장 자신 있는 IT 기술과 수준, 이를 기반으로 한 협업 경험
  • 5년 내에 가장 유망할 기술과, 이를 소마에서 어떤 아이디어에 적용할지
    • 블록체인의 탈중앙화, 중앙화 개념
    • 블록체인 특성 세 가지
  • (개발 역량이 없는 지원자 대상) 현재 개발 역량이 없는데, 짧은 소마 기간 동안 이를 어떻게 극복할지
  • 마지막으로 하고 싶은 말

개인 질문

  • 소마에서 얻고자 하는 것
    • 수익을 내고 싶다면 아이디어는 있는지
  • 마케팅해봤다고 했는데, 분석도 해보았는지 (ARPU 등) 
  • 2차 코딩테스트에서 알고리즘 문제를 아예 안 풀었던데, 아예 프로그래밍을 할 수 없는 건지? 소마는 프로그래밍을 할 수 있는 사람을 뽑는 과정인데 알고 지원한 건지
  • 마케팅을 하다가 직접 개발을 하고 싶다는 생각을 하게 됐다고 했는데, 좀 더 구체적으로 설명해줄 수 있는지
  • UI/UX 디자인할 때 중요하게 고려한 5가지 속성
  • 웹 접근성이라는 개념을 아는지

다른 지원자 질문

  • 이전에 진행한 사업은 왜 폐업했는지
  • 왜 포트폴리오를 제출하지 않았는지
  • 왜 다른 사람이랑 협업하지 않고 혼자 프로젝트를 진행했는지
  • 포트폴리오 기반 기술적 질문들 (CI/CD, 데이터베이스 등)
  • 다른 프레임워크는 안 써봤는지
  • 만약 내 기술 스택과 다른 스택을 사용하는 팀원과는 어떻게 할 것인지
  • 이 아이템을 해보겠다고 자소서를 작성했는데, 잠재 고객은 얼마나 될 것 같은지, 조사는 해봤는지
    • 수익은 어떻게 발생시킬 것인지

면접에서는 공통질문과 개인 질문을 받았고, 개인 질문은 주로 포트폴리오와 자소서, 그리고 본인이 면접에서 자신 있다고 답한 IT 기술에 대한 질문으로 구성됐다. 물론 지원할 때도 인지하고 있었지만, 곧바로 프로젝트에 투입될 수 있는 수준의 SW역량을 갖고 있는지, 이를 기반으로 협업한 경험이 있는지를 중요하게 본다는 사실이 확실히 드러났다.

 

면접에서는 아래 두 가지가 차별점이 될 수 있다.

  1. 개발 프로젝트 경험과 이 과정에서 사용한 기술 숙지
  2. 강점이 될 수 있는 IT 기술을 기반으로 한 협업 경험

 

개인적으로 아쉬웠던 점은 2차 코딩테스트에서 알고리즘 문제를 아예 풀지 않았지만 프로그래밍은 가능하다는 것을 포트폴리오에서 입증하지 못한 것이다. 백준 프로필이나, 그동안 진행했던 개발 프로젝트가 기록된 깃헙 프로필을 불완전한 수준이라도 올려서 프로그래밍에 관심이 많다는 점을 보여줘야 했다. 일관성 있는 메시지를 전달하는 데에는 성공했다고 생각하지만, 그 메시지가 그들이 원하는 메시지는 아니었다. 면접관의 시선에는 '프로그래밍은 모르지만 창업에 관심이 있는 지원자'로 보였을 것이 너무 아쉬웠다.

최종 결과는 불합격이다..!

 

배운 점, 느낀 점

최종 불합격 결과를 받고 우울한 감정이 들었지만, 아직 소프트웨어 개발 역량과 경험이 많이 부족하다는 점을 객관적으로 돌아볼 수 있었다. 그리고 내가 사회에 기여할 수 있는 IT역량이 무엇일까에 대해서도 고민하게 됐다. 창업을 하든 취업을 하든 개인 프로젝트를 하든 핵심이 되는 역량이 있다면 문제를 해결하는 도구를 손에 쥐는 것인데, 나는 어떤 도구를 손에 쥘까 고민하게 됐다.

 

코딩테스트를 준비하며 파이썬과 조금은 친해졌다. 마침 학교에서 인공지능 강의를 듣고 있는데, 파이썬 코드 구현에 큰 어려움이 없어 뿌듯했다. JS의 AJAX를 경험했고, API를 통해 받아온 JSON 데이터를 활용하는 법을 알게 되었다. 이제 첫 발을 디딘 것이겠지만, 웹 페이지 소비자의 시각이 아닌 생산자의 시각으로 전환하는 계기가 된 것 같다. 다중 JOIN, 서브 쿼리 수준의 SQL도 익힐 수 있었다. 

 

결과적으로, 준비가 부족한 상태임에도 소프트웨어 마에스트로에 도전한 것은 너무나도 잘한 결정이었다. 이번 전형에서는 심층면접까지 가보았고, 이를 바탕으로 내년 소프트웨어 마에스트로 선발 과정을 좀 더 나은 방향으로 준비할 수 있을 것 같다. 물론 소프트웨어 마에스트로만을 위한 준비는 하지 않을 것이다. 더 중요한 것은 내가 개발자이자 창업가로서 그리고 한 사람으로서 어떤 길을 가고 싶은지 지속적으로 탐구하고, 이를 위한 역량과 경험을 갖추기 위해 노력하는 것이다.

 

앞으로의 계획

앞으로는, 소프트웨어 마에스트로 과정을 통해 알게 된 부족한 부분인 알고리즘 및 문제 해결 역량을 보완할 것이다. 코딩테스트를 준비하는 동안 적지 않은 시간을 알고리즘 공부에 투입했지만, 1, 2차 코딩테스트에서 만족스러운 결과를 얻지 못했다. 특히 면접에서 받은 질문 "프로그래밍을 아예 못하는 거 아닌가?"는 적지 않은 충격이었다. 하지만 결과적으로 아직 부족하다는 뜻이기에 알고리즘 문제 해결 역량을 기르는 데 시간을 투자할 것이다. 이번에 하는 알고리즘 공부는 좀 더 체계적으로 하고자 컴공선배 알고리즘 캠프에 등록했고, 4월부터 2달 간 몰입해서 학습할 예정이다. 

 

다음으로는, 코딩테스트를 준비하며 흥미가 생긴 웹 개발 공부를 더 하려고 한다. 내가 만든 결과물이 직접 화면에 나타나는 게 재밌어서 프론트엔드 개발에 집중해볼까 생각했지만, 백엔드 개발을 조금이라도 경험해보고 판단하려 한다. Udemy 같은 교육 플랫폼에 좋은 강의가 많다. 강의를 들은 뒤, 프로젝트를 하거나 해커톤에 참여할 계획이다.

 

마지막으로는 블록체인과 스마트 컨트랙트 개발을 배워보고 싶다. 인재와 자본이 집중되고 있는 WEB3 생태계에 호기심이 생겼고, 이 생태계에 소비자보다는 생산자로서 참여해보고 싶다는 생각이 들었다. 이를 위해 블록체인 학회에 가입해 활동하고 있고, 학회원들과 WEB3 소프트웨어 개발 프로젝트를 할 예정이다.

 

3개월 동안 몰입한 과정이 끝났다는 게 후련하면서도 불합격해서 아쉬운 마음이 컸지만,

이 경험이 휘발되지 않도록 빠른 시일 내에 기록하고자 했다. 

 

내년에 다시 한번 도전해 꼭 최종 합격할 것이다. 그리고 실리콘밸리에 가서 글로벌 시장을 경험하고 올 것이다. 

댓글