개요
작년부터 개발자에 대한 꿈이 확고해지면서 개발 역량을 키우기 위해 많은 노력들을 했다. 프로그래밍 언어나 CS에 대한 높은 지식을 가지고 있던 것도 아니었기에 남들보다 뒤처졌다고 생각했다. 때문에 책이나 강의를 통해 부족하다고 생각되는 개발 역량, 지식에 대해 차근차근 익혀나갔다.
그렇게 혼자 학습하다 보니, 내가 올바른 방향으로 나아가고 있는 건지에 대한 의문점이 생겼다. 군대에서 만났던 개발자분이 계셔서 대략적인 방향에 대해서는 알고 있었지만, 나의 지식이 매우 얕았기 때문에 어디서부터 어디까지 채워나가야 할지 막막했다. 그러던 와중 부트캠프라는 존재에 대해 알게 되었고 부트 캠프의 종류도 매우 다양하다는 것도 알게 되었다. 특히, 우테코 / SSAFY / SW 마에스트로는 워낙 유명했기에 그런 곳이라면 엄청나게 성장할 수 있을 것이라 생각했다.
그렇게 혼자만의 학습을 이어나가던 도중 올해 2월, SW 마에스트로 14기 모집 공고를 보게 되었고 처음엔 단순히 코딩테스트 문제나 풀어보자는 마음으로 지원했다. 지원할 당시까지만 하더라도 합격할 것이라고는 전.혀 생각하지 못했다.
📑 지원서 제출 (자소서)
지원서는 본인에 대한 개인 정보 - 자소서로 구성되어있었다. 자소서의 문항이 최대 3000자까지인 부분도 있어, 자소서를 어떻게 써야 하는지 고민이 많았다. 인터넷을 찾아보니 지원서 부분에서 떨어지는 경우는 거의 없다는 평이 많았기 때문에 솔직하게 자신의 경험을 기술하면 큰 문제없겠다고 생각했고 하루 만에 자소서 항목을 다 채워서 제출했다.
면접 때 자소서에 쓴 내용을 바탕으로 지원자에게 질문하기도 한다. 하지만 내가 면접을 봤던 분과에서는 5명의 지원자 통틀어 자소서를 통해 나온 질문은 하나밖에 없었다. 13기부터 면접 때 포트폴리오로 3분 발표를 진행하는데, 보통 포트폴리오를 중점적으로 보고 질문하기 때문에 자소서에 대한 부담이 더욱 내려갔다고 생각한다.
📚 코테
코딩테스트는 1차, 2차로 총 2번이었다. 1, 2차 전부 토요일 2시부터 4시까지 진행되었으며, 프로그래머스 환경에서 코딩테스트가 치뤄졌다.
테스트 환경은 웹 캠이 필수였고 코딩테스트를 진행하는동안 모든 화면은 SW 마에스트로 측에 공유된다. 또한 '모니토' 모바일 애플리케이션을 통해 본인이 테스트 보는 모습을 촬영해야 했다. 이 모든 세팅은 시험 보기 1시간 전부터 가능했기 때문에 나는 미리 모든 세팅을 완료해 두고 이전에 풀었던 SQL 문제를 복기했다.
1차, 2차 코딩테스트 모두 알고리즘 4문제, SQL 1문제가 출제되었다. 13기에선 WEB 문제도 있었다고 하는데, 아무래도 형평성 문제로 인해 없어진 듯 싶다.
체감상 문제 난이도 수준은 1, 2차 비슷했으며 알고리즘 문제는 프로그래머스 기준 2 레벨 수준 문제 2개, 3 레벨 2개로 구성되어 있는 듯했다. SQL 문제는 4, 5 레벨 정도 되는 것 같았다. 1차 코테에서 SQL 문제로 문자열 치환 문제가 나왔는데 그 문제는 손도 못 댔다.
시험 환경에서는 테스트 케이스에 대한 결과만 확인할 수 있기 때문에 총점수는 확인할 수 없다. 1차 코딩테스트에서는 기억상 알고리즘 2문제를 풀었고, 2차 코딩테스트에서는 알고리즘 2문제와 SQL 1문제를 풀었다. 사실, 테스트 케이스만 통과한 것이기 때문에 실제 점수는 모른다. 하지만, 합격하신 다른 분들의 이야기를 들어보면 테스트케이스 2문제 정도 통과하면 합격이었던 것 같다.
어쩌다 보니 최종 심층 면접까지 가게 되었다..
🤵 심층 면접
면접 일정은 3/16 (목)부터 3/18 (토)까지 진행되었다. 나는 제일 첫 번째 날인 3월 16일 - 1시 40분에 면접을 보게 되었다.
면접은 5대 5 그룹 면접으로 진행되었으며, 포트폴리오 발표(3분) 및 질의응답(9분)으로 이루어져 있었다.
포트폴리오를 제출하지 않으면 개인적으로 할당된 3분의 발표 시간은 없어지는 것이기 때문에 합격하고 싶다면 꼭 제출해야 한다. 포트폴리오 제출까지는 심층 면접 대상자가 발표된 이후 5일 정도의 시간이 주어졌다.
포트폴리오 작성
제일 처음 면접관에게 나를 소개하는 3분의 시간이 엄청나게 중요하다고 생각했다. 그리고, 엄청나게 특출 난 사람이 아니면 포트폴리오는 다 거기서 거기일 것이라고 생각했다. 때문에, 나만의 핵심 키워드를 만들고 키워드를 바탕으로 내 역량에 대해 어필하고자 하였다. 면접 질문이 포트폴리오에 기반하여 나오기 때문에 포트폴리오를 통해 어떤 질문을 유도해 낼지 잘 생각해야 했다.
그렇게 내가 내걸었던 핵심 키워드는 '기록으로 성장하는 개발자'였다. 블로그를 운영한다는 점과 평소에 기술 학습 내용을 Notion에 정리하였기 때문에 핵심 키워드에 대한 근거는 충분하다고 생각했다.
따라서 최종 완성된 포트폴리오의 흐름은 나에 대한 간략한 소개 → 어필하고자 하는 핵심 키워드 (기록) → 기술 스택 → 활동 → 프로젝트 순이었다.
발표 흐름 또한 작성한 포트폴리오의 흐름대로 구성했다. 나는 대단한 프로젝트 경험이 없었기 때문에 핵심 키워드를 토대로 나의 성장 가능성과 열정을 최대한 어필하고 싶었다. 따라서, 발표 때는 기술 스택이나 활동, 프로젝트는 간략하게 소개하고 마무리로 SW 마에스트로에 대한 참여 의지와 각오를 어필하면서 마무리하려고 했다.
주의해야 할 부분은 포트폴리오 제출 기간 이후, 모든 포트폴리오는 SW 마에스트로 측에 저장되기 때문에 이후에 포트폴리오를 변경할 수 없다는 점이다. 나는 발표를 연습하면서 말하고자 하는 내용들이 조금씩 변경되었는데, 실제 발표할 때는 포트폴리오에서 변경된 부분들이 반영되지 않은 자료를 보고 해야 하기 때문에 대사를 외워가야 하는 리스크가 있었다.
따라서, 포트폴리오 제출 마감일 전에 꼭 충분한 발표 연습을 해보며 계속 수정해 나가는 것을 추천한다.
📌별 대단한 건 없지만 참고하실분들이 있을 것 같아 올립니다.
https://kaispread.notion.site/Kai-s-Portfolio-1b56fd1512644a18b0d20f9bd786a6f1
면접 후기
면접 장소는 양재에 위치한 AT 센터 4층이었다. 면접 30분 전부터 내부 대기실에서 대기할 수 있었기 때문에 근처 카페에서 3분 발표를 연습하고 예상 질문에 대한 답을 생각했다.
그렇게 긴장하며 떨고 있다가 정확히 면접 30분 전에 대기실에 입장했다. 총 5개 분과로 나누어져 있었는데 나는 1분과 3번을 배정받았다. 공통 질문이든 발표든 중간 순서에 할 것이라고 생각했기 때문에 운이 좋다고 생각했다.
대기실에서 20분 정도, 면접장 앞에서 10분 정도 대기하고 마침내 면접장으로 들어갔다.
지원자들 자리에는 2차 코딩테스트 문제가 프린트된 종이가 놓여 있었으며 (문제만) 지원자 한 명씩 단상에서 3분 동안 발표하는 시간을 가지고 이후 남은 시간 동안 공통 + 개인 질문이 이어진다.
우리 분과는 1번부터 차례대로 3분 발표를 시작했다. 단상에 스톱워치 시간이 3분으로 맞춰져 있었고 본인이 버튼을 누르고 발표를 시작하면 되었다.
면접관분들은 지원자들의 발표에 온전히 집중한다기보다는 개인 PC로 지원자들의 포트폴리오를 보며 질문 거리를 적는 느낌이었기 때문에 큰 부담 없이 발표를 진행했다.
이후 45분의 시간 동안 공통 + 개인 질문이 이어졌다. 면접 때 받았던 질문들을 정리해 보면 다음과 같다.
받았던 질문
공통
- sw 마에스트로에서 얻어가고 싶은 것은 무엇인가요?
- 팀 프로젝트 진행하면서 발생했던 문제점 및 해결 방법?
- 팀 프로젝트 진행하면서 하고 싶은 것 기술, 프로젝트 아이디어는 어떤 것이 있는지
- 코딩테스트 준비하면서 많은 생각이 들었을 텐데 어떤 부분이 부족하다고 느꼈고 어떻게 극복하고 있는지
- 4가지 키워드 (Web3.0, 메타버스, chatGPT, 블록체인) 중 한 가지에 대해 설명할 수 있는 사람 손들고 발표
- 마지막으로 1분간 하고 싶은 말이나 이전 질문에 대한 답변이나 포부를 말해주세요
개인
- 객체지향에 관심 있는 것 같던데 디자인패턴이 뭔가요?
- 최근에 사용했던 디자인 패턴이 뭔가요?
- 해당 디자인 패턴을 어떤 기능에 적용해 보셨나요?
- 기록을 슬로건으로 내거시던데 기억이 파편화되는 상황에 대한 해결책이 있나요?
- 기록을 중요시하시는 것 같던데 로그를 수집하거나 따로 관리해 본 경험이 있나요?
- 최근엔 어떤 기록을 하였는지?
- AWS의 VPC에 대해 설명해 주세요
- 프로젝트에서 vpc를 어떻게 설정했는지?
- 로드밸런서를 적용한 다른 프로젝트는 어떤 것이 있나요?
- DI에 대해 설명해 보세요
- DI를 통해 구현체를 변경하는 것은 보통 인증 처리에 많이 사용될 텐데 이를 구현해 본 경험이 있으신가요?
다른 지원자분들이 받았던 질문
- 프로젝트에 React를 사용한 이유, 페이지가 렌더링 되는 방식은 어떻게 이루어지는지, 다른 프레임워크 사용 경험은 없는지
- 프로젝트에 여러 기술을 사용했던데 본인의 의지였는지? 왜 사용하셨나요?
- 다른 프레임워크나 언어를 사용해 본 경험이 있나요?
- DI를 고등학생에 비유하면?
- 자소서에 인공지능을 사용한 프로젝트를 진행하고 싶다고 했는데 어떻게 적용할 예정인지?
- 프로젝트의 진행방식을 보니까 전체적인 틀을 잡고 개발을 진행하시는 것 같은데 ~ 용어에 대해 설명해 보세요
- Dockerizing 어떻게 하셨어요?
- 주로 기술 및 프로젝트에 대한 꼬리질문
느낀 점
면접 질문들은 보통 기술에 대한 본질적인 개념보다는 해당 개념을 실제 어떻게 사용해 봤는지를 묻는 질문이 더 많았다. 나는 단지 예상 면접 질문을 토대로 Spring이 뭐고, DI가 뭔지에 대해서만 외웠었는데 실제 적용 경험에 대해 묻는 질문에 당황해서 답변을 잘하지 못했다..
또한, 핵심 키워드에 대한 질문에 대해 완벽하게 방어하지 못했다. 내가 내걸었던 핵심 키워드가 '기록'이었는데, '기록의 파편화에 대한 해결책' 질문이 나왔을 때 당황해서 잘 답변하지 못했다. 만약, 키워드를 중심으로 면접을 이끌고 갈 예정이라면 이러한 질문들에 대해서도 깊이 생각해보길 바란다.
반면, 같이 면접을 봤던 분들은 나보다 훨씬 잘 답변하셨다. 특히, 백엔드 포지션으로 여러 프로젝트를 진행해 본 여성분이 계셨는데 발표뿐만 아니라 질문에 대한 자신의 생각을 명확하게 말할 수 있는 분이셨다. 그분의 답변을 들으며 질문에 답변하는 연습도 많이 해야겠다는 생각이 들었다. 지금 생각하면 아쉬운 부분들이 정말 많지만 오롯이 내 역량과 경험 부족에서 나온 답변이었기 때문에 크게 후회는 없다.
최종 결과는 아직 나오지 않았지만, SW 마에스트로에 지원했던 것 자체가 좋은 경험이었고 내가 어떤 부분이 부족한지에 대해 객관적으로 확인할 수 있는 시간이었다. 앞으로는 부족하다고 느낀 부분을 보완하고 실제 경험할 수 있는 부분들을 채워나가야겠다.
03.23 발표 ===> 합격
정말 운 좋게도 합격했다. 면접까지 밤새우면서 열심히 준비했지만 워낙 뛰어나신 분들이 많았기 때문에 기대 반 걱정 반으로 합격 결과를 기다렸다. 다행히도 SW 마에스트로에 대한 열정을 좋게 봐주신 것 같다.
열정 있는 동기 연수생들과 멘토 남들을 만날 생각을 하니 설레기도 하고 내 실력이 부족할까봐 걱정이 되기도 한다. 하지만 성장하고자 하는 의지와 열정만 잃지 않는다면 어떤 어려움이 있더라도 헤쳐나갈 수 있을 것이라 생각한다. 이번 연수 과정을 통해 기술적으로 많이 성장했으면 좋겠다.
그동안 소마 준비하면서 여러 방면으로 도와주셨던 분들 정말 감사드립니다. 🙏