← Memoir 목록으로 돌아가기
Memoir└ in series:SWMaestro

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

소프트웨어마에스트로 16기 지원부터 1·2차 코딩테스트, 최종 면접, 합격까지의 준비 과정과 경험을 정리한 후기

SWMaestro는 과학기술정보통신부에서 진행하는 SW인재 양성 프로그램이다.

이 포스트의 각 항목마다 선발 과정에 대해 설명하고, 개인적인 공부법과 느낀점을 함께 적었다.

선발 과정

0. 들어가며

먼저, 매 기수마다 자기소개서 항목, 시험 방식은 달라질 수 있다.
가장 확실한 것은 SWMaestro 모집공고를 참고하는 것이다.

SWMaestro의 선발 과정은 크게 4단계로 이루어져 있다.

SWMaestro 선발 과정 4단계

16기(2025년도) 선발 일정
일정 내용
02/19(수) 14시지원서 결과 발표
02/22(토) 14시 ~ 16시1차 코딩 테스트
02/28(금) 14시1차 코딩 테스트 결과 발표
03/08(토) 14시 ~ 16시2차 코딩 테스트
03/12(수) 14시2차 코딩 테스트 결과 발표
~ 03/17(월) 9시포트폴리오 제출 마감
03/21(금) ~ 23(일)심층 면접
03/28(금) 14시결과 발표

1. 지원서 검토

1차에서는 크게 불합격을 가리지 않는 느낌이었다.
이때 제출해야할 것은 자기소개서가 있다.
사실 자기소개서를 잘 썼는지 고민할 단계는 2차 코테까지 다 붙은 이후이지만, 면접에서도 자기소개서 관련해서 질문이 나올 수 있으니 대비해서 나쁠 건 없다.

정리하면, 최대한 자신의 이야기를 솔직하게 잘 담아내면 된다.


나는 자기소개서에서 해보고 싶은 프로젝트로 deepseek 관련 서비스를 적었다.
2차 코테를 응시할 때 쯤, deepseek의 개인정보 문제가 뉴스로 나왔고, 더 이상 모델을 공개하지 않는다는 이야기를 들은 후에 면접을 많이 걱정했다.

[자기소개] SW분야의 전문성을 키우기 위해 몰입했던 경험과 도전이 무엇인지, 또한 이러한 성장과정을 통해 얻은 배움은 무엇인지를 서술하여 주시기 바랍니다. (최소 400자, 최대 1000자 입력가능)

  과거에는 혼자서 필요한 프로그램을 개발하거나, 개인적으로 기획한 서비스를 위한 프로그램을 만드는 데 집중했습니다. 하지만, 뉴스 클릭베이트 탐지 서비스를 개발하는 팀 프로젝트를 수행하면서, 협업을 통해 완성도 높은 시스템을 구축하는 경험을 하게 되었습니다.

  이 프로젝트는 자극적인 제목으로 사용자의 클릭을 유도하지만, 본문 내용과 관련이 없는 뉴스 기사를 예방하는 뉴스 플랫폼입니다. 사용자가 뉴스를 접할 때, 제목과 본문의 유사도를 분석하여 신뢰도를 평가하는 기능을 제공합니다. 저는 머신러닝 개발을 전담하며, 데이터 수집부터 전처리, 분석, 그리고 최종적으로 사용자에게 정보를 제공하는 데이터베이스에 전달하는 프로세스를 담당했습니다.

  가장 큰 도전은 클라우드 환경에서 대량의 데이터를 실시간으로 처리하고, 이에 적합한 머신러닝 모델을 구축하는 것이었습니다. 처음에는 실시간으로 뉴스를 크롤링해서 저장할 데이터베이스로 RDS를 사용했지만, 지속적인 데이터 증가로 인해 일관성 유지에 어려움을 겪어, SQS로 바꾸었고, 데이터 처리 속도를 높이면서도 확장성을 확보했습니다. 또한, 머신러닝 모델의 유사도 측정 성능을 위해 처음에는 TF-IDF 및 코사인 유사도로 지도학습을 했지만, 문맥을 제대로 반영하지 못했습니다. 이를 위해 비지도학습을 처음 사용했고, 사용자의 피드백을 통해 지도학습으로 바꿔나가는 방식으로 확장성과 성능을 확보했습니다. 이러한 경험을 통해 혼자 개발하는 것만으로는 실력 향상에 한계가 있다는 것을 깨달았습니다. 문제를 직접 경험하고 해결해 나가면서, 더 나아가 실제 사용자에게 제공할 수 있는 서비스로 발전시키기 위해서는 기획과 설계, 그리고 팀원과의 원활한 소통이 필수적이고, 해보지 않은 분야라도 적극적으로 도전하려는 태도가 중요하다는 것을 배웠습니다.

  이제는 소프트웨어 마에스트로에서 경험을 쌓고 싶습니다. 팀원과 함께 다양한 도전을 통해 기술적 깊이를 확장하고, 협업을 통해 더욱 완성도 높은 서비스를 개발할 수 있는 역량을 키우고자 합니다.

[연수계획서] SW마에스트로 과정 참여를 통해 어떠한 프로젝트를 수행하고 싶은가요? 해당 프로젝트를 수행하기 위한 계획과 이루고자 하는 목표가 무엇인지 구체적으로 서술하여 주시기 바랍니다. (최소 400자, 최대 1000자 입력가능)

  저를 포함한 많은 개발자들이 chat gpt를 활용하여 프로그래밍 관련 질문을 해결하지만, 프로젝트 규모가 커지면서 하위 파일과 다양한 라이브러리를 사용하고, 이렇게 되면서 AI가 만족할만한 도움을 못주고 있다고 생각했습니다. 특히 chat gpt는 로컬 파일 시스템에 접근할 수 없어 프로젝트에 대해 전체적인 구조적 이해가 부족하고, 대기업에서는 보안의 문제로 ai 사용을 금지하고 있습니다. 이에 따라 최근에 공개된 deepseek ai를 로컬 환경에서 실행하여 사용자의 개발 환경에 접근하여 chat gpt 처럼 채팅 형식으로 피드백을 제공하는 ai 개발 보조 시스템을 개발하려합니다.

  프론트엔드는 사용자가 접근할 수 있는 인터페이스를 개발하고, 개발 언어와 환경을 설정할 수 있는 docker 이미지 설명 화면 제공, 채팅형 피드백 제공 ui를 담당합니다. 백엔드는 사용자의 코드 폴더와 연동하여 ai가 테스트할 수 있는 docker 컨테이너를 자동으로생성하고 관리합니다. 또 채팅 기록 등을 관리하는 방법에 대해 논의합니다. AI 개발은 DEEPSEEK를 로컬 환경에서 실행하기 위한 방법과 보안 문제를 해결하고, 직접 코드에 접근할 수 있도록 설정하며, 정확한 피드백을 제공할 수 있도록 fine-tuning 합니다.

  이 프로젝트는 기존의 ChatGPT 기반 코딩 지원이 갖는 로컬 파일 접근 불가능, 코드베이스의 맥락 부족, 보안 문제 등의 한계를 극복하여, 더 깊이 있는 피드백을 제공할 수 있는 AI 시스템을 구축하는 것이 목표입니다. 무엇보다 개발자를 위한 시스템으로써 타인보다도 직접 우리가 사용할 수 있는 시스템을 개발함에 의미가 있습니다. 또한, 보안성이 중요한 기업 환경에서도 활용할 수 있도록 DEEPSEEK AI를 활용한 로컬 AI 솔루션을 제공함으로써, 기업 내 개발자들이 안심하고 사용할 수 있는 AI 코딩 지원 시스템을 만들고자 합니다.

2. 코딩 테스트

16기에서 1차 코딩테스트의 시험 범위는 다음과 같다.
(참고로 모집공고에서 각 전형마다 문제 유형과 범위도 나와있으니 만약 지원한다면 확인하는게 좋다.)

  • (기본 알고리즘) 기본적인 알고리즘(완전탐색, 정렬 등)과 자료 구조(배열, 스택, 큐 등)를 이해하고 적절히 활용할 수 있는 능력 검증
  • (SQL) JOIN, UNION 등 기본적인 함수를 사용한 쿼리를 작성할 수 있는 SQL 활용 능력 검증

2차 코딩 테스트의 시험 범위는 다음과 같다.

  • (심화 알고리즘) 복잡한 알고리즘(동적계획(DP), 깊이/너비 우선 탐색(DFS/BFS), 그래프 등)과 고급 자료 구조를 활용할 수 있는 능력 검증
  • (SQL) 다양한 함수를 활용한 정교한 쿼리를 작성할 수 있는 SQL에 대한 깊은 이해와 활용 능력 검증

문항 : 알고리즘 4문제 + SQL 1문제로 구성되어있었다.
코드 작성 환경 : 프로그래머스에서 진행되므로, 미리 어느정도 익숙해질 필요는 있다.
시험 환경 : 핸드폰으로 자신의 모습이 나오게 설치한 후, 노트북으로는 화면공유(듀얼불가) + 화상 캠을 설정한다. 그리고, 주변에 모니터나 디스플레이는 덮어두거나 돌려두어야한다.


코딩 테스트는 python으로 진행했다.
1차의 SQL은 먹여주는 점수라곤 했지만, 난 공부를 안했기 때문에 틀렸다.
나는 1차에서는 3.5~4솔 했고, 2차에서도 3.5~4솔 정도 했다.

코테 문제는 말하면 안되기 때문에 추가로 언급하진 않겠다.
나의 baekjoon 티어는 골드4이고, SQL은 프로그래머스로 공부했다.
예상치 못한 1차 코테 합격 이후 2차 코테까지 SQL 공부를 했으나, 시간 안에 프로그래머스 문제를 다 풀 순 없어서 Level 2~3까지만 다 풀어봤다.

나만의 꿀팁은 시간복잡도는 고려하지 않고, 일단 구현하자는 것이 목표였다.
코테가 끝난 이후에는 코테 문제를 복기하고, 더 좋은 방법이 있는지 고민해봤다.


3. 최종 면접

2차 코딩 테스트를 합격하면 이메일로 노션 링크를 준다.
해당 링크에서 자신의 포트폴리오를 작성하면 된다. 그 화면 그대로 면접장에서 3분 동안 발표하기 때문에 자신을 표현할 수 있는 show time이라 생각하고, 마음껏 보여주면 된다.
이때 프로젝트는 최대 2개만 소개할 수 있다.

면접은 5대5로 진행되었고, 면접자 1명 당 15분으로 시간을 계산한다.
만약 해당 면접 시간에 불참자가 있을 경우는 그 수 만큼 시간에서 차감한다.

참고로 대본은 들고 들어갈 수 없으니 외워서 들어가자!


나는 사실 프로젝트 경험이 하나 밖에 없었다.
그 대신 그 하나의 프로젝트는 A부터 Z까지 어떠한 질문이 나와도 대답할 수 있을 정도였기 때문에, 그 프로젝트를 최대한 깊게 설명하는 식으로 진행했다.
포트폴리오 작성할 때, 모든 내용에 대해서 질문이 나올 수 있으니 그냥 대답 잘 못할거같은건 다 뺐다.


4. 마무리

면접 보기 전에 준비해간 것은, 다음과 같다.

  • 자기소개서
  • 코테 복기 내용
  • 3분 스피치 대본

합격 결과는 이메일/문자로 확인할 수 있고, 홈페이지 내에서도 "16기 연수생"으로 변경되어있는 것으로 확인할 수 있다.

소프트웨어마에스트로 16기 합격 안내 이메일

대학을 다니면 다른 대학 학생들의 경험을 볼 일이 아예 없는데, 다른 학교 학생들은 어떤 경험을 했는지 듣는 것이 경험이 되었고,
내 프로젝트에서 어떤 깊이까지 질문을 하는지, 어떤 식으로 앞으로 공부해야할지 알 수 있는 경험이었다.

Share
← Memoir 목록으로 돌아가기