본문 바로가기

CS공부/Data Structure

0. 자료구조 - 톺아보기

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. 자료구조의 분류

 

 

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

 

참고자료: https://www.geeksforgeeks.org/data-structures/