[SWM] 소프트웨어 마에스트로 14기 합격 후기

이정진·2023년 11월 29일
0

Experience

목록 보기
5/5
post-thumbnail

소프트웨어 마에스트로 14기 합격

서류

문항별로 최소 400자, 최대 3000자 분량으로 작성하면 되는데, 저는 문항당 약 2000자 내외로 작성했습니다. 분량을 많이 작성할 필요성은 없었지만, 추후 면접 때 많은 질문을 이끌어내기 위해 최대한 많은 분량으로 작성했습니다.

문항 내용은 아래와 같습니다.

1

소프트웨어분야 전문성을 키우기 위해 남들과 달리 특별한 노력을 한 경험을 서술해주세요.
경험한 내용이 많지 않았기에, 크게 4가지로 나누어 작성했습니다.

  • 컴퓨터공학을 전공하게 된 계기
  • 정보보호병 군 복무 과정에서 노력한 경험
  • 큐시즘 26기/Mews 개발 등을 통한 프로젝트 경험
  • 현재 지속적으로 하고 있는 노력 (Ex: 스터디 등)

2

귀하의 장래희망을 서술해주세요.
장래희망을 서술하라는 이 문항이 작성할 수 있는 방향성이 굉장히 다양하다고 생각했습니다. 저는 제가 어떤 개발자가 되고 싶은지, 어떤 사람이 되고 싶은지를 문단으로 나누어 작성했습니다.

  • 서비스 기획부터 개발까지 모든 걸 경험해본 개발자
  • 개발물에 대한 책임을 지는 개발자
  • "왜?"라는 질문을 던지며 이를 해결하는 과정을 즐기는 개발자
  • 같이 하고 싶은 사람

큐시즘을 통해 들었던 강연 등을 통해 가지게 된 가치관 등이 이 문항을 작성하는데 많은 도움이 되었습니다.

3

어떤 능력을 갖춘 연수생들과 어떠한 프로젝트를 어떻게 수행할 것인지 귀하의 구체적인 계획을 서술해주세요.
여기서는 제가 함께 하고 싶은 연수생의 상은 어떤 것인지와 프로젝트를 어떤 방식으로 진행할 것인지, 진행 과정에서 사용해보고자 하는 툴을 언급하며, 빠른 속도로 MVP를 개발할 것이라고 서술했습니다.

4

본 과정을 통해 이루고자하는 목표가 무엇인지 구체적으로 서술해주세요.
제가 개발자가 되고 싶었던 가장 큰 이유는 제가 개발한 서비스를 사용자들이 사용하고 이에 대한 피드백을 받는 과정이 성장하는 것이 눈에 보이고, 명확히 인정받고 있음을 알 수 있는 분야라고 생각했기 때문이였습니다. 그렇기에, 사용자 중심의 서비스를 개발하고 이를 운영하는 것, 이 과정에서 기술적 성장을 같이 하고 싶음을 최대한 어필하는 방향성으로 작성했습니다.

1차 코딩테스트

알고리즘 4문제, SQL 1문제가 나왔으며, 저는 알고리즘 3문제 정도를 풀었습니다.
나왔던 문제들 중 기억나는 문제들은 아래와 같습니다.

눈사태

산의 구간이 N개로 나누어져 있는 상황에서, 각 구간별로 쌓일 수 있는 눈의 한계량과 쌓이게 되는 눈의 양에 관련된 배열이 주어집니다. 이 때, 특정 구간에서 눈의 한계량보다 쌓이게 되는 눈의 양이 많아진다면 눈사태가 일어나게 되는데, 눈사태가 일어나게 되는 지점을 구하는 문제였습니다.
단순 구현 문제였습니다.

십자가 최대 길이 구하기

좌표계 위에 여러 도형들이 모두 십자가와 비슷한 형태로 놓여있습니다. 이 때, 놓여있는 십자가 중 가장 길이가 긴 십자가의 최대 길이를 구하는 문제였습니다.
까다로웠던 점은, 상/하/좌/우 중 가장 짧은 길이가 해당 십자가의 길이가 된다는 점과 여러 모형의 십자가가 좌표계 상 겹쳐있는 것처럼 보이는 경우가 생겨 이 부분을 분리하기 위한 노력을 많이 했던 것 같습니다.
저는 완전 탐색으로 모든 좌표계를 검사하도록 구현했습니다.

도미노 최대 불안정성 구하기

여러 도미노가 이어져서 쌓여 있을 때, 넘어지면 영향을 받는 도미노의 규모는 어느정도인지 구하는 문제였습니다.

젓가락 짝 맞추기

젓가락이 BC DB AA CD와 같이 놓여있을 때, 몇 번을 움직여야 짝을 맞출 수 있는지 구하는 문제였습니다.

SQL

주어진 기본 상황은 PK인 ID은 영문자 2글자 ~ 20글자 + 숫자 2글자 ~ 4글자로 이루어져 있는 것과 과거의 ID의 경우는 숫자가 2자리 또는 3자리로 이루어져 있다는 것이였습니다. 이 때, 이렇게 숫자가 2자리 또는 3자리로 이루어져 있을 때, 사이에 0을 끼워넣어 총 숫자가 4자리가 되도록 변경하여 출력하는 것이 문제에서 요청사항이였습니다.

구현 문제들이 꽤 많아서, 문제를 보고 구현하는 속도감이 조금 있어야 할 것 같습니다. SQL 문제의 경우, 개인적으로는 말이 안 되는데? 싶을 정도의 난이도였습니다. 푼 사람이 있을지는 잘 모르겠다는 생각이 문제를 보자마자 들었습니다.

2차 코딩테스트

1차와 동일하게 알고리즘 4문제, SQL 1문제가 나왔으며, 저는 알고리즘 2문제와 SQL 1문제를 풀었습니다.

화살표

주어진 문자열에는 화살표 방향 정보가 담겨 있으며, 해당 화살표 방향 정보에 맞추어 문제에서 안내한대로 행동하도록 구현하면 되는 문제였습니다.
단순 구현 문제로, 가장 빠르게 풀었던 문제입니다.

충전소

BFS로 푸는 문제였던 것 같습니다.
문제에서 주어진 주유소들을 지나 도착점까지 갈 때, 최소 시간으로 갈 수 있을 때의 남은 주유량을 반환하는 문제입니다.
충전할 때 걸리는 시간은 1초이며, 로봇은 충전소에서 자가충전도 같이 할 수 있고, 거리 1을 이동하는데 1초가 걸리며, 1의 연료를 소모하고, 동일한 주유소에서 반복 충전이 가능하다는 점 등의 조건이 있었습니다.

회전문

N개의 영역으로 구분되어 있는 회전문이 있으며, 들어오는 문과 나가는 문이 있으면서, 회전문이 돌면 안에 있는 사람들이 들어왔다가 다른 문으로 빠져나갈 수 있으며, 회전문이 돌고 있지 않으면, 해당 기간동안 시간이 흐르는 방식의 문제였습니다.
모든 케이스들에 대하여 구현하는 유형의 문제였으며, 저는 해당 문제에서 가장 많은 시간을 쏟았던 것 같습니다.

개인과 택시

개인 한 명이 여러 건물들을 이동하면서 주어진 문제의 조건을 만족해야 했던 문제였습니다. 각 건물 사이를 이동할 때, 택시를 타고 이동할 수 있는 등 이동 수단에 대한 부분에 대한 조건이 다양했던 문제였습니다.
저는 다익스트라 + DP의 유형이라고 판단했지만, 시간이 부족해서 문제를 풀지는 못했습니다.

SQL

축구 리그가 진행될 때, 리그 진행 결과를 홈/어웨이/골득실의 칼럼으로 테이블을 관리하고 있을 때, 골득실의 합이 문제에서 주어진 조건을 만족하는 팀을 조회하는 문제였습니다. 저는 홈에서의 결과와 어웨이에서의 결과를 합쳐야 하기에 서브 쿼리로 테이블을 만들어 이를 조인으로 해결했습니다.

SQL 문제가 1차에 비해 상당히 쉬워져서 쉽게 풀 수 있었습니다. 알고리즘의 경우, 난이도가 1차에 비해 상승한 부분과 DP 유형에 약했기에, 2문제만 풀 수 있었습니다.

두 번의 코딩테스트를 거치면서, 푼 문제가 엣지 케이스를 포함하여 전부 정답인지는 확인하지는 못하였지만, 면접 응시 기회를 얻었습니다.

면접

자기소개서 작성

자기소개서 작성과정에서 가장 많은 시간을 투자한 내용은 한 줄 자기소개였습니다. 페이지 상단에 작성할 내용이기도 하며, 이를 통해 집중도를 끌어올려야 한다고 생각했기 때문에, 여러 문장들을 만들어서 주변에 물어보며, 한 줄 자기소개를 통해서 내 가치관을 드러낼 수 있는지를 판단해보고자 했습니다.

이런 노력을 거쳐서 자기소개서를 완성했습니다.

이 때, 제가 선택했던 첫 문장은 "투자자 줄 세우는 개발자, 이정진입니다."였는데, 서비스를 통해 사용자의 니즈를 해결해주고 이를 통해 서비스를 성장시킨다면 결국 투자자들이 투자해보고자 하는 서비스가 될 수 있다고 생각해 위와 같이 작성했습니다.
(사실은 면접에 들어간다면, 제가 가지고 있는 가치관을 보여드리기 위해 상대적으로 자극적인 문구를 사용한 편이기도 했습니다❗️)

추가적으로, 제가 취업보다는 창업에 관심이 많다는 점을 어필하기 위하여 수상 이력 등은 없지만 창업이라는 섹션을 만들어서 정리를 했습니다.

3분 자기소개 준비

면접은 5명이 같이 면접을 보게 되는데요. 각 3분씩 총 15분의 자기소개 시간과 45분의 면접 시간 등 도합 1시간동안 진행했습니다.
3분 자기소개는 제출했던 자기소개서(노션 페이지)를 기반으로 진행하게 되기에, 계속 자기소개서를 띄워놓고 대본을 외워서 말하는 연습을 했습니다.

2분 50초 내외의 분량으로 준비해서 외운다면, 약간 실수하더라도 3분 안에 원하는 내용을 전달할 수 있을 것 같습니다. 3분이 지나면, 스톱워치가 울리기 때문에 바로 멈춰야 한다는 점을 기억하면 좋을 것 같습니다.

면접 내용 준비

이전 기수의 합격 수기를 찾아보면서 면접 준비를 진행했습니다.
자기소개서에 작성되어 있던 내용들에 대해서 질문 형식으로 정리를 진행했습니다.
기술 질문들에 대비하기 위해,

  • CI/CD
  • Redis
  • SpringBoot DI/IoC
  • 소셜 로그인 로직
  • Http와 Socket의 차이
  • Etc..

위와 같은 내용들도 정리해서 준비했습니다.

면접 질문

  1. 그로드 프로젝트에서의 클라우드 아키텍처 설명해주세요
  2. 도커 이미지 기반의 ECR, ECS 등을 사용하지 않고 인프라를 구축한 이유
  3. 프로젝트를 진행하면서 겪은 팀원과의 갈등과 그 해결 사례
  4. 소마 연수를 받으면서, 학업과 병행할 수 있는지?
  5. 여태까지 진행했던 프로젝트에서의 인원은 어느 정도 규모였는지?
  6. Redis를 프로젝트에서 사용했는데, Redis의 사용 이유를 명확히 설명해봐.
  7. 자기소개서의 첫 줄이 투자자 줄 세우는 개발자인데, 어떤 의미인지 설명해봐.
  8. 인정받고 싶은 거랑 창업하고 싶은 거랑 뭔 상관이야? (7번의 꼬리 질문)
  9. 소마를 통해서 어떤 능력 향상시키고 싶어?

위 질문들에 더해서 두 개 정도 더 질문받았습니다.

개인 자기소개서와 일반적인 내용들 위주로 면접을 준비하는게 제일 좋을 것 같습니다.

최종 결과!

후기

면접을 보고나서, 준비했던 내용들을 다 말하고 나올 수 있어서 후회는 없었습니다. 합격하고, 현재 예비과정을 지나고 있는 지금, 본 프로젝트를 통해 얼마나 더 성장해갈지 기대하고 있습니다.

14기에 합격해서 현재 과릿을 개발 및 운영중에 있습니다.
설치: 구글 / 애플

  • 본 글은 2023년 5월 27일에 작성된 글입니다.

0개의 댓글