프로그래밍/Data Structure

[자료 구조] 1. 필요성.

jinkwon.kim 2018. 5. 24. 21:19
728x90
반응형

자료 구조의 필요성


필자는 우선 현재 6년차 C언어를 주력으로 하고있는 개발자이다.

현 시점에서 대학교 때 배웠던 자료구조를 다시 공부하려고 한다.


1. 나는 왜 자료 구조를 다시 공부하려고 하는가??

  올해 초 회사에서 코딩을 하다 보니, 프로그램의 성능을 향상 시켜야 하는 일을 맏게 되었다. 그래서 성능을 향상 시킬 방법을 고민하기 시작했다. 그런데.. 맙소사.. 방법으 잘 모르겠더라...OTL, 정말 충격이 였다. 여태 껏 프로그래밍을 하면서 내가 생각하는건 다 구현 할수 있는 수준까지 되었으나. 정작 성능 향상시키는 것에서 막힌 것이다. 그래서 어떻게 게하면 프로그램의 성능을 향상 시킬수 있는지 찾아보았다. 여러 가지 방법이 있었다. 그중 대표적인 것으로 multi threading이 존재하고, 전역 변수 쓰지 말라하는게 기억에 남는다. 그런데 아무리 생각해도 이것만으로는 한계가 있을거 같다. 그래서 생각해 보았다. 자료를 잘 구조화 시켜 놓으면 검색 속도가 빨라지지 않을까 하고, 그리고 이 자료 구조에 맞는 알고리즘을 적절하게 선택하면 성능을 빨라지겠구나 하는 결론에 도달하게 되었다, 그런데 어떤 자료 구조가 좋은 자료구조이고 어떤 알고리즘이 좋은 알고리즘인지 모르겠더라. 그래서 나는 자료 구조를 다시 공부하기로 마음을 먹었다. 지금 부터 차례대로 정리해갈 자료 구조는 무조건 성능에 초점을 맞추어서 자료 구조를 해석해 나갈 것이다


2. 자료 구조 공부가 가 필요한 이유

  1) 내가 원하는 자료를 빨리 찾기위해서 데이터를 잘 정리해 놓아야 한다.  그런데 잘 정리하기 위해서는 자료 구조를
     알아야한다.

  2) 자로 구조와 알고리즘은 밀접한 관계를 가지고 있다.
    - 정리 잘해 놓아도 빠를게 찾는 방법을 모르면 정리를 한 보람이 없다.
    - 이때 빠르게 찾을수 방법이 알고리즘이다.

  3) 그리고 어떤 자료구조가 좋은 자료구조인지 알기 위해서 공부 해야한다. 쓰레기 같은 자료구조가 많기때문이다


728x90
반응형

'프로그래밍 > Data Structure' 카테고리의 다른 글

[자료 구조] 알고리즘 평가 방법  (0) 2018.05.29