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)
  • 자료구조의 구분
rondeveloper
rondeveloper
  • rondeveloper
    Ron's learning record
    rondeveloper
  • 전체
    오늘
    어제
    • 분류 전체보기 (102)
      • k8s (2)
      • AWS (1)
      • 리눅스 (5)
      • 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    nestjs
    프로그래머스
    코딩테스트
    스택
    생활코딩
    Kubectl
    Docker
    iterable
    IP 주소
    반복문
    mysql
    배열
    레벨2
    javascript
    리눅스
    Kubernetes
    redis
    django
    FastAPI
    기초
    네트워크
    컨테이너
    모듈
    typescript
    조인
    자바스크립트
    Python
    Til
    typeorm
    도커
  • 최근 댓글

  • 최근 글

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

티스토리툴바