물론 취미로 하시는 분들도 있으실 것이고 프로그램을 만들고 싶어서 하시는 분들도 많겠지만 이 모든 이유는 취업에서 비롯된 것으로 나중에 어떤 IT계 회사에 들어가기 위해서는 먼저 코딩테스트를 봐야 하고 합격 했을 때 기술면접을 보게 되는데 이때 자료구조에 대해 미숙하다면 불리하게 작용할 수 있기 때문에 굉장히 붙기가 힘들다고 합니다.
코딩 테스트 기술 면접에서 주로 물어보는 질문으로는 다음과 같은 것들이 있습니다.
ArrayList와 LinkedList의 차이를 내부 구현 관점에서 설명해 주세요.
Merge sort의 시간복잡도를 증명해 주세요. (O(nlogn))
등등...
코딩테스트 자체는 복잡한 알고리즘을 구현해 내는데 의의가 있기 때문에 이 과목이 상당히 중요한 것이고 면접 또한 기업에서 요구하는 자질, 즉 중요한 알고리즘들을 자세히 알고 있으며 이를 사용할 수 있는가를 직접적으로 물어보는 것이기 때문에 중요한 것입니다.
2. 현업
그럼 취업만을 위해 이 과목의 지식이 필요한 것인가? 라는 의문을 가지실 수 있는데 이에 대한 답은 당연히 'No' 입니다.
앞서 말한 것처럼 기업이 이에 대한 내용을 면접에서 물어보는 이유는 실제 현업에서 자기가 맡은 일을 잘 할 수 있을 지를 보기 위함으로 아무리 코딩 실력이 좋다고 할 지라도 현장에서는 알고리즘과 자료구조를 모르면 해결할 수 없는 문제들이 존재하고 자료구조의 내부 구현에 대해 미숙하다면 잘못 사용하기 쉽기 때문에 상당히 중요한 과목이라고 할 수 있습니다.