지난 카카오 테크 캠퍼스의 1~3단계(백엔드)를 회고하며 다음 기수를 위한 글을 작성합니다.
**카카오 테크 캠퍼스는 카카오에서 지역 개발자를 양성하기 위해 만든 프로그램입니다.
지원
취준 톡방에서 카카오에서 IT 개발자 양성을 위한 프로그램을 개설한다는 소식을 전해 들었다.
때마침 백엔드를 배우고 싶었고 새로운 자극이 필요한 시점이어서 바로 지원했다.
선발은 다음과 같은 프로세스로 진행되었다.
- 자기소개서 작성 (구글 form)
- 코딩 테스트 (프로그래머스)
- 1,2의 결과를 합쳐서 합격자 선정 (FE 25명, BE 35명 정도 뽑았던 것 같다)
자기 소개서 작성
지원한 이유, 참여 계획, 얻고자 하는 바, 개인 핵심 역량을 서술하라고 하였다. 핵심 역량을 제외하곤 500자 이내 글자수 제한이 걸려있었다. 앞의 내용은 적당히 카카오 테크 캠퍼스 홈페이지에 있는 내용과 나의 진심과 Chat GPT의 문장력을 결합하여 작성했다. 핵심 역량은 이때까지 한걸 조금씩 끌어모아 2600자 정도 작성했다.
코딩 테스트
결론부터 말하면 굉장히 쉬웠다. 프로그래밍을 해본적 있는가?를 묻는 수준이었다. 시험은 이틀 중 본인이 원할 때 프로그래머스에 접속해서 90분간 치면 되었다. 총 3문제였고 Level1 2문제, Leve2 1문제로 구성되었다. 이전에 프로그래머스에서 봤던 문제도 있었다. 시험 기간을 길게 준 만큼 사람마다 문제도 조금씩 달랐다고 했다.
합격
운 좋게 합격했다.
1단계
강의 학습
기본적인 Java와 Spring에 대한 내용을 학습했다. 매주 할당된 패스트 캠퍼스 강의를 학습하고 노션에 정리하는게 과제였다. 강의는 Java 중급 3주
, Spring Basic(남궁성 강사님) 3주
, 대용량 처리를 위한 MySQL 이해 (SNS 클론 코딩) 2주
로 구성되었다.
Spring을 처음 배우기도 하고 정리하는 걸 광적으로 좋아하는 내게는 딱 알맞는 과제였던 것 같다. 다시 보니 뭘 이렇게까지 열심히 했나.. 싶긴 하지만 그때 공부하면서 다른 자료도 찾아보며 실력이 많이 늘었다. 해당 내용은 언젠가.. 이 블로그에 올라갈 예정이다.
Github 관련 특강도 2번 정도 있었다.
학습 일지과 기프티콘
학습일지를 쓰면 스타벅스, 이디야 기프티콘을 선물로 주셨다. 시험기간에도 주셨다. 또한 1~2단계는 개인으로 진행함에도 팀을 만들어줬다. 오프라인으로 만나서 빙고도 하고 이야기도 나누는 시간을 가졌다. 만남비 지원으로 스타벅스 기프티콘, 베스킨라빈스 상품권을 주셔서 맛있게 먹으며 진행할 수 있었다.
1단계에서 가장 기억에 남는 건 수많은 기프티콘과 학습일지였던 것 같다.
다음 기수를 위한 TIP
- 카테캠 노션은 Ctrl-Z가 안된다. 그래서 열심히 작성하고 오탈자 때문에 Ctrl-Z하면 이전에 작성한 내용이 모두 날아간다. 또한 네트워크 또는 이유 없이 갑자기 작성한 내용이 가끔 날아간다. 물론 매니저님께 말씀드리면 복원을 해주시지만 100%는 안되기에 주의 해야 한다.
- 그래서 따로 개인 노션에서 작성하고 옮겨쓰는 걸 추천한다.
- 또한 노션은 export가 괴롭다.. 이후 블로그에 옮길 생각이라면 디자인을 포기하고 마크다운 언어를 기반으로 작성하는 걸 추천한다.
작성자는 땅치고 후회중
2단계
2단계는 1단계보다 훨씬 할게 많았다. 여름 방학동안 한 달 정도 진행됐고 매주 월요일마다 4시간짜리 강의를 들어야 했고 금요일까지 과제 제출을 해야 됐다. 또한 매일 모각코를 통해 아침마다 30분동안 팀원들과 소통하고 자정까지 학습일지를 작성해야 했기 떄문이다.
강의 학습 & 과제 제출
월요일 강의에선 카카오 쇼핑하기 클론코딩을 학습했다. 강의 내용은 1단계를 충분히 학습했음에도 다소 어려웠다. Security에서 깨지고 JPA에서 한 번 더 깨지고 Docker를 보고는 포기했다. 강의 내용이 상당히 어렵고 과제가 추가 구현, 테스트 코드 작성, AOP 적용 등으로 고민할 게 있어서 스프링을 1도 모르는 나에게는 따라가기 살짝 벅찼다.카카오에서 제공한 클라우드인 크램폴린을 통해서 배포했다. 그리고 Live 특강을 2회 정도 진행되었다.
또한 나는 계절 학기 학점을 위해 화~금요일 동안 학교에서 한상곤 교수님의 수업까지 수강하였다. 수업은 N+1문제, TDD 등 실무와 밀접한 내용들을 토대로 밀도 있게 진행되었다.
학습일지는 Todo 리스트와 과제 수행기록, 데일리 스크럼(모각코떄 팀원과 나눈 대화 내용)를 작성해야 했는데 이게 은근 신경쓰이고 하루도 쉬지 못한다는 생각에 힘들었던 것 같다. 그래도 덕분에 하루도 빠짐없이 매일 공부할 수 있어서 도움이 많이 되었던 것 같다.
과제 제출을 Github를 사용했으며 멘토님께 모르는 부분을 질문할 수 있었다. 코드 리뷰도 꼼꼼하게 달아주셔서 꽤 많이 도움 되었다.
또한 나는 참여하지 않았지만 현업 개발자분께 커리어 멘토링을 받을 수 있다.
다음 기수를 위한 TIP
- 여름 방학은 1단계와 달리 예비군이 아닌 이상 어떤 이유로든 출석 인정을 해주지 않았다
- 면접 준비, 코딩 테스트, 해커톤, 경진대회 등 여름 방학에 다른 일정을 안 잡는걸 추천한다.
나는 해커톤 나가서 Live 특강에 참석했다
3단계
아이디어톤
여름방학이 끝나갈 무렵 여수에서 1박 2일동안 아이디어톤을 진행했다. 이번엔 전남대도 함께했고 1 pager 기획서(Problem, Persona, Why, Alternative, Aha Moment, Business Model)를 작성하고 Figma로 와이어프레임을 발표하여 평가받는 시간을 가졌다. 우리 팀은 예비 부부와 웨딩 플래너를 매칭시켜주는 서비스를 기획했다.
특강 몇 번 듣고 강사님, 멘토님의 멘토링을 받으며 아이디어를 구체화하는 시간을 가졌다.
그리고 아이디어톤 주에 생일인 자를 위한 서프라이즈 축하도 있었다. 매니저님의 연기.. 대단하셨다
상은 1,2,3등을 팀당 300만원, 150만원, 10만원 신세계백화점 상품권을 주며 중간에 팀 점수를 위한 음악 Quiz도 준비되어 있었다.
상을 주기전 등수는 공개하지 않고 수상팀을 알려주고 10분정도 3팀의 발표를 들었다. 나도 발표를 했는데 짧은 시간 안에 발표를 준비해야 돼서 대충 임기응변으로 했다. 전남대는 화려하게 준비해온 걸 보고 굉장히 놀랐다,, 전남대 사람들은 다들 분위기도 좋고 말도 잘 해서 신기했다.
우리팀은 3등 상을 수상했다! 상품권 써야 하는데 아직도 안씀…
중간 발표회, 그리고 카카오 아지트 방문
3단계는 중간고사 기간 포함 11주로 이루어져있었는데 3주의 기획 + 8주 개발로 구성되어있었다. 기획 단계 후에는 온라인으로 발표하는 시간을 가졌다. 우리 팀은 기획을 구체적으로 잡기 위해서 매주 2회, 4시간 정도의 회의를 했다. 회의 때는 주로 앞으로 어떤 기능을 개발할 것 인가, MVP는 어떤 것인가, 핵심 가치는 어떤 것인가 등을 얘기했고 중간 발표를 준비했다.
우리팀은 1등이어서 카카오 판교 아지트에 방문할 수 있는 기회가 주어졌다. 기차표부터 춘식도락, 춘식이 인형까지 많은 걸 주셨다..! 카카오 판교 아지트에선 복지시설, 사무 공간들 구경, 부사장님과의 점심, 사내 카페에서 음료 마시기, 스토어 방문을 했다. 부산 사람이다보니 이동 시간이 머무는 시간보다 길어져서 너무 피곤했지만 카카오의 뽕에 잠시나마 취할 수 있었다.
프로젝트 진행
4주차부터 11주차는 개발 기간이었다. 매주 멘토링 + 노션 정리 + 깃허브에 코드 제출하는게 과제였다. 프론트와 연결을 위해 최종 제출보다 2주 일찍 끝내는걸 목표로 했기 때문에 기능 구현은 실질적으로 5주 안에 이루어져야만 했다.
나는 회원, 결제, 찜하기 구현을 담당했고 최종 제출용 리드미, 테스트 시나리오, 결과 보고서를 작성하는 역할이었다. 백엔드 팀 간에는 소통도 잘 되고 역할도 잘 분배돼서 전반적으로 큰 어려움이 없었다. 프론트와도 슬랙으로 계속 얘기하고 안되면 대면으로 만나서 이야기했다. 이전에도 여러번의 팀 프로젝트를 해봤지만 이렇게 열정적인 팀은 처음이어서 놀랐다.. 덕분에 대부분 열심히 해서 좋은 성과를 낸 것 같다. 최종 과제 제출 전날 창지실에서 자정까지 9시간동안 쉬지 않고 해냈던게 아직도 기억에 남는다.
멘토링은 일주일에 1시간 정도간 해결하지 못한 에러, 궁금했던 점을 물어보는 시간인데 우리 멘토님은 성격도 좋으시고 진심으로 대해주셔서 좋았다. 멘토링 내용은 대충 요약하자면 다음과 같다.
- 사전 질문 답변
- 테이블 상속 관계 전략(Single 테이블 전략)
- Soft Delete 적용
- 추가 리팩토링할 내용(객체 메서드를 non-static으로 변경, 컬럼명 snake case로 변경 등)
- 면접 팁 공유
- 면접 질문 관련 참고 사이트 공유
- CORS, 토큰, 기본 CS 등에 관한 내용 등 면접에 자주 나오는 내용 공유
- 기타 내용
- 앞으로 더 개발하게 될 경우 어떻게 대처해야할지도 고민해보기
- 확장성을 고려해서 구현하는 것을 목적으로 하기
- 개발 뿐만 아니라 왜 개발자가 되고 싶은지, 어떤 방향성을 가지고 나아갈 것 인지 등 진로와 관련된 얘기도 해주심
이번 프로젝트를 하면서 개발 뿐만 아니라 문서 작성 능력도 많이 향상된 것 같다. 리드미를 어떻게 잘 작성할지, 테스트 보고서, 노션 정리 등을 거의 내가 담당했는데 이 과정에서 어떻게 하면 다른사람들이 더 잘 이해할 수 있을까.. 고민하면서 꼼꼼히 정리했는데 지금 돌이켜보니 꽤 잘 쓴 것 같아 만족스럽다. 그런데 리드미는 다른 몇몇 팀들이 부분적, 전체적으로 형식을 꽤 많이 가져가서 조금 당황했다.. 😢
최종 발표회
이전에 기획안 발표때는 파트별로 나눴는데 우리팀은 각자 잘하는게 뚜렷해서 역할을 나눠서 만들기로 했다. 나는 PPT 담당이었는데 아무리봐도 잘 만든 것 같다 ㅎㅎ 내용은 기획의도, 주요기능, 차별점, 시연 영상, 기대효과로 구성했다..
최종 발표회는 언어교육원에서 진행됐고 팀당 10분의 발표 시간을 가졌다. 최종 평가는 사전 평가(FE, BE 결과물) + 현장 평가로 이루어졌고 발표회날 결과가 나왔다. 총 2팀을 선발해서 팀원 개인당 100만원씩 준다. 결과는 아쉽게도 수상은 못했지만 멋진 결과물은 남았다 사실 이마저도 내일 사라진다고 한다(배포 이슈)
그래도 프로젝트가 끝난 기념으로 다같이 회식하며 마무리했다. 배포로 고생하셨던 팀원 분께서 편지랑 과자도 주셨는데 진짜 감동이었다. 안그래도 슬럼프 와서 카테캠하면서 힘들었는데 덕분에 힘이 났다. ㅠㅠ
다음 기수를 위한 TIP(지극히 개인적인 의견)
- 카테캠은 개발 기간이 짧기에 체력이 많이 소모됩니다. 2,3단계에는 다른 일정을 잡지 않는 걸 권장합니다.
- 기능 개발은 짧은 단위로 가져가는 걸 추천합니다.
- 너무 많은 기능보다는 적당히 에러 캐칭, 성능을 높여 포트폴리오로 사용할 만한 걸 가져갔으면 합니다.
- 이슈 등을 따로 정리해두세요!
- 카테캠 노션은 프로젝트 종료 후 권한이 제한되기에 개인 노션을 따로 파서 정리한뒤 카테캠 노션에 옮겨두세요!