Post

백엔드 커리어 로드맵 - 백엔드 신입 개발자가 쌓아야 하는 역량 - 자료구조/알고리즘/코딩테스트편

1. 자료구조

  • 자료구조는 다루려는 데이터를 좀더 효율적으로 사용하기 위해 사용한다
  • 예시를 들자면, 스택, 큐, 트리, 그래프, 해시 등이 존재한다.
  • 스택이라면 LIFO, 큐라면 FIFO, 트리라면 계층 구조, 그래프는 노드와 간선이 고루고루 연결된 구조
  • 위 자료구조들은 데이터를 다루기위한 각자 고유의 컨셉을 가지고 있기 때문에, 그 컨셉을 이해하고 있어야 적재적시에 사용할 수 있다.

2. 알고리즘

  • 자료구조를 파악하고 나면 이제 그 자료구조를 가지고 더 효율적인 해결방안을 도출해 낼 수 있다.
  • 지금의 문제를 더 효율적으로 풀어내기 위한 방법들이 알고리즘이라 할 수 있다.
  • 그리디 알고리즘이라면, 지금 당장의 경우에서 최적의 해를 구해내는 방법이다.
  • 동적 프로그래밍이라면, 데이터 변화 도중의 규칙을 찾아내어 이를 점화식으로 정리하고 원하는 값을 구해내는 방식이다.
  • 최단 경로 알고리즘이라면, 자료구조로는 그래프를 사용하고, 알고리즘 상에서는 그리디와 동적프로그래밍을 사용하는 방식이 되겠다.

3. 코딩테스트

  • 결국, 코딩테스트는 표면적으로는 채용절차에 한 과정이긴 하지만, 그와 동시에 자료구조와 알고리즘을 적절히 알고 적용할 수 있는지를 보는 것이다.
  • 물론 기본기를 보는 건 맞다. 그와 동시에, 본인에게 주어진 과제나 문제가 있을 때 이 상황에 어떻게 접근하고 풀어나가는지를 체크해보는 과정이라고도 할 수 있겠다.
This post is licensed under CC BY 4.0 by the author.