Hanbit the Developer

[SW마에스트로] 소마 제13기 합격 후기 본문

NO CODE/SW마에스트로

[SW마에스트로] 소마 제13기 합격 후기

hanbikan 2022. 4. 8. 13:15

선발 과정에 대한 이해

 소마에서 바라는 인재상을 이해하기 위해, 이전 기수분들이 블로그에 작성하신 질문들을 정리하였고 소마 홈페이지에 기술된 인재상을 살펴보았다. 소마에서 지원자에게 바라는 듯한 요소는 다음과 같았다.

 

 - 문제 해결 능력(사실 이것은 주로 코딩테스트로 파악을 합니다.)

 - 커뮤니케이션 및 협업 능력(애자일 방법론)

 - 코딩 역량 및 기술 지식(본인이 집중하는 기술 스택, AI)

 - 비즈니스 관련(특정 서비스가 어떻게 금전적인 가치를 창출하는지, 비즈니스 모델 등)

 - 적합한 지원 동기(애매하면 안 됩니다. 실제로 붙게 된다면 구체적으로 어떻게 하실 건지 미리 생각해보는 것이 도움이 많이 됩니다. 예를 들면, '지방에 살면서 대학교에 재학 중인데 어떻게 할 것인가?'와 같은 질문들입니다.)

 

이 요소들을 고려하여 나라는 개발자의 이미지를 그려보고, 장단점을 생각해보는 것이 도움이 많이 되었다.

 

자기소개서

전문성을 키우기 위해 남들과 달리 특별한 노력을 한 경험을 서술해 주시기 바랍니다.


 두 경험을 두 문단으로 나누어 기술하였다. 첫번째는 안드로이드라는 나의 분야를 고르기 위해 웹, 앱, 게임이라는 세 분야에서 4개의 토이프로젝트를 진행하였다는 경험이다. 문단을 끝내면서 '기술 학습을 위한 수단이었기에 깊게 파지 못했다'며 스스로 단점을 제시하였고 이를 두번째 문단에서 보완을 하는 식으로 흐름을 잡았다.

 두번째 문단에는 작년 5월부터 진행한 '집사의 노트' 프로젝트에 대한 내용을 기술하였다. 여기에는 전체 PR 개수와 내가 작성한 PR 개수를 제시하여 성실히 기여했다는 점을 밝혔고, 특히 의사소통에서의 경험과 발전들을 강조하였다.

 

 

 

귀하의 장래희망을 서술하여 주시기 바랍니다.

 

 장래희망을 묻는다는 것은 비전을 묻는 것과 같다. 나의 10년 장기 플랜과 관련된 내용을 기입하였다.

 

 

귀하께서는 2020년도 「SW 마에스트로」 연수과정에서 동료 연수생 3~5명과 협력하여 새로운 프로젝트를 완성하여야 합니다. 어떤 능력을 갖춘 연수생들어떤 프로젝트어떻게 수행할 것인지 귀하의 구체적인 계획을 서술하여 주시기 바랍니다.

 

 세 문단으로 나뉜다. 첫번째 문단은 질문에서의 '어떤 프로젝트를 수행할 것인지'에 대한 답변을 하였다. 구체적으로 내 아이디어에 서비스 명칭을 붙여 소개하였다. 내 경험으로 인해 어떤 니즈를 파악하였고, 이를 개발할 시에 내 서비스가 갖게 될 차별점, 마지막으로 수익을 어떻게 얻는지를 작성하였다.

 두번째 문단은 '어떤 능력을 갖춘 연수생들'에 대한 내용이다. 기존 프로젝트를 하며 경험한 것들을 정리하여 내가 원하는 팀원의 모습을 그려나갔다.

 마지막은 '어떻게 수행할 것인지'를 기술하였다. 정말 구체적으로 개발론, 스프린트 주기, 리팩토링 그리고 의사소통에 대한 내용을 작성하였다.

 

 

 

2020년도 「SW 마에스트로」 연수 과정에서는 연수생에게 교육지원비, 노트북 PC 및 프로젝트 재료비 등을 지원할 예정이며, 본인이 희망하는 온라인 강의와 프로젝트 수행을 도와주는 멘토(팀별 5명 내외)를 통해 귀하의 SW 능력을 향상·발전할 수 있는 기회를 제공하고 있습니다. 앞으로 약 6개월간 귀하께서 본 과정을 통해 이루고자 하는 목표가 무엇인지 구체적으로 서술하여 주시기 바랍니다.

 

 성장하고 경험하는 것이 궁극적인 목표라고 작성하였다. 프로젝트를 해본 결과, 매우 큰 금전적인 지원을 받으며 전문가의 도움도 받을 수 있으며 프로젝트에만 집중하는 연수생들과 6개월을 보낼 수 있다는 것은 정말 좋은 기회라고 생각을 하게 되었다. 또한 다채로운 경험을 통해 '우물 안 개구리'에 불과한 코더에서 벗어날 수 있는 계기가 될 수도 있고 생각한다. 이러한 내 생각과 경험을 녹여내어, 내가 크게 성장할 수 있는 좋은 밑거름이 된다는 식으로 작성하였다.

 

 

 자기소개서는 결국 본인의 경험이나 생각에 기반을 두고 시간을 들여 고민을 하면 된다. 분량 채우기에 신경쓰지 말고 핵심 위주로 계속해서 업데이트 하기를 권한다. 나는 1~2주일 동안 지속적으로 메모장을 업데이트하면서 생각과 경험을 정리하고 글을 정리하였다.

 시간이 아깝다는 생각을 하면 안 된다. 개발자로서의 자소서를 많이 써보지 않았더라면, 합불 여부와 상관없이 내가 뭐가 부족하고 어떤 경험들을 쌓아야 하는지와 같은 것들이 보이게 된다. 내가 작년에 소마 12기에 지원했다가 불합격(https://rccode.tistory.com/entry/SW%EB%A7%88%EC%97%90%EC%8A%A4%ED%8A%B8%EB%A1%9C-12%EA%B8%B0-3%EC%B0%A8-%EC%8B%AC%EC%B8%B5-%EB%A9%B4%EC%A0%91-%ED%9B%84%EA%B8%B0)한 경험을 하지 않은 채로 1년을 보냈더라면 과연 13기에 합격을 했을까?

 

1차 코딩 테스트

알고리즘 6문제, SQL 1문제, CSS 1문제가 나왔다. 다음은 체감 난이도 및 간단한 설명이다.

 

1번[브론즈 또는 골드1]: 이렇게 표현한 이유는 정해는 골드1인데 브론즈 수준의 간단한 풀이로도 ACCEPT가 뜨는 문제였기 때문이다. 정해는 Trie였다.

2번[골드2~3]: '빡구현'

3번[골드5]: 문자열 처리

4번, 5번: (기억이 안 납니다.. 실버 수준이었을 거예요..)

6번[골드4]: 다익스트라 응용

7번[SQL]: select join

8번[CSS]: 특정 이벤트(체크박스 클릭이었던 것으로 기억합니다.) 시에 어떤 엘리멘트의 스타일을 변경하는 문제였다. 특이한 점은 JavaScript를 쓸 수 없었고 CSS로만 풀었어야 했다.

 

특히 이번 기수는 구글링이 허용이 되지 않아서 곤란했다.

 

 

2차 코딩 테스트

알고리즘 3문제, SQL 1문제, CSS 1문제가 나왔다.

 

1번[실버1]: 조합 + 브루트포스

2번[골드4]: 유니온 파인드 응용

3번[플레5]: 상당히 복잡한 DP, 푼 사람이 거의 없었을 것이다. 개인적인 생각으론 난이도 조절에 실패한 게 아닌가 싶다.

4번[SQL]: 테이블 3개 join

5번[JavaScript]: (3번 풀다가 못 봤습니다 ㅜ js 기억도 안 나고 구글링도 안 돼서 버렸어요)

 

 

심층 면접 대비

 내가 그렸던 나라는 개발자의 이미지를 계속해서 되새기고, 자기소개서를 하루에 한 번씩 보곤 하였다. 또한 취업을 준비하는 친구와 모의 면접 스터디를 하였다.

 예상 질문은 크게 5개의 분야에 대해 준비하였다. 공통 질문, CS 및 개발 지식, 코딩 테스트, 주력 분야, 프로젝트라는 분야에 대해, 구글링을 통해 얻은 예상 질문들을 채워넣었다.

 결과적으로 합격을 한 이 시점에서 중요했다고 판단되는 것은 바로, 논리를 완성시키는 것이었다.(토론을 준비할 때 다방면으로 고민해보고 나의 포지션을 굳히는 것처럼) 사실 예상 질문에서 나온 질문이 한 개도 없었다. 하지만 예상 질문을 준비하는 과정에서 '건설된' 나의 논리 기반이 도움이 되었다고 생각한다. 이때 중요한 건, 수많은 예상 질문들을 준비하면서 조금이라도 막히거나 애매한 부분이 있으면 곧바로 생각을 정리를 해야한다는 것이다. 이것을 면접 준비의 본질이라고 생각하게 되었다.

 이렇게 면접에 필요한 기반들을 갖춘 뒤, 외적인 요소들을 개선해나갔다. 내용물을 채워넣었으니 이제 이쁘장하게 포장을 하겠다는 것이다. 예를 들면 말을 너무 빠르게 한다거나, 손을 가만히 못 둔다거나, 두괄식 답변이 부족한다거나 하는 것들을 보완했었다. 모의 면접이나 스스로를 촬영하여 제 3의 관점으로 보는 것이 도움이 되었다.

 

 

심층 면접

 60분 동안 5:5로 면접을 진행하였다. 이번 13기부터 추가된 포트폴리오 발표를 각 개인이 3분씩 하여, 총 15분이 지난 뒤에야 질문이 시작되었다. 이 때 주의할 점은 3분을 넘기면 바로 자른다는 것이다. 15분을 소요하여 45분이 남았고, 지원자는 5명이므로 인당 9분의 시간이 주어지는 셈이다.

 질문은 대부분이 포트폴리오에서 기반된 것이었다. '성격의 장단점', 'OOP의 정의', '코딩 테스트 왜 이렇게 풀었는가' 등의 질문이 전혀 없었다는 것이다. 나는 포트폴리오 발표의 대부분을 한 개의 프로젝트에 할애를 하였는데, 대부분의 질문이 여기서 기반한 것이었다. 다른 분들도 마찬가지였다.

 

 다음은 내가 받았던 질문들이다.

 - (공통 질문) 5년 안에 세상을 바꿀 기술이 무엇이며, 구체적으로 어떻게 바꿔나갈 것으로 보는가? 손 들어서 대답해보라.

=> (질문 끝나자마자 가장 먼저 손 들음) AI

=> (꼬리 질문) 자기소개서에 기술한 프로젝트에 접목시킬 수 있는 점이 있는가? 구체적으로 어떻게 쓸 것인가?

=> AI 이미지 처리 기술이며 구체적인 기능을 상세히 묘사하였다.

 

 - 애자일 프로세스로 개발을 진행하여 개발 속도가 빨라진 경험이 있다고 하였는데, 사실 애자일의 과정을 불필요하게 느껴서 불편함을 호소하는 개발자도 있다. 어떻게 생각하는가?

=> 기존에 워터폴로 개발하였다가 애자일로 넘어갔는데 이 때 Github의 Insight에서 commit의 양이 매우 증가하는 것을 실제로 확인하였다.

=> (꼬리 질문) 구체적으로 협업을 어떻게 진행하였는가?

=> 회의를 하여 TODO list를 작성하고 각 개인에 태스크를 할애하였으며, 각각의 feature에 대한 PR을 작성한다. 이후에 서로 코드 리뷰를 하며 추가 의견이 생기면 commit을 추가하였고 최종적으로 main에 병합하였다.

=> (꼬리 질문) 개발 주기를 1주로 잡았는데 많이 힘들진 않았는가?

=> (개발 주기를 1주로 잡는 게 스탠다드한 것으로 알고 있었어서 약간 당황) 애자일 도입이 이번이 처음이어서 다른 주기를 경험해보지 못하였다.

 

 - 집사의 노트 프로젝트를 실제로 서비스 할 것인가?

=> 그렇다. 그것이 본래 이 프로젝트의 목적이었다.

=> (꼬리 질문) 프로젝트를 서비스 하게 되면 관리 비용이 들 텐데 이는 어떻게 충당할 것인가?

=> 이미 초기 비용이 상당한 40만 원 가량의 서버를 구입하였다.

=> (꼬리 질문) 서버가 터지거나 하면 분산 처리를 하시거나 하는 문제들이 생길 텐데 이에 대해서 어떻게 생각하시나요?

=> 실제로 서비스를 하며 문제를 겪게 되는 상황을 만드는 것이 우선이라고 생각한다.

 

 - (공통 질문) 자신있는 분야가 있는가? 자신이 어느 정도의 레벨이라고 생각하는가?

=> Android이며, databinding 등 최신 기술들을 접하고 있는 수준이기에 초급에서 중급으로 올라가는 단계라고 생각한다.

 

 

 면접을 마치고 느낀 점은 다음과 같다.

 - 개인에 할당된 시간이 매우 적어서 답변이 길거나 하면 답변을 끊으시거나 짧은 답변으로 유도하신다.

 - 경험이 부족한 지원자에게는 개별 질문이 잘 들어오지 않았다. 면접 중후반쯤에서야 억지로 질문하시는 느낌을 받았다.

 - 예상 질문은 역시 안 나온다.

 - 작년엔 공통 질문 위주였으나, 올해는 포트폴리오 질문이 거의 70%였다. 개인적으론 이게 정말 좋은 방향이라고 생각한다.

 

 

합격 후기

 작년에 개발을 이제 막 시작할쯤에 소마를 우연히 접하게 되었고 면접까지 갔었다. 면접장을 들어갈 때, 그 당시와 올해를 비교해보자면... 작년에는 선생님에게 혼나러 가는 기분이었고 올해는 상대적으로 여유로웠던 것 같다.(그래도 긴장되는 건 똑같더라...)

 합격의 요인은 아무래도 평소에 개발에 시간 투자를 많이 하였고, 이로 인해 좋은 경험들이 만들어졌기 때문인 것 같다. 경험이 없다면 '소마 하고 싶다!!'며 자소서나 면접에서 아무리 어필을 해도, 점수를 따내긴 힘들다.. 얼굴도 모르는 사람의 자기소개서를 읽는 면접관의 입장으로 접근을 해야할 듯 하다.