면접관과 아키텍팅 테스트 1:1로 한시간 아키텍팅 관련된 테스트를 보았다.
문제는 단순했다. 쇼핑몰에서 트래픽이 피크를 치는 것을 대비하는 아키텍처를 구상해봐라.
나는 REDIS와 DB를 이용한 간단한 CQRS 아키텍처에 대해서 설명했는데, 솔직히 말하면 좀 구체적이 못한 답변을 한 것 같다. 어떻게 보면 스스로 문제를 더 특정지어서(쪼개서) 그 문제에 해당하는 해결책을 제시하면 더 좋았을 거 같은데, 질문을 쪼개지 못한것 같아서 아쉬웠다.아마 그렇게 했으면 실제 상황에 대한 경험이나 기술에 대한 노하우를 더 이야기 할 수 있었을 것이다.
그러나 아직 그정도로 변동이 심한 트래픽을 경험해보지 못해서 할말이 별로 없긴 하다.
1:1 코딩테스트 경험에 대해서 1:1로 하는 코딩테스트는 생각보다 피면접자의 많은 것을 확인할 수 있다는 것을 깨달았다.
- 커뮤니케이션 능력
- 문제 접근 방식
- 문제 해결 능력
아마 앞으로 많은 회사들이 채용 과정에 이 방식을 채택할 것이라는 생각을 하게 되었다. 그리고 C사가 실리콘 밸리의 문화들을 많이 가져왔다고 알고 있는데, 해외 취업에 관심이 있다면 이 방식에 대한 훈련이 많이 필요할 것이다.
이 글을 보는 사람들에게 꼭 해주고 싶은 말은 추천하는 것은 더 자유롭게 이야기하면서 문제를 풀어보라는 것!
... 문제를 푸는 과정에서도 체계적인 프레임워크를 보여주지 못한것이 아쉬웠다. 그냥 머리부터 달려들어 푸는 것이 아니고, 문제에 대해서 이해하고 어떻게 풀지 계획하고 차근 차근 검증하는 자신만의 프레임워크를 보여주지 못했다. 어찌보면 준비와 훈련이 부족한 게 여실히 들어난 것으로 보인다. 만약 다시 보게 된다면 침착하게 다음의 순서대로 문제를 풀 것 같다.
문제를 소리내 읽는다. 문제에 대해서 설명한다. 해결책에 대해서 생각한다. 해결책을 설명한다. 효율성을 높일 포인트(알고리즘)을 설명한다. 효율적인 솔루션을 생각 못했으면 그냥 효율성이 낮아보여도 그 방식을 설명한다. 엣지 케이스를 포함한 테스트 케이스를 먼저 정리한다. (이미 되어있다면 그냥 문제를 풀고 없다면 바로 검증가능하도록 코드를 작성한다.) 케이스 하나하나 커버하도록 문제를 푼다. (구현한다) 이 프레임워크는 일할때도 충분히 적용가능할 것이다.
출처: https://www.reimaginer.me/entry/C사-시니어-레벨-개발자-채용-과정에-대한-회고 [Reimaginer]