자료구조와 알고리즘을 공부해야 하는 이유

1. 기초 코딩 능력 항샹

자료구와 알고리즘을 공부하면 기초 코딩 능력이 향상된다. 여기서 말하는 기초 코딩 능력은 특정 라이브러리나 프레임워크를 잘 쓰는 능력이 아니라 기초 적인 논리적 사고능력을 바탕으로 문제를 얼마나 잘 해결하는지를 말한다.

그만큼 코딩은 문제 해결 능력이 중요한데 문제 해결 능력은 아래의 3가지로 세분화 할 수 있다.

  • 논리적 사고

  • 전산화 능력(현실의 문제를 소프트웨어 세계로)

  • 엣지 케이스(예외 상황) 탐색


2. 자료구조와 알고리즘은 변하지 않는다.

최단 거리 알고리즘으로 많이 쓰이는 다익스트라 알고리즘은 1956년도에 만들어졌지만 지금까지 유용하게 사용되고 있다. 이렇게 한 번 배워두면 두고두고 쓸 수 있다.

프론트앤드 쪽을 보면 웹 트랜드는 계속 바뀌었다. 현재 프론트앤드의 대세는 리액트, 뷰라고 할 수 있지만 앞으로 몇 년 뒤 어떤 새로운 트랜드가 리액트와 뷰 자리를 대체할지는 누구도 모른다. 그래서 변화하는 흐름에 따라 꾸준한 공부는 필수이다. 하지만 자료구와 알고리즘은 개념이 변하지 않기 때문에 잘 배워두면 필요한 여러 곳에서 유용하게 사용할 수 있다. 트랜드가 바뀌어도 문제를 해결하는 과정은 변하지 않을테니.


3. 실무에서도 쓰인다.

지금 내 상황만 봐도 자료구조와 알고리즘은 코딩 테스트를 위해 공부한다. 하지만 더 나아가 실무에서도 많이 쓰인다고 한다. 한 가지 예시로 100만 개의 고객 데이터를 최신으로 업데이트하기 위한 배치 작업을 해야 하는데 적합한 자료구와 알고리즘을 사용하냐 사용하지 않느냐에 따라 소요되는 시간이 확연하게 차이가 났다고 한다.

  • 100만 개 데이터를 매번 순회하여 고객을 찾은 후 업데이트, 없으면 추가: 5일 넘게 소요

  • 해시 테이블과 링크드 리스트를 이용하여 데이터 구조를 변경 후 이진 탐색 알고리즘 적용: 20분 소요


4. Conclusion

과거에는 "여러 라이브러리를 사용할 줄 알고 리액트를 잘 다룰 줄 만 알면 되지 않느냐"고 생각을 해서 코딩 테스트에 대한 관심이 아예 없었다. 하지만 개발자로 취업을 도전하는 입장에서 다른 사람들이 모두 도전하는 프로그래머스 기준 Level1, Level2 문제는 한 번 풀어보자라는 생각을 가지게 되었다. 이후 스터디를 시작하였고 지금까지 20문제 정도 풀어보았다. 정말 간단한 논리적 사고만 필요한 문제는 후딱 풀어냈지만 조금이라도 복잡한 문제라면 해답을 찾기 위해 굉장히 많은 시간이 필요했다. 이는 내가 얼마만큼 자료구조와 알고리즘에 대해 알고 있느냐에 따른 차이로 생각을 한다. 이로 인해 공부의 필요성을 느끼게 되었고 수학 논문을 분석하면서 까지의 공부는 아니더라도 개발 실무에서 자주 사용되고 문제를 해결 하는데 유용하게 사용되는 자료구와 알고리즘 정도는 배우고 개발자 취업에 도전을 해야겠다는 생각을 하게 되었다.

무엇보다 코딩 테스트 공부를 하면서 이전보다 문제 해결 능력이 향상되는 느낌을 받아 꾸준히 공부하면 좋은 결과가 있으리나 생각된다.


참고

자료구조와 알고리즘, 왜 중요할까? 프로그래머스 강의 - 코딩 테스트 광탈 방지 A to Z : JavaScript


📅 2022-08-21

Last updated