1. 서류 합격
퇴사 직후에 반신반의하며 서류를 제출했고, 당연히 서류 탈락할 거라 생각해서 여행 계획을 짜며 시간을 보내고 있었다.
근데 서류 합격? 신기하고 새로운 도전이라는 생각에 두근두근하기도 했다.
5월 5일에 제출했고, 5월 10일에 서류 합격 메일이 도착했다.
문자로도 왔다는데, 스팸 차단 앱이 필터링해버려서 난 뒤늦게 확인했다 ㅠㅠ
2. 사전 과제 전형
안드로이드는 백엔드 직군과는 다르게 사전 과제 전형이다.
코테 연습은 작년에 하다 새로운 프로젝트 들어가면서 멈춰있던 상태라, 나에게는 천만다행이였다 ㅠㅠ
사전 과제는 5월 11일 오전 10:00 ~ 5월 16일 오후 11:59 까지 진행되었는데, 석가탄신일이 끼어있어서 하루가 늘어난 것으로 보인다.
다른 포스팅들을 보면 과제 전형에 보통 5일을 주는 것 같은데 이번에는 6일이 주어졌다.
5월 11일 오전 10시에 메일로
1. 과제 설명(요구사항)
2. 개발 요건
3. 주의 사항(유출 금지)
4. 제출 방법 및 문의 방법
이 담긴 이메일이 한 통 오는데, 이걸 참고해서 과제를 진행하면 된다.
코딩테스트 전형은
(1) 시간
(2) 몇 솔인지
(3) 테스트 케이스 통과 여부
등과 같은 객관적인 지표가 있지만, 과제 전형은 실무진들의 평가만으로 합불이 결정된다.
이는 곧 ”풀어본 문제가 나오는 경우“라는 운적인 요소가 “결과에 영향을 미치기 힘들다”라고 해석할 수 있고,
이에 따라 해당 분야에 대한 이해도와 코드 작성 능력을 넓은 범위에서 평가 받을 수 있다는 것을 의미한다.
나는 퇴사 직전에 시리즈 B~C 정도 되는 스타트업의 사전과제를 해 본 경험이 딱 한 번 있었다.(탈락함 ㅠㅠ)
이 때와 비슷하게 API 호출 및 화면에 보여주는 전형적인 안드로이드 과제였다.
과제 내용을 보고 이틀 정도면 가능한 과제라고 생각이 들었기 때문에,
"이건 확실하다. 구현만 했다고 통과시켜주지 않을 거다."라는 생각이 아주 명확하게 들었다.
이미 탈락의 경험이 있었기 때문에, 이번 과제에서는 회사의 규모에 기반해서 가설을 세우고 전략을 수립했다.
[가설]
1. 단순 기능 구현만으로는 카카오뱅크가 내 과제를 통과시켜줄 이유가 없지 않을까?
2. 카카오뱅크는 서비스의 규모가 크고, 카뱅 플러스의 포스팅들을 읽어봤을 때 구조적 이해도(아키텍처)가 있으면 어필이 될 것 같다.
3. 유지보수성, 재사용성, 테스트 용이성에 높은 가치를 둘 것 같다.(서비스 규모도 크지만, 카뱅 소개글을 읽다 발견한 "수많은 테스트 코드를 통해 안정적인 서비스를 제공한다"는 문구에 기반)
[전략]
1. 내가 사용하던 기술들보다는 카카오뱅크에서 실제로 사용하는 기술들을 사용할 것
2. 아키텍처 설계 단계에 리소스를 많이 투자할 것
3. DI 라이브러리 활용을 극대화할 것
[과제 진행 과정]
1. 기능 요구사항 도출
2. 디자인 요구사항 정리
3. 레이아웃 작성 및 리소스 파일 작성
4. 도메인 계층
5. 데이터 계층
6. 프레젠테이션 계층
위 순으로 진행했다. 작은 규모의 프로젝트라 멀티 모듈과 유지보수성을 챙기는 방법은 오버 엔지니어링이라 생각했으나, 나는 서류부터 부족했다 생각했기 때문에 가능한 모든 것들을 시도해야 했다.
난 목요일 저녁에 일정이 있어서 오후에 서둘러 제출했다 ㅠㅠ 좀 더 정리해서 제출했어야 했는데..
[아쉬운 점]
1. 클래스 파일만 60개가 넘는다.
신경써야 할 영역이 넓어서 변수명/메소드명/클래스명/파일명 등을 일관성 있게 작성하지 못했는데, 이 부분이 정말 아쉽다. 더블 체크 했지만 막판에 또 무리해서 구조적인 수정을 하고 나서는 체크하지 못했다 ㅠ
주니어 개발자에게 필수적인 역량 중 하나라고 생각하는 "꼼꼼한 일처리" 부분의 점수를 많이 까먹는 실수였다.
2. 의존성 역전 원칙이 핵심인 아키텍처에서, 의존성 역전 원칙을 적용하지 못한 부분이 한 군데 있었다.
면접관님들에게 아키텍처를 고안한 사람의 의도를 깊이 있게 파악하지 못했다는 인식을 심어줬을 것 같다...
3. 아키텍처 설계에 무게를 두다보니, 코드 정리를 깔끔하게 하지 못했다.
더 이상 사용하지 않는 메소드나 변수 등을 전부 정리했지만, 왜 제출하고 나서 발견되는 것들이 있을까? 앞으로는 쿼드러플 체크를 해야겠다. 아예 하루를 프로젝트 정리하는 기간으로 두는 것도 좋을 것 같다.
그렇게 5월 16일 오후 3시에 과제를 제출했다.
3. 사전 과제 합격
사실 카카오뱅크 안드로이드 개발자 분들이 직접 과제를 심사하시는 걸로 알고 있고,
지원자 수가 굉장히 많아서 과제 전형도 떨어질 것이라 생각했다.
회사 입장에서 큰 리소스를 들여 면접을 진행해야 하는데, 내 코드가 그럴 가치가 있을까?
난 그냥 스타트업 주니어 개발자였을 뿐인데..라는 생각이 컸던 것 같다.
시니어 개발자도 없는 팀에서 코드 리뷰 문화도 없고, 프로젝트 구조 설계나 초기 설정도 모두 혼자 도맡아 했으며, 내 지식, 코드, 설계 등 그 무엇에도 확신이 없는 채로
오롯이 혼자 학습하고 성장해왔기 때문에 나에 대한 확신이 없는 게 또 한 번 느껴졌다.
하지만 마음 한 편으로는 "내 코드를 카카오뱅크 개발자들이 봐주신다고?"라는 생각에 조금 설렜다.
과제를 탈락한다면 내가 정말 노력했는지 스스로 되돌아봄으로써 개선점을 찾을 수 있을 것이고
합격한다면 그래도 나 좀 열심히 했나봐라는 생각으로 더 구체적인 방법들을 찾아 열심히 할 수 있을 것 같아서이다.
그러다 5월 23일 오후에 메일/문자로 과제 합격 연락이 왔다.
사실 내가 이번 하이라이트 채용 과정에서 얻은 가장 큰 수확은 과제 전형 합격인 것 같다.
나에게는 카카오뱅크로부터 "이런 구조/코드라면 리소스를 들여 면접을 한 번 볼 가치는 있겠다"는 평가를 받은 것과 같았고, 카카오뱅크 안드로이드 실무 개발자 분들이 평가한다고 알고 있기 때문에 더욱 기뻤다.
그래도 올바른 방향으로 노력해오고 있었구나 라는 생각이 들면서
내가 한 노력들이 휘발되지 않았구나, 내 코드에 녹아들어 있구나라는 안도감이 들었다.
1차 면접 편으로 이어집니다!
'일상 > 이직 과정 기록' 카테고리의 다른 글
(2) 카카오뱅크 안드로이드 하이라이트 채용 후기 - 1차 면접 (2) | 2024.06.17 |
---|---|
안드로이드 개발자 퇴사 회고 (1) | 2024.06.17 |