가비아에서 채용 연계형 인턴을 뽑는 공고가 올라왔다.
모바일 채용 공고도 있었는데, 무려 플러터 개발자를 찾고 있었다.
플러터 직무를 뽑는 대기업이라니..
간만에 두근두근했고, 열과 성을 다해 서류를 써서 지원했다.
이윽고 코딩테스트 날짜가 되어 지난 2월 5일 시험을 보고왔다.
썩 잘 본거같지는 않지만.. 코테를 준비할 다른 취준생들을 위해
경험을 공유해봐야겠다 싶어 글을 쓰게됐다.
위와 같이 플러터 개발자를 찾는 모양이었다.
앱개발자를 준비하는 사람이라면 알겠지만,
대부분의 규모가 있는 기업은 앱개발자를 뽑을 때 안드로이드/iOS 개발자만 뽑는다.
그래서 Flutter/RN으로 큰 기업에서 커리어를 시작할 기회는 흔치 않고,
그만큼 놓치면 안된다는 생각이 들었다.
많은 자소서 항목들을 세세하게 적었고, 마감 전에 무사히 제출했다.
주목할만한 부분은 응시 언어이다.
앱 개발자를 뽑는 만큼 코틀린과 자바, 스위프트로만 문제를 풀어야한다.
작년 카카오 모빌리티 코딩테스트도 코틀린 언어제한이 있었고,
곧이어 다룰 현대오토에버 코딩테스트도 코틀린/자바/스위프트 언어제한이 걸렸다.
이제 코딩테스트는 그냥 편한 언어로 보라는 말은 옛말이 된 듯하다.
앱 개발자라면 안드로이드/iOS 자신의 분야에 맞게
코틀린, 자바, 스위프트 중 하나로만 코딩테스트 준비를 해야할 것이다.
시험은 총 3문제였다. 2문제는 단일 문제로 답을 내면 끝나는 문제였고,
마지막 1문제는 효율성 점수를 산출해 특정 점수를 넘기면
후속 문제가 이어지는 연계형 문제였다.
즉, 단일 2문제와 연계문제를 포함하면 대충 5문제 이상을
150분만에 풀어야 하는 것이었다.
아래부터는 문제의 난이도와 내 후기를 간단히 적어보겠다.
맘 같으면 구체적인 풀이 알고리즘도 살짝 공유하고 싶지만..
문제 유출의 범위가 어디까지일지 모르니 최대한 조심해보려한다.
분류 | 예상 난이도 | 구현시간 |
---|---|---|
단일 | 골드1 ~ 플래티넘5 | 10분 읽고 포기 |
이 문제가 가장 어려웠다.
문제가 텍스트로만 적혀있어 일단 이해하는 것부터가 너무 어려웠고,
이해한다해도 막대한 변수 범위와 데이터셋의 크기에 벙찔 뿐이었다..
어차피 나는 못풀었겠지만, 간단한 그림이라도 그려줬다면 이해하기 더 좋았을 것 같다.
아래는 해당 문제의 내용과 테스트케이스를 ChatGPT에게 물어본 내용이다.
1번부터 정말 잔인한 난이도였고, 변별력이 여기서 갈리지 않았을까 싶다.
다행인지 불행인지.. 나는 견적이 나오질 않아서 빠르게 포기하고 다음 문제로 넘어갔다.
분류 | 예상 난이도 | 구현시간 |
---|---|---|
단일 | 골드5 ~ 골드4 | 20~30분 |
이 문제는 어떤 알고리즘을 써야하는지만 파악한다면 구현 자체는 어렵지 않았다.
1번에서 좌절한 사람을 위한 쉼터같은 문제였다.
분류 | 예상 난이도 | 구현시간 |
---|---|---|
연계 | 실버1 | 50분 |
3번 문제는 다 풀고 효율성 점수를 확보해야 다음 문제를 풀 수 있었다.
문제는 얼핏 보면 어려워 보였지만, 뜯어보니 구현만 잘하면 되는 문제였다.
다만, 내 기준에서 굉장히 애매한 표현이 있었어서 이해하는데 긴 시간을 썼다.
예를 들어 '+' 라는 연산자를 생각해보자.
'+' 연산자가 성립하기 위해서는 무엇과 무엇을 더할지 두 대상이 있어야한다.
즉, '1에 +를 해라'라는 표현은 대체 1에 무엇을 더하라는건지
확실하지 않기에 성립할 수 없는 표현이다.
바로 3번 문제에 이런 표현이 포함되어있어, 이해하는데 애를 먹었다.
물론 위에서 비유한 '+'라는 연산자에 내가 모르는 의미가 있었다면,
해당 의미를 공부해놓지 않은 내 역량이 부족한 것이므로 문제를 비난하지는 않겠다.
다만, 해당 연산자의 의미를 쉽게 알 수 있게
사례를 한가지라도 남겨줬다면 더 좋았겠다는 아쉬움이 남는다.
무튼 주어진 테스트 케이스로 거꾸로 추론해 해당 연산자의 의미를 파악했고,
이를 통한 구현으로 적정 점수를 넘겨 두번째 연계 문제를 풀 수 있었다.
분류 | 예상 난이도 | 구현시간 |
---|---|---|
연계 | 실버1 | 40분 |
두번째 연계문제는 큰 문제없이 잘 풀어넘겼다.
다만 디테일한 구현이 필요해서 코딩하고 디버깅하느라 시간을 좀 썼다.
분류 | 예상 난이도 | 구현시간 |
---|---|---|
연계 | 실버2 | 20분 |
마지막 문제도 구현 자체는 어렵지 않았다.
그래서 테스트 케이스는 잘 넘겼는데,
제출해보니 효율성 점수에서 기준을 넘지 못했다.
결국 문제를 찾지 못한 채로 시간이 끝나버렸다..
나는 3-3번을 넘기지 못해 여기서 끝났지만,
효율성 점수를 제대로 받은 사람들은 다음 문제로 넘어가지 않았을까 싶다.
문제가 전체적으로 다소 이해하기 어려운 부분이 있었다.
그림이나 다이어그램을 보여주거나,
상세한 테스트 케이스 설명(특정 input에서 어떻게 답이 나오는지 그 과정)이
있었다면 좀 더 다른 부분에 신경을 덜 쓰고
알고리즘 구상이나 구현에만 집중할 수 있었을 것 같다.
뭐 어쨌든 이것조차 내 역량 부족이니 어쩌겠나..
더 꼼꼼하게 코테 준비를해서 다음 시험에서는 더 잘봐야겠다.
또 다시 한번 강조하지만, 코테 준비할 때 직무에 맞는 언어 꼭 준비하길 바란다!!
25.02.12 추가
결국 서류에서 떨어졌다.
코테 점수에서 떨어진것인지, 코테 점수는 합격선인데 서류탈락인지는 모르겠다.
다음에 가비아 지원하는 개발자가 있다면 참고하시라..
골드1~플레5면 난이도 살벌하네요..