일단 초반부에선 필자가 어떤 길을 걸어왔고
무슨 생각으로 부스트캠프에 지원했는지를 서술할 계획이오니,
'닥치고 합격 후기 내놔라'
하시는 분들은 스크롤을 내려서 확인하시기 바랍니다.
3줄 요약도 있음
이전 회사에 입사 지원 하면서 제출했던 자기소개서의 일부를 소개하고 싶다.
[31살, 인생의 전환점: 프로그래밍]
...(중략)...
그러던 2020년 1월 퇴사 이후, 휴식기를 가지며 정말 제가 좋아하고 잘 할 수 있는 일이 무엇이 있는지 고찰하다, 관심은 많았지만 섣불리 시작하지 못했던 프로그래밍에 도전해보자는 생각이 들어 Python을 독학하게 되었습니다. 내가 필요로 하는 프로그램을 직접 만들어 사용할 수 있다는 점에 즐거움을 느꼈고, 잘못 작성한 코드를 수정하여 정상적으로 작동하게 만들었을 때의 희열이 잊혀지지 않아 제대로 배워야겠다는 생각을 하게 되어 Java와 Python을 활용한 빅데이터 관련 직업훈련을 받게 되었고, 관련 자격증인 정보처리기사에 응시하여 최종 합격까지 이룰 수 있었습니다.
...(후략)...
그렇다.
그냥 코드짜고 그 코드가 제대로 돌아가는게
그저 즐겁기만한 변태라서 그렇다.
To be honest
, 부캠 수료하면 '짜자잔'하고 ML/DL 엔지니어가 될 수 있을 것만 같았다.
조금 더 보태보자면, Backend Engineer로 근무하면서 봤던 ML Engineer들은 연차가 비슷해도 돈을 더 받아가는 것 같아서 내심 부러웠던 것도 있다.
그리고 그 지식 수준은 언제나 내 선망의 대상이었다.
더군다나 입사 동기였던 6살 어린 동생(갓 대학교 졸업하고 입사)한테 부스트캠프 얘기를 꺼냈더니, 그냥 극찬이 쏟아졌다.
'지인 중에 부캠 수료한 사람이 있는데, 어지간해선 서류는 다 통과하고 회사 골라가는 느낌이다' 부터, '커리큘럼도 탄탄하고 국내에선 최고 수준이라고 봐도 된다' 등등 사람 구미 당기게 영업을 굉장히 잘했던 것 같고, 나도 영업을 잘 당해버렸다.
(ML/DL 분야에서 석사가 우대되는 이유는 부캠을 헤쳐나가면서 자연스럽게 체감하게 되니 너무 걱정하지 않아도 된다..)
Anyway, in short words
, 똑똑해져서 돈 많이 벌고 싶었다.
첫 번째 이유는 그냥 '친숙해서'이다.
왜 이렇게 싱겁냐고 할 수 있겠지만, 항상 이럴 때 나오는게 어깨 너머로 배운 도둑질 아니겠는가.
예전 회사에서 했던 업무가 그저 Backend에 한정된 것이 아니라 인공위성 영상(Image) 정보를 처리해야 했는데, 덕분에 np.array()
라거나 cv2.imread()
같은 라이브러리와 함수들을 꾸준히 다뤄 어느 정도 친숙했던 상태였다.
이 것은 곳 두 번째 이유와도 연결되는데, 같은 팀 팀원이라고 BE(나), FE(후배), CV(동기) 이렇게 3명 있는 와중에 CV 엔지니어가 인도 사람이었기 때문이다.
'CV 엔지니어가 인도 사람인게 뭐 어쩌라고?'
이 정도면 충분히 납득할만한 이유가 됐으리라고 생각된다.
얘랑 담배피러 나갔다가 들어오면서 Small-talk
으로 듣게되는 CV
관련 지식은
업무 효율에도 엄청나게 긍정적인 영향을 끼쳤고,
시간이 지나면서 자연스럽게 Computer Vision
이라는 도메인에 관심을 가지게 된 것이다.
그래서인지 필자는 NLP
, RecSys
는 아얘 거들떠도 안보고 CV
를 선택했다.
Ex 회사를 퇴사한 날짜는 datetime.date(2022, 2, 28)
로, AI Tech 3기 모집이 끝나고 한 달 정도 지난 시점이었다.
당시에는 고장난 몸 때문에 한참 병원을 다닐 때라
휴식이 필요했고, 4기를 준비하기로 결정했다.
그렇다면 다음 기수는 대략 언제쯤 모집을 시작하는지 파악해야하지 않겠는가?
우리 Engineer들은 언제나 Data
에 기반한 분석을 해야한다.
이제 이전 기수들의 모집 시기를 찾아보자
"""AI Boostcamp 1기"""
start_date = datetime.date(2021, 1, 18)
end_date = datetime.date(2021, 6, 25)
period = end_date - start_date # 158
# 159일 중 110일 / 주말: 44일
# 연휴: 구정(5일), 삼일절, 휴식(03.23.~26./4일), 어린이날, 석가탄신일, 마지막 3일
# 자가진단 테스트: https://blog.naver.com/boostcamp_official/222142410782
apply_start = datetime.date(2020, 11, 16)
apply_end = datetime.date(2020, 12, 14)
ai_test = datetime.date(2020, 12, 16) # BAT(부스트캠프 AI 테스트)
coding_test_1st = datetime.date(2020, 12, 22) # 화요일
coding_test_2nd = datetime.date(2021, 1, 5) # 화요일
announce = datetime.date(2021, 1, 8)
hrd_apply_start = datetime.date(2021, 1, 11)
hrd_apply_end = datetime.date(2021, 1, 15)
# 합격수기: https://zhonya-j.tistory.com/11
(나름 변수명 이해하기 쉽게 잘 적어놨으니 찬찬히 보시길..)
"""AI Boostcamp 2기"""
start_date = datetime.date(2021, 8, 2)
end_date = datetime.date(2021, 12, 27)
period = end_date - start_date # 147
# 148일 중 100일 / 주말: 42일
# 연휴: 광복절(대체), 추석(3일), 개천절(대체), 한글날(대체)
# 자가진단 테스트: https://blog.naver.com/boostcamp_official/222345119688
apply_start = datetime.date(2021, 5, 12)
apply_end = datetime.date(2021, 6, 13)
coding_test_1st = datetime.date(2021, 6, 17) # 목요일
coding_test_2nd = datetime.date(2021, 7, 2) # 금요일
announce = datetime.date(2021, 7, 13)
orientation = datetime.date(2021, 7, 16)
precourse_end = datetime.date(2021, 8, 1)
2기에는 AI 테스트가 없었다.. 뭔가 찝찝했다.
"""AI Boostcamp 3기"""
precourse_start = datetime.date(2021, 10, 25)
precourse_end = datetime.date(2022, 1, 16)
# Precourse 링크: https://www.boostcourse.org/onlyboostcampaitech3
start_date = datetime.date(2022, 1, 17)
end_date = datetime.date(2022, 6, 15)
period = end_date - start_date # 149
# 150일 중 100일 / 주말: 42일
# 연휴: 구정(3일), 삼일절, 대선, 어린이날, 지방선거, 현충일
# 자가진단 테스트: https://blog.naver.com/boostcamp_official/222543585249
apply_start = datetime.datetime(2021, 10, 25, 11, 00)
apply_end = datetime.datetime(2021, 12, 6, 10, 00)
ai_test_1st = datetime.datetime(2021, 12, 10, 19, 00) + datetime.timedelta(hours=2) # 금요일
precourse_duedate = datetime.datetime(2021, 12, 13, 18, 00) # Pre-Course 수료증 제출 시 선발 심사 우대
ai_test_2nd = datetime.datetime(2021, 12, 18, 13, 00) + datetime.timedelta(hours=2) # 토요일
announce = datetime.datetime(2021, 12, 29)
hrd_apply_start = datetime.date(2021, 12, 29)
hrd_apply_end = datetime.datetime(2021, 12, 31, 17, 00)
갑자기 테스트 명칭이 코테에서 AI 역량 테스트
로 바꼈다.
그리고 date
객체였던 정보들이 datetime
으로 무더기로 변경됐으며
Pre-course 수료증 제출 시 심사 우대가 있다고 한다.
(남들 다 제출하는 수료증, 제출 안하면 감점이라고 생각하는게 속 편하다)
아무튼 이렇게 자료를 종합하고 보니, 대략적인 4기 모집 일정의 윤곽이 잡혔다.
"""AI Boostcamp 4기 예상"""
apply_start = datetime.date(2022, 6, 13)
apply_end = datetime.date(2022, 7, 15)
아직 한참 남았네? 싶어서 로스트아크
를 굉장히 열심히했다.
게임만 하다보니 똥줄이 타기 시작했고, 4기 오픈 채팅방에도 사람들이 하나 둘씩 들어오기 시작했다.
멍하니 넋놓고 있을 수 없어서 코테 스터디에 참여하기로 했다.
스터디라는 건 대학교 다닐 때 조차 단 한 번도 해본 적이 없었던 데다가, 코딩테스트 준비였기 때문에 굉장히 긴장됐던 것 같다.
생각날 때마다 백준이나 프로그래머스에서 한 두 문제씩 풀고 블로그에 정리했었는데,
스터디장이 지원자가 많다며 뭐든 좋으니 코딩 실력 보여줄 수 있는 걸 달라고 하길래
블로그 주소를 줬었던 기억이 난다.
다행히 스터디장은 내 블로그 포스팅에 만족했고... 그렇게 모인 7명이 스터디 일정을 세우게 되는데, 백수 나부랭이였던 필자는 오전팀에 지원해서 오전팀 3명 / 오후팀 4명으로 나뉘었다.
이 때 오후팀은 스터디를 하는지 안하는지 모를 정도로 조용했고, 오전팀(스터디장, 나, 미래의 캠퍼 1명)은 주 3회 각자 2문제씩 매주 총 18문제를 한 달 가량 공부했다.
(나중에 들어보니 오후팀은 리드하는 사람이 없어서 파토났다고 했었다)
프로그래머스 Level1
부터 시작했고, 끝날 때 쯤 되니 Level2
문제를 거의 다 풀었던 걸로 기억한다.
한참 코테 스터디 + 로스트아크로 하루를 보내던 중, 한 통의 이메일을 받았다.
우리 Engineer들은 언제나
Data
에 기반한 분석을 해야한다.
명심하자.
"""AI Boostcamp 4기"""
precourse_start = datetime.date(2022, 6, 20)
precourse_end = datetime.date(2022, 9, 19)
start_date = datetime.date(2022, 9, 19)
end_date = datetime.date(2023, 2, 14)
period = end_date - start_date # 148
# 149일 중 100일 / 주말: 42일
# 연휴: 개천절, 한글날(대체), 휴식(12.28. ~ 30. / 3일), 구정(1.23. ~ 24. / 2일)
# 자가진단 테스트: Pre-course로 병합
apply_start = datetime.date(2022, 6, 20)
apply_end = datetime.datetime(2022, 8, 1, 10, 00)
ai_test_1st = datetime.datetime(2022, 8, 4, 19, 30) + datetime.timedelta(hours=2) # 목요일
precourse_duedate = datetime.datetime(2022, 8, 7, 23, 59) # Pre-Course 수료증 제출 시 선발 심사 우대
coding_test = datetime.datetime(2022, 8, 20, 14, 00) + datetime.timedelta(hours=2) # 토요일
announce = datetime.date(2022, 8, 26)
다른 사람들은 어떤지 모르겠는데, 나는 지원서 작성이 굉장히 중요하다고 생각했다.
를 잘 어필한다면 분명 좋은 결과가 있을 것만 같다는 느낌적인 느낌이 있었다.
그래서 후기들을 찾아보며 지원서 예상 서술 항목을 미리 작성해놓고 여러번 검토했다.
(나중에 알게 된 사실이지만 지원서 서술 문항은 유출하면 안된다. 그래서 나도 안알랴줌)
아니나 다를까 500자 내외 2~3문항은 준비했던 내용에서 크게 다르지 않았고,
모집 공고가 올라온 지 몇시간 지나지 않은 시점에 바로 지원서를 낼 수 있었다.
사실 이 부분은 입사 지원에서도 비슷하다고 생각한다. 채용공고 올린지 얼마 안됐는데 회사를 잘 알고 있는 것 같은 녀석이 준비 착실히해서 지원했으면 나쁘게 볼 수가 없다.
기수가 거듭될 때마다 테스트의 이름이 바뀌어서 헷갈릴 수도 있는데, 그냥 1차 코테 + AI 기초지식 평가이다.
솔직히 7차 교육과정에서 수학을 들었던 문과생 입장으로는 (미적분 안배움) 선형대수
가 진짜 지옥처럼 느껴졌다. 특히 국문과 공대생님 블로그 합격 후기 이거 보고 지레 겁을 집어먹어서 책을 무더기로 샀던 것 같다.
그냥 Pre-course 열심히 듣고 (진짜 중요하다. 프리코스만 잘 듣고, 이해 안되면 달달 외우기만 해도 어지간하면 다 풀 수 있음), 이해가 잘 안된다 싶으면 YouTube
를 잘 뒤져보자.
(개인적으로 이상엽 수학 도움을 많이 받았다. 선생님 감사합니다 ㅠㅠ)
그 외적으로 코딩테스트 준비도 해야하는데, 스터디에서 준비하는 부분에 더해서 자료구조 + 알고리즘
을 보강해야 겠다고 생각했다. 그래서 누구나 자료 구조와 알고리즘 이 책으로 공부했는데, 절반 정도 밖에 읽지 못한 상태에서 코테를 친 건 함정이다.
어느 후기를 보던 간에 CNN
, RNN
문제는 무조건 나온다고 했고, Pre-course 들으면서도 중요하다고 생각했고. 여지없이 문제로 나왔다.
솔직히 수학 + AI 기초지식은 걱정했던 거에 비하면 쉽게 나왔는데, 코테가 진짜 어려웠다.
5문제 나왔는데 2문제는 체감상 백준 Gold+
느낌이었다.
(나머지는 쉽게 풀었던 것 같다. 대충 예상하기로 2~3솔 컷)
조졌다고 생각했지만, 고작 1차 평가로 사람을 대거 탈락시킬 것 같은 느낌이 들지 않았다.
나는 '역량이 미달인 사람을 걸러내겠다'라는 말을 할 수는 없으니 저렇게 말하지 않았을까 싶었기에, 한 줄기 희망의 끈을 놓지 않고 일단 2차 코테를 준비하기 시작했다.
재수가 좋았던 것일까, 1차 심사 합격 이메일을 받을 수 있었다.
하지만 이메일을 받은 시점부터 1주 뒤가 바로 코테라서 심적으로 압박이 느껴졌고, 우리 코테 스터디 다른 멤버들도 마찬가지였다.
이 때 만큼은 로스트아크 접속시간을 대폭 줄이고 코테 문제 풀이에 집중했다.
알고리즘 책도 틈틈이 보고 있었지만 독파할 시간은 부족하다고 생각해서 만능툴 YouTube
를 또 소환했다.
총 8문제가 나왔는데, 안타깝지만 어떤 유형이 무슨 난이도로 나왔는지 너무 오래돼서 기억이 안난다.
(이 글을 읽고 있을 정도라면 다른 블로그에서 해당 정보를 이미 봤을 것이라 믿어 의심치 않음)
문제는 이 날 점심에 너무 배고파서 불닭볶음면을 먹었다는 건데, 시험 치르다가 염라대왕이랑 백화수복 대작할 뻔했다.
총 2시간 중 40분 만에 5문제 후닥닥 풀고 1시간 땡
하자마자 시험 종료 누르고 화장실로 달려갔다.
그 순간 '지리지 않았다'라는 안도감과, '이번에는 진짜 조져버리고 말았다' 라는 탄식이 복합적으로 느껴졌고, 시험이 완전히 끝나고 나올 다른 사람들의 후기가 궁금해졌다.
여지없이 시험이 끝나자마자 오픈채팅방은 불타기 시작했는데, 문제를 분석하는 사람들과 채팅방을 나가는 사람들의 희비가 교차하는 장면이 아직도 뇌리에 남아있다.
와중에 몇문제 풀었는지 트랙별로 조사하는 설문이 올라왔는데, NLP
, RecSys
에 비해서 CV
의 평균 점수가 상대적으로 낮다는 걸 알 수 있었다. 이유를 정확히 알 수는 없으나, 아무래도 모수가 크다보니 전체적인 분산도와 편차가 크다고 해석할 수 있는 여지가 있다고 본다.
(당시에 캡쳐해놓은 설문조사가 KDT전형 전체를 대상으로 하는 것 밖에 없어서 죄송)
5솔이라는 애매한 성적에 전전긍긍 하고 있었는데, 스터디장의 상태가 좋지 않았다.
평소의 예리하고 자신감 넘치던 모습은 어디가고, 잘 못풀었다는 안타까움에 실망이 가득 찬 모습만 남아서 나까지 안타까웠었다.
그 와중에 스터디 내 다른 1명의 예비 캠퍼
는 무려 7솔을 해냈다.. 주력 언어가 Java
였고 Python
은 우리 스터디 시작하고 본격적으로 한 거라던데, 기본적으로 감각이 좋은 사람인 것 같았고 나중에 본 과정에서 질문하는 내용들을 보니 그 생각이 틀림없이 맞았다고 생각했다.
문을 닫고 합격했건 문을 열고 합격했건, 붙었으면 붙은 거다.
Level1
에서 어떤 것들을 배웠나Level1
에서 어떤 사람들을 만났나Level1
때 멘탈이 가출했던 이야기