1. 개념적 정의
자료구조 == 데이터구조
는 프로그래밍의 Fundamental building blocks 즉, 기본 구성 요소!
"They define how data is organized, stored, and manipulated within a program."
⭐ 데이터를
- 정리 = Organized
- 저장 = Stored
- 조작 = Manipulated
할 지 정의한다.
"Understanding data structures is very important for developing efficient and effective algorithms."
자료구조를 이해하는 것은 개발 효율, 효율적인 알고리즘에 매우매우 중요함.
WHY?
적절한 구조를 사용해야 빠르고 메모리를 덜 쓰는 알고리즘을 만들 수 있기 때문이죠.
🎓지선생님의 추가 설명!
✅ 왜 빠르고 메모리를 적게 쓰는 게 중요한가?
1. 사용자 경험이 좋아짐 (UX)
- 프로그램이 느리면 사람들은 금방 떠나요.
예: 검색창에 입력했는데 결과가 5초 있다가 나온다면? - 빠른 반응속도는 앱이나 웹의 품질을 결정하는 중요한 요소예요.
2. 리소스 절약 → 비용 절약
- 메모리를 덜 쓰면 컴퓨터나 서버가 더 적은 자원으로 더 많은 작업을 할 수 있어요.
- 특히 대규모 서비스를 운영할 때, 서버 비용과 운영 효율성에 큰 영향을 줘요.
💡 예: 구글 검색 결과가 0.1초만 느려져도 수백억 원의 손해가 발생한다고 해요.
3. 규모가 커질수록 차이가 극대화됨
- 데이터가 작을 땐 느린 알고리즘도 괜찮아 보여요.
- 하지만 데이터가 수백만 개 이상이 되면,
느린 알고리즘은 실행 자체가 불가능해질 수도 있어요.
예: O(n²) 알고리즘 → 10,000개 데이터면 1억 번 연산
반면 O(n log n) → 10만 번 정도로 끝남
4. 제한된 환경에서도 작동 가능
- 스마트폰, 임베디드 장치, IoT 기기처럼 성능이나 메모리가 제한된 환경에선
효율적인 알고리즘이 생존 조건이에요.
📌 결론:
빠르고 메모리를 덜 쓰는 프로그램은 더 빠르게, 더 많은 사람에게, 더 적은 비용으로, 더 오래 안정적으로 서비스할 수 있게 해줘요.
→ 즉, 좋은 소프트웨어의 핵심 조건이에요.
2. 사전적 정의
"A data structure is a storage that is used to store and organize data."
→ 데이터 구조는 데이터를 저장하고 정리하기 위한 저장소다.
"It is a way of arranging data on a computer so that it can be accessed and updated efficiently."
→ 데이터를 컴퓨터에 저장할 때, 쉽게 접근하고 수정할 수 있도록 효율적으로 배치하는 방법이다.
⭐ "It is also used for processing, retrieving, and storing data."
→ 단순 저장뿐만 아니라, 처리, 검색, 저장 등 모든 작업의 기반이 된다.
3. 자료구조의 분류

- 선형 자료 구조 (Linear Data Structure) = 데이터가 순차적(일렬로)으로 나열된 구조.
- 정적 자료 구조 (Static Data Structure) = 메모리 크기가 고정된 자료구조.
- 배열 (Array)
- 동적 자료 구조 (Dynamic Data Structure) = 실행 중 크기를 자유롭게 조절할 수 있는 자료구조.
- 큐 (Queue)
- 스택 (Stack)
- 연결리스트 (Linked List)
- 정적 자료 구조 (Static Data Structure) = 메모리 크기가 고정된 자료구조.
- 비선형 자료 구조 (Non Linear Data Structure) = 데이터가 순차적으로 정렬되지 않은 구조.
- 트리 (Tree)
- 그래프 (Graph)