본문 바로가기
여담/후기

SW마에스트로 16기 지원후기 (면접불합격)

by oculis 2025. 2. 22.

개발 공부를 하면서 정규 교육과정을 접한 적이 없는데, 처음으로 SW마에스트로 라는 연수 과정에 지원하였습니다. 목적은 모르는 개발법 배우기와 창업 준비였습니다. 후보군으로는 다음의 것들이 있었는데요.
 

  1. 방통대, 태재대 같은 사이버 대학 컴공학사
  2. 정보처리기사 같은 자격증
  3. 42서울 (이제는 42경산) 같은 비학위과정
  4. SSAFY같은 부트캠프 중 학원보다 나은 것들
  5. 학원?

 
1은 최대 4년의 시간이 필요해서, 대학만 도합 10년을 다닐 것 같아 포기, 2번은 자격증과 현업의 차이가 크겠다는 생각에 포기했습니다. 3번은 창업에는 좋겠다는 생각을 했지만, 보상이 있어야 좋은 사람이 몰리는 터라... 설립 초기에 비해 전문성이 낮아졌더라구요. 5번은 취업이 목적이 아니라 당연히 포기. 그래서 4번이 남았는데, 가장 돈도 많이 주고, 중앙기관 사업인 SW마에스트로를 선택하게 되었습니다.


1. 서류

서류는 자기소개 1000자, 학업계획 1000자 정도입니다. 자기소개는 왜 개발자가 되었나? 에 대한 질문이고, 학업계획은 왜 소마에 지원하였나? 에 대한 질문입니다.

1) 왜 개발자가 되었나?

블로그에서 종종 밝힌 생각들을 잘 정리하여 답변하였습니다. 세 가지 키워드인 니즈, 수요, 비용절감을 고려하여 제품을 개발하는 것 이 좋은 개발이라는 생각을 담았습니다.

2) 왜 지원하였나?

소마를 잘 몰라서 (주변에도 없어서) 제가 생각하는 소마의 취지에 대해 설명했습니다. 팀단위 프로젝트 경험을 제공하고 원하는 경우 창업까지 지원하는 프로그램 인 것 같다고 적었습니다. 그래서 1년간 스타트업에서 했던 창업과 투자까지의 경험을 밝히고, 개인사업자로 창업을 해 본 경험에 대해 밝혔습니다.
 
다행히 서류는 합격했습니다.

자소서는 찾아보니 여러 조언들이 있었습니다. 예를 들어 글자 수를 꽉 채워라, 창업 얘기를 꼭 해라... 하는 것들입니다. 하지만 자소서는 소감 대신 간결하고 담백하게 자신의 강점을 말하고, 정리하는 문장 (소감) 을 앞이나 뒤에 적는 것 이 좋은 것 같습니다.


2. 1차코테

코테는 프로그래머스에서 진행되었습니다. 시험 환경은
 

  1. 모니토 라는 어플로 신분증을 촬영해 제출하고,
  2. 시험 주변환경을 360도로 촬영하여 제출해야 합니다.
  3. 휴대폰을 옆에 세워두고 시험 내내 본인을 촬영해야 하며,
  4. 웹캠 및 화면 공유를 동시에 진행해야 합니다.
  5. 당연히 웹 검색, VS code 등은 사용할 수 없습니다. 자리이동 안되고 식음료 섭취도 안됩니다.

 
지원하시는 분들은 꼭 사전 테스트에 접속하시는 것을 추천드립니다. 사전테스트에서 신분증을 제출해두면 본테스트에서 신분증을 또 제출할 필요가 없어서요.

문제풀이 팁

경험상 알고리즘 문제 풀이는 두려움을 앞세우지 않는 것, 시간 복잡도를 잘 계산하는 것이 중요했습니다.
 
1차에는 탐색 (BFS, DFS)등이 안 나와서, 어려운 알고리즘부터 생각하지 말고 천천히 읽어보면 O(N) 수준에 해결되는 문제가 많았습니다. 또한 O(N*(N+M)) 수준에 풀리는 문제가 있었는데 N과 M이 1000, 100 수준이라 충분히 10초안에 해결이 되었습니다. 백준과 코드포스에 익숙한 분들은 시간 줄이기에 익숙해서 완탐을 배제하고 생각하는 경우가 많은데, 1차는 완탐으로도 충분히 해결되는 문제들이니 긴 지문을 잘 읽고, 쉬운 방법을 생각하는 것 이 중요하겠습니다.
 
추가로 문제마다 다른 언어를 사용해도 됩니다. 준비할 때 한 언어만 공부하지 마시고, 아니다 싶으면 파이썬을 쓰면 됩니다.

1) SQL

코테 팁에 SQL이 쉬우니 SQL은 꼭 공부하고 먼저 풀라는 말이 있는데 맞습니다. 다만 저는 prisma ORM을 많이 사용해서 약간 버벅였습니다. left join과 count를 사용해 잘 해결했습니다.

2) 알고리즘 1번 : 구현? (브3-2)

1차 1번은 브3 수준의 문제가 나옵니다. 코포 A번보다 쉬웠던 코딩을 할줄은 아니?의 문제였습니다. n이 10이하라 그냥 풀면 됩니다.

3) 알고리즘 2번 : 문자열 (브1-실5)

string split을 사용하는 문제가 나왔는데 c++에게는 지옥이라 python을 썼습니다. split만 잘 하고, 1번의 루프만 돌면 끝나는 문제입니다.

4) 알고리즘 3번 : 수학 (실1-골4)

생각하기에 따라 어려울 수 있는 문제가 하나 나옵니다. 코포 B번 수준이었습니다. 처음엔 combination을 쓰는 줄 알고 아 슬슬 어려워지는구나 했는데 아니었습니다. 원리를 잘 이해하면 되는데 그 이해를 빠르게 하기가 어려웠습니다.
생각이 어렵다는 점, 하지만 누군가는 빠르게 풀 수 있다는 점, 알고리즘과 무관한 점에서 코포 B번과 매우 유사했습니다.

5) 알고리즘 4번 : 브루트포스, 완전탐색 (골4-골3)

조건과 반례를 잘 생각해야 하는 문제였습니다. 시간 복잡도를 줄이기 위해서는 어떤 변수를 기준으로 루프를 돌 것인가 를 잘 생각해야 하는데, 그게 쉽지 않았다고 생각합니다. 100, 1000, 10^9^의 변수가 있다면 10^9^ 하나보다 100과 1000으로 루프를 돌리는 게 좋겠죠.
 
구현 자체는 완전탐색을 하면 되어서 크게 어렵지 않았습니다. 마찬가지로 알고리즘과는 무관했습니다. 1차 제출 후 반례가 생각나서 반례를 추가해 재제출 했습니다.

총평

시간은 120분 중 105분 가량을 사용했고, 분배는 SQL 15분, 1번 5분, 2번 10분, 3번 30분, 4번 45분 정도를 사용했습니다.

시작 전까지 백준에서 union find를 풀었는데 알고리즘이 나오지 않아 당황했습니다. 최근 코테는 알고리즘에 대한 의존도를 줄이는 추세라고 들었는데 그런가? 싶었습니다. 무엇보다 천천히 지문을 읽고 당황하지 않는 것이 중요했습니다.
 
결과는 1차도 합격하였습니다.


 
여기부턴 면접탈 이후에 쓰는거라 분위기가 많이 다운됩니다...ㅠㅠ


3. 2차코테

동일하게 프로그래머스에서 진행되었습니다.
2차코테 직전에 지갑을 잃어버려서 급히 여권을 챙겼는데 다행히 문제없이 응시할 수 있었습니다.

문제풀이 팁

1차 코테와 마찬가지로 복잡한 알고리즘이나 자료구조를 사용하는 문제 (웰노운이 아닌 것) 는 없었습니다.
다만 생각은 더 어려웠는데, 올솔이 컷은 아니어서 골랜디를 할 줄 알면 풀 수 있는 수준이었습니다.

1) SQL (12분)

마찬가지로 SQL은 단순하게 나왔습니다. 작년에는 SQL이 어렵다는 평이 많았는데 올해는 아니었네요.
JOIN, SUM, FLOOR등을 이용해 해결했던 기억이 납니다.

2) 알고리즘 1번 : 구현 (실1-골5, 10분)

Bisect를 이용하는 방법이 있다고 하는데, 첫 위치만 잡으면 되는거라 map이나 26크기의 배열을 이용하면 됩니다. 저는 26개 배열에 첫 위치를 기록하고 첫 위치의 차이의 합을 출력해주었습니다.

3) 알고리즘 2번 : 문자열, 많은 조건 분기 (실2-실1, 15분)

문자열 = 파이썬 입니다. 파이썬의 string split기능을 이용하고 각 조건을 count한 뒤, 많은 조건 분기를 잘 해주면 바로 풀리는 문제였습니다. 문자열과 많은 조건 분기는 연습보다는 "안다와 모른다"의 영역이라 생각해 자주 사용해보시는 것이 좋을 것 같습니다.

4) 알고리즘 3번 : BFS, 메모이제이션 (골4-2, 45분)

저는 candidate를 이용해 풀이를 전개했습니다. 그래프 탐색의 문제였기 때문에 필연적으로 모든 간선을 탐색하며 다음 탐색 후보군을 정하다가는 TLE가 나올텐데, 어떤 candidate에 속하는 것만 탐색하도록 하였습니다. Candidate는 지금 탐색한 node와 연결된 node 중에서, 추가 변형이 필요한 node를 판단하여 추가했습니다.
 
아쉬운점은 메모이제이션을 잘 활용했다면 연결된 노드의 간선을 모두 탐색하지 않고, 미리 저장해둔 최댓값과 비교하여 한 번의 비교로 candidate 추가 여부를 결정할 수 있는 것이었고, 이 부분은 면접에서도 지적되었습니다.
 
백준에서 자주 볼 수 있는 문제 유형이었는데, "그래프"를 모른다고 해서 겁먹지 말고 탐색을 어떻게 할 것인지 잘 생각해야 했습니다. 특히나 최적화를 어떻게 할 것인지 잘 생각해야 하는 문제였습니다.

5) 알고리즘 4번 : priority queue, Greedy, DP (골2-플5, 미해결)

아이디어를 떠올리는 것은 어렵지 않았습니다. 그리디하게 생각하면 초기 세팅이 되었는데, 이후에 많은 조건 분기를 하는 과정에서 식을 단순화 하는 것이 어려웠습니다.
 
핵심 생각은 ForwardSum (a[i] + a[i+1])과 BackwardMax를 비교하는 것이었습니다. BackwardMax[i]는 i+1부터 끝까지 중에 2회 시행이 최대인 index를 저장하였습니다. 그리고 DP를 사용하면서 BackwardMax와 ForwardSum을 비교하고, BackwardMax의 visit 판단을 해주고, BackwardMax가 최선이라면 i--를 통해 다시 루프를 돌도록 해주었습니다.
 
많은 조건 분기는 만약 전체 시행이 홀수번일 때, (1,1,1), (2,1), (1,2) 등의 조건을 비교하며 최선을 선택하는 것인데, 이 부분을 구현하다가 시간이 끝났습니다.
 
우선순위 큐를 이용해 문제를 푸는 방법도 제시되었는데, 이것이 정해라는 의견이 많았습니다. 충분히 어려운 문제였고 풀 수 있다면 면접에서 큰 문제가 없는 한 합격하였을 것이라고 생각합니다.

총평

1차가 크게 어렵고 복잡한 개념이 없었어서, 2차도 빡구현 문제가 나오지 않을까? 하고 생각하고 있었는데 생각보다 알고리즘 난이도가 높았습니다. 프로그래머스 특성상 효율성 체크를 해보지 못해서 아마 3번도 틀렸을 수 있겠지만, 최종은 4솔 이라고 생각하고 있습니다.

3솔도 합격한 분들이 많다고 들어서 포트폴리오를 잘 작성하셨다면 코테는 최소한의 수준만 마련하셔도 될 것 같습니다.
 
결과는 2차도 합격하였습니다.


4. 심층면접

면접은 토요일에 진행되었는데, 사실 목금토일 동안 아버지 환갑여행으로 제주도에 있어서, 토요일 아침 비행기를 타고 서울에 도착했습니다.

 
면접 대기실은 시작 30분전부터 입장이 됩니다. 저는 14시 15분 면접, 13시 45분 입장이었습니다. 30분간 할 일이 없으니 포폴을 출력해가서 읽어보는 것도 좋습니다. 김포공항에 도착해 공덕까지 가는 5호선 지하철을 타고, 13시 25분 쯤 공덕에 도착했습니다. 사실 여행당시 옷을 입고 있어서 옷가게를 찾았는데 없었고, 근처 찜질방에서 급하게 씻고 55분쯤 대기실에 입장했습니다. 지금 생각해보면 면접을 본 것도 기적입니다.
 
면접은 5대5면접이었고, 저희 면접장은 한 분이 결석하였습니다. 면접이라... 첫 학교는 정시, 두번째는 논술로 입학해서 저에게는 거의 처음보는 면접이었습니다. 스무살에 봤던 GIST, DGIST 면접 정도만 기억이 나네요.
 
기술질문, 코테질문 이외에 대부분이 포트폴리오를 중심으로 진행되었습니다. 공개 가능한 선에서 기억나는 답변을 정리하자면,

  1. 저는 개발도 잘하는 의사가 아닌 그냥 개발자가 되고 싶다고 답변하였습니다. 빈말같아 보이겠지만 진심이었습니다. 내가 하고 싶은 일이라면 완전히 별도의 영역으로 분리하고, 그 분야의 아이덴티티를 유지하며 최선을 다해야 한다고 생각했습니다.
  2. 당연히 돌아갈 곳이 있지 않은가? 에 대한 질문을 하셨고, 저는 제가 좋아하는 connecting the dots looking backward로 답변을 시작했습니다. 잡스짱,,, 저는 앞으로 어떤 일을 할지 모르겠지만, 중심을 잘 정한 뒤 주변 branch를 잘 관리하고 싶다고 답변했습니다. 더 좋아하고 잘 되는 일을 중심으로 하겠지만, 지금은 그것이 무엇일지 모르겠다고 답변하였습니다.

기술질문은 약간 절었고, 코테질문은 적당히 답변했고, 포트폴리오는 잘 답변했다고 생각했지만, 세상일은 역시 끝까지 확신은 못하는 법.
 
결론은 탈락하였습니다.

 
ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
정말 참여해보고 싶었던 일이라 너무 아까웠습니다.



여기서부터는 제 생각들...
 
의사는 물론 아주 매력적인 직업입니다. 저 또한 제 직업을 사랑할 자신이 있습니다. 이 학교에서 만난 동료 학생들은 열정있고, 똑똑하고, 신뢰할 수 있는 사람들입니다. 하지만 교육의 특성상 창의력을 담은 아이템을 내놓고 평가받을 일은 흔치 않습니다. 최우선 원칙인 가이드라인에 맞게, 그 이후에는 동료들의 의견을 수렴해, 그 이후에는 보호자들의 결정에 맞게, 그것도 어렵다면 최선의 윤리적인 판단을 내리는 일이 의사의 일입니다.
 
그래서 졸업 전에, 직업을 갖기 전에는 창의력을 담은 아이템을 내놓고 평가받는 일을 해보고 싶었습니다. 혼자서 하기에는 어려운 부분들이 많았고, 생각도 갇혀있다는 느낌이 들어 지원하였습니다.
 
지원 전에는 에이 해봐야 되겠나 싶은 생각을 했고, 부담없이 지원했고 안되면 깔끔히 포기하자고 생각했습니다. 하지만 이게 최종에서 떨어지다보니 많이 아쉬운 것이 사실이네요. 아마 앞으로는 대학생의 신분으로 개발자의 아이덴티티를 가져볼 기회가 점점 줄어들 것 같아 더 아쉽습니다.
 
탈락 이후 누구나 그렇듯 내가 무엇을 실수한 걸까 하고 생각했습니다. 자소서를 거만하게 작성했나? 사실 4솔이 아니라 3솔? 2솔인건가? 내가 면접에서 실수로 답변을 못한건가? 면접 태도가 별로였나? 내가 서강대에 남았다면 어땠을까? 내가 전공생들의 자리를 빼앗아 버린걸까? 그들만큼 간절하지 못한 것일까? 하는 생각이 꼬리에 꼬리를 물었습니다.
 
창업을 하고자 할 때, 법인을 설립하고 사업화를 하기 위해서는 많은 비용이 필요합니다. 단순히 법인의 설립을 위한 수수료만 150-300만원이 들어가게 됩니다. 정부사업을 따는 것도 마찬가지, 민간부담금의 투입을 통한 책임부담이 필요합니다. 이런 비용을 감당할 여유가 없어 소마의 기회를 활용해보고 싶었지만, 너무 큰 욕심이었나... 하는 생각이 듭니다.
 
개인적으로 병원을 차리는 일 (개원) 또한 사업이라 생각해서, 사업은 계속 도전해보고 싶습니다.
 
소프트웨어 마에스트로라는 우수한 프로그램에 지원할 수 있어서 큰 영광이었습니다.
그리고 함께하지 못해 너무 아쉽습니다.
찾아주신 모든 분들의 도전을 응원합니다. 화이팅!

'여담 > 후기' 카테고리의 다른 글

내가 가 본 화운사, 템플스테이 후기  (0) 2025.03.17

댓글