자료구조에 세계로 떠나보자 🚀

최동근·2022년 8월 23일

자료구조

목록 보기
1/1

자료구조(Data Structure)

  1. 자료구조의 정의

    컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상 자료형의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다.




  2. 자료구조를 왜 배워야 할까?
    사실 그냥 코딩해서 원하는 응용프로그램을 만들면 되지 뭐하러 복잡하게 자료(Data)를 컨트롤 하는 방법을 배워야 할까 생각 할 수 있다. 그러나 이러한 생각은 컴퓨터 공학 세상에서 공부를 하다보면 내가 자료구조를 간과했구나(?) 라는 생각을 하게 만든다. 컴퓨터 공학에서 배워야 할 과목으로 컴퓨터 구조, 운영체제, 시스템 프로그래밍, 데이터 베이스 등을 뽑을 수 있는데, 여기서 등장하는 많은 개념들이 알고리즘 및 자료구조를 기반으로 설계되었다. 따라서 알고리즘과 더블어 자료구조는 소프트웨어를 다루는 사람이라면 누구나 공부해야할 과목이다.
    또한 개인적으로 설계하는 프로그램 규모에서는 시간 복잡도가 그렇게 중요하지 않은 경우가 많다. 왜냐하면 규모가 작기 때문에 왠만하면 알고리즘 & 자료구조 설계를 따로 하지 않아도 문제 없이 실행시킬 수 있다. 그러나 최소한 팀 단위 크게는 회사 단위의 프로젝트를 진행시 하루에도 몇백~몇만명이 접속하고 사용하는 프로그램을 설계시 알고리즘 & 자료구조는 설계시 매우 중요한 역할을 하며, 필수 불가결한 고려 사항이 되버린다.




  1. 자료구조 공부 방법
    자료구조는 종류가 매우 다양하며, 심화 개념으로 갈 수록 내용이 매우 어렵다. 따라서 구글링을 통해 최대한 많은 자료를 찾아보고 직접 종이에 써가면서 자료구조를 이해하길 바란다.

공부 Steps 🔥🔥

1. 배열
2. 연결리스트
3. 정렬
4. 탐색
5. 스택,큐,덱
6. 트리
7. 해싱
8. DP(dynamic programming)
9. 그래프 탐색
10. 그래프 알고리즘
profile
비즈니스가치를추구하는개발자

0개의 댓글