BOB 15기 보안제품개발 트랙 합격 수기
BOB 합격 이후의 복기
1. 들어가며
이 글은 나의 미흡했던 준비과정을 돌아보고, 보완하기 위해 작성되었다. 또한 내가 그랬듯이 간절한 다음 기수 지원자분들에게 작은 도움이 되기 바라며 작성되었음을 밝힌다.
참고: 이글은 전적으로 저만의 뇌피셜임을 밝힙니다.
2. 서류
서류에서 중요한점은 트랙마다 조금씩 차이가 있어보인다. 여러 동기님들과 대화해본 결과, 필자가 파악한 트랙별 서류 공통점과 차이점은 다음과 같다.
공통점:
서류에 존재하는 자격증명, 프로젝트, 논문, 기술발표, 자소서 등등.. 대부분의 항목을 자세히 많이 채울수록 유리한것 같다. 필자는 보안제품개발 트랙이라 학부연구생 경험, 프로젝트 5개, SW특허출원 경험, 오픈소스 기여경험, 포스터, 정보처리기사 등을 적었고, 자소서는 모두 추가 설명과 정량적 근거를 대는데 집중하였다.
차이점:
- 취약점 분석 트랙: 공통적으로 취약점 제보 이력을 언급하였다. 설령 CVE발급이나 취약점 인정이 되지 않더라도 일단 취약점을 찾고 제보한 이력이 있는것이 중요해보인다.
- 디지털 포렌식 트랙: 모름(들은게 없다…)
- 보안제품개발: 개발 트랙인탓에 프로젝트, 특허, 오픈소스 기여 등이 높게 평가 받은것으로 추정된다.
- AI기업보안: 대부분 클라우드 인프라 관리, 클라우드 기술, 퍼플팀의 업무와 유관한 프로젝트 경험을 작성한 것으로 파악된다. 그리고 트랙적합성을 어필하라는 조언이 있었다. 자신이 왜 이 트랙에 적합한지, 컨셉을 확실히 정해서 서류와 면접을 준비하자.
- 보안컨설팅: 모름(들은게 없다…2)
필자 생각에 서류에서 괜히 힘줘서 면접에서 떨어지면 어쩌지? 하는 걱정보다 일단 영끌해서 서류를 붙이는게 중요한거 같다. 과장하지만 말고, 자신없는 내용일지언정 모두 작성하고, 면접날까지 날밤을 새서라도 보완하면 된다. 또한, 자소서 분량이 기존 1000자에서 500자로 줄었기 때문에 각 항목마다 내세울 키워드를 한두개로 잡고 소제목으로 컨셉을 유지하며 작성하는게 좋아보인다. 자소서를 읽고 평가하시는 분들도 잘 읽히는 글을 선호하신다.
서류작성 당시 아끼지 않고 조언해주신 11,12,13,14기 취약점분석 선배님들께 감사인사 드립니다.
3. 필기 & 인적성
필기는 트랙마다 모두 상이하게 나왔다고 한다. 보안제품개발 트랙의 경우 정보보안기사, 정보처리기사와 유사하게 출제되었다. 특히 OS와 네트워크 영역의 저수준 문제가 좀 보였다.
인적성은 필자의 경우 한번도 풀어본적 없어서 잡코리아 유료 인적성 검사를 결제해 미리 한번 풀어봤다.(내돈ㅠㅠ) 살짝 다르지만, 성격의 무결성을 유지하고 NCS 기초 문제를 예상하면 좋을듯 하다.
4. 면접
따끈따끈한 기억:
서류에서 2배수로 뽑기에, 면접장에 들어간 2명중 1명은 집에 가야했다.
면접장 빌딩 맞은편의 스타벅스에 1시간 일찍 도착하였는데, 현장에는 정장차림의 노트북을 들여다보는 지원자분들이 가득 차있었다. 간신히 콘센트 하나를 사수해서 앉아 준비한 꼬리질문 리스트와 3분 자기소개 글을 달달 외웠다.
안내된 시간에 면접전 대기장소에 입장했는데 약 30명 정도의 다양한 트랙 지원자분들이 앉아있었다. 입장과 동시에 전자기기를 모두 종료해서 가방에 넣어달라는 안내를 받았고, 무척 당황했으나 앉아서 머릿속으로 자기소개를 복기하였다(종이에 프린트해가자).
면접장에서 받은 질문을 유출해선 안된다는 안내를 받은탓에 많은것을 적을순 없으나, 생각하지 못했던 질문들이 들어왔다.
필자는 지원서 기반 꼬리질문 리스트를 약 n*100개 정도 준비했고, 각 시작 질문마다 4,5단계 꼬리질문까지 예상 리스트를 뽑아 추가로 공부하였다.
면접준비를 하면서 새롭게 알게된 지식도 많았다.하지만 막상 면접장에서는 자소서보다 도메인 지식으로 승부를 본 것 같다. 이건 트랙마다/면접관님마다 다른것 같다. 다른 방에서는 자소서 기반 기술 꼬리질문이 대다수였다고 한다. 거의 대부분의 질문이 기본에서 나왔고, 개발자 기술면접과 무척 유사했다.희석된 전공지식들을 떠올리기 바빴다…다행히도 어떻게든 필자의 프로젝트 경험과 엮을만한 질문이 있어서, 멘토님의 질문을 경험과 엮어서 말씀드리는데 성공했고, 대략 10개의 질문중에 1~2개를 제외한 모든 질문에 답변할수 있었다.
……다시 생각해보니 열심히 횡설수설하다가 퇴장한거 같다…
잘한것과 못한것:
잘한것1: 인사를 잘했다. 이게 생각보다 중요하다. 인사는 배우려는 멘티가 갖춰야하는 기본 예의인것이다. 필자는 입장하고 목례, 앉으라는 말씀에 큰소리로 감사합니다, 퇴장할때 면접 기회를 주셔서 감사합니다. 이렇게 했다. 할땐 좀 민망했는데 지금 생각해보면 뭐 어떤가 싶다. 예의바른 청년이 되자.
잘한것2: 멘토님의 질문은 직접적으로 필자의 경험과 연관된것도 존재하였고, 연관되지 않은 내용도 존재하였다. 필자는 대부분의 답변을 경험과 연관지어 어떤 경험에서 어떻게 반응했고, 어떤 결과를 얻었는지 답변드렸다.
잘한것3: 헷갈리거나 잘 모르는 질문에 대해서도 최대한 고민하고 짜내어 답변드렸다. 단, 어설프게 아는척 하지 않고, 알고 있는 범위를 명확히 해서 두괄식으로 답변드렸다.
못한것1: 정량적인 결과를 제시하지 못했다. 심지어 멘토님 한분은 답변을 할때 좀더 수치화된 답변을 해달라고 하셨다. 효율을 끌어올렸으면 그게 얼마나 시간단축을 이뤄낸것인지 미리 준비하자.
못한것2: 괜히 더 의욕적으로 많은것을 답변하려하지 말자. 한문장 한문장이 명확한 문장이면 모를까, 만약 답변에 오류가 존재한다면 오히려 감점 요소이다.
못한것3: 표정관리. 생각하지 못한 질문을 받으면 나도 모르게 인상을 썼다. 이게 어른들이 보시기엔 건방져 보일수 있겠다는 생각이 뒤늦게 든다.
다시 면접을 본다면:
만약 다시 면접을 본다면 이렇게 준비할것 같다.
- 기본을 더 충실히: 프로젝트 관련 기술뿐만 아니라 CS 기본을 의미한다.
- 모든 경험의 결과물을 수치화: 정량적 지표를 답변드리는 것이 중요하다.
- 말을 아끼고 겸손하게 임하자: 돋보이고자 너무 많은 말을 뱉는건 위험하다. 티오가 정해진 다대다 면접은 뛰어난 사람을 뽑는게 아니라 작은 결격사유가 있는 사람을 걸러내기 위한 자리임을 인식하자. 이미 면접까지 왔으면 극히 소수를 제외하곤 스펙이나 지식수준이 비슷비슷하다.
다시 준비를 한다면
더 많은 로우레벨 개발 경험: 소켓프로그래밍, OS개발, 알고리즘 구현 더 많은 리버싱 경험: 커널리버싱 더 많은 사전 연구 리서치: 관심분야와 관련된 서베이 논문과 SOTA 논문 더 집요한 학습태도: 기술의 동작원리 최신 트렌드: 반드시 최신 트렌드와 기술, 이슈등을 숙지해야한다. 등등이 있을것 같다.
