내 생각에 자료구조를 직접 구현하는 일은 거의 드물다.

왜냐하면 이미 라이브러리 졸라 잘 되어있는데, 너가 걔네들보다 잘 만들 수 있음? 그냥 그거 잘 가져다 쓰면 됨. 


그런데 중요한 부분은 자료구조 자체를 이해하는 것임. 자료구조 자체를 이해한다는 것은 두 가지임.


1. 시간복잡도가 얼마고, 왜 그렇게 시간복잡도가 구현되는지

2. 실제로 동작할 때 어떤 문제점이 있을지? 


예를 들면 병합 정렬보다 주로 퀵 정렬로 많은 정렬이 구현되고 있는데, 왜 병합 정렬이 선택이 안되는지 등등..

그런 식으로 알아둬야함.


그리고 그렇게 알아두고 나면, 내가 어떤 요구 사항을 받았을 때 요구 사항을 구현하기 위한 최적 자료구조가 뭔지를 

잘 이해할 수 있게 됨. 


예를 들어 특정 조회 쿼리만 많이 들어오면 그 조회 쿼리를 극대화하는 방향으로 구조가 설계 되는 거고, 아니면 또 다른 방법으로.

컴공이나 이쪽으로 공부해보니 모두 좋은 건 없고, 다 트레이드 오프 관계이기 때문에 요구 사항에 맞는 것들을 적재적소에 잘 찔러넣어야 하고 그러기 위해 자료구조 공부가 필요한 것인 것 같다.