ADT 와 Data Structure 의 차이

2022. 11. 11. 11:52·컴퓨터 과학/자료구조

ADT

- Abstract Data Type 의 약자로 추상화된 데이터 타입이라는 의미를 가지고 있습니다.

- 가령 이 데이터 타입은 어떤 속성과 어떤 메서드를 가지고 있는지, 그리고 이 메서드는 무엇을 하는 건지 정의만 합니다.

- 실제로 이 데이터 타입이 내부적으로 어떤 자료 구조로 구현되어 있고 어떻게 동작하는지에 대해서는 논의하지 않습니다.

- 정의, 구현을 분리하면 사용자는 굳이 어떻게 구현되어 있는지 알 필요 없이 데이터 타입을 사용하는데 아무런 문제가 없습니다.

- 그저 사용자는 ADT에서 정의된 기능을 사용하기만 하면 되고 구현은 개발자가 알아서 하면 됩니다.

- 설사 데이터 타입의 구현 방법이 바뀌더라도 정의만 그대로라면 기존 사용자는 아무런 변경 없이 동일하게 데이터 타입을 사용할 수 있습니다. 

- Java 에서 Interface 를 ADT 라고 말할 수 있습니다. 그 이유는 Interface 를 통해 어떤 속성과 메서드가 정의되어 있는지 알 수 있지만 어떻게 구현되어 있는지는 알 수 없기 때문입니다.

Data Structure

- ADT 에서 한 걸음 더 나아가 이 데이터 타입의 구현체는 무엇이고 어떻게 구현하는지에 대해서 논의합니다.

- Java 에서 Class 를 ADT 라고 말할 수 있습니다. 그 이유는 Class 는 구현체이며 어떤 속성과 메서드가 정의되어 있는지를 비롯해 내부적으로 어떻게 구현되어 있고 동작하는지 알 수 있기 때문입니다.

ADT 와 Data Structure 는 어디에 사용할 수 있는가?

ADT, Data Structure 의 관점은 프로젝트 협업 시 한 사람은 class 나 method 구현에 집중하고, 다른 사람들은 한 사람이 구현한 class 나 method 를 사용하기만 하면 되기 때문에 원활한 업무 분담을 하는 데 도움을 줄 수 있습니다.

마치며

ADT 와 Data Structure 의 개념을 잘 알지 못해 영상을 보게 되었는데, 여기에서 그치지 않고 프로젝트 시 백엔드 개발자 간 협업 관점을 바꿀 수 있었습니다. 아직 시도해보지 않았지만 프로젝트 투입 시 이 관점으로 업무 분담을 한다면 좋겠다는 생각이 들었습니다. 

참조

쉬운코드 Youtube Channel : https://www.youtube.com/watch?v=QcsQKgXemtA 

'컴퓨터 과학 > 자료구조' 카테고리의 다른 글

큐(Queue)  (0) 2022.11.11
스택(Stack)  (0) 2022.11.11
자료구조의 구분  (0) 2022.11.08
'컴퓨터 과학/자료구조' 카테고리의 다른 글
  • 큐(Queue)
  • 스택(Stack)
  • 자료구조의 구분
devron
devron
개발자 Ron이 AI 트렌드, 바이브코딩, 직장인 AI 활용법을 실험하고 기록하는 공간입니다.
  • devron
    Ron on AI
    devron
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • k8s (1)
      • AWS (1)
      • 리눅스 (4)
      • Docker (8)
      • 라이브러리 & 프레임워크 (14)
        • React (2)
        • NestJS (8)
        • Spring (0)
        • Django (3)
        • FastAPI (1)
      • 웹 (2)
        • Nginx (1)
      • 프로그래밍 언어 (29)
        • HTML (0)
        • CSS (0)
        • JavaScript (21)
        • Python (3)
        • Node.js (0)
        • TypeScript (4)
        • Java (1)
      • Today I learned (9)
      • 알고리즘 (9)
        • 백준 (0)
        • 프로그래머스 (8)
        • 개념 (1)
      • 티끌모아 태산 (5)
        • 하루에 영단어 하나씩 (5)
        • 독서 (0)
      • 시행착오 (3)
      • 데이터베이스 (2)
        • MySQL (0)
      • 컴퓨터 과학 (8)
        • 네트워크 (2)
        • 운영체제 (0)
        • 데이터베이스 (2)
        • 자료구조 (4)
      • 포트폴리오 (4)
        • JJINCAFE IN SEOUL (4)
        • CODEUNICORN (0)
      • 회고 (0)
      • CICD (1)
      • AI (0)
      • AI 트렌드 (7)
        • AI Agent (1)
        • AI 활용법 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    javascript
    생활코딩
    네트워크
    FastAPI
    AI프롬프트
    모듈
    nestjs
    프로그래머스
    typeorm
    ai코딩
    Python
    Til
    typescript
    기초
    배열
    django
    스택
    자바스크립트
    Linux
    리눅스
    PlanMode
    프롬프트엔지니어링
    Docker
    Kubernetes
    개발자
    컨테이너
    레벨2
    chatgpt활용
    mysql
    바이브코딩
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
devron
ADT 와 Data Structure 의 차이
상단으로

티스토리툴바