7일차 :2장 1. 데이터 입출력 구현

Dev_HG·2020년 7월 4일
0

1.논리 데이터 저장소 확인

1. 자료구조

1.자료구조(Data Structure)의 개념

  • 컴퓨터상 자료를 효율적으로 저장하기 위해 만들어진 논리적인 구조
  • 자료 구조의 현명한 선택을 통해 효율적인 알고리즘을 사용할 수 있게 하여 성능을 향상 시킴

2. 자료 구조의 분류

  • 자료 구조의 분류는 선형 구조와 비선형 구조로 크게 나뉜다.
  • 선형 구조에는 배열, 연결 리스트, 스택, 큐 등이 있다
  • 비선형 구조에는 트리, 그래프 등 있다

3. 리스트(List)

1. 선형리스트(Linear List)

  • 배열과 같이 연속되는 기억 장소에 저장되는 리스트
  • 선형 리스트의 대표적인 구조로는 배열(Array) 등이 있음
  • 가장 간편한 자료 구조이며, 접근 구조가 빠름
  • 자료의 삽입, 삭제 시 기존 자료의 이동이 필료

2. 연결리스트(Linked List)

  • 노드의 포인터 부분으로 서로 연결시킨 리스트
  • 연결하는 방식에 따라 단순 연결 리스트, 원형 연결 리스트, 이중 연결 리스트 이중원형 연결 리스트로 구분
  • 노드의 삽입, 삭제가 선형 리스트와 달리 편리
  • 연결을 위한 포인터가 추가도어 저장 공간이 추가로 필요
  • 포인터를 통해 찾는 시간이 추가되어 선형 리스트에 비해 느낌

cf: 노드(Node) : 데이터 저장 부분과 포인터 부분으로 구성된 저장 공간을 뜻한다.
cf : 포인터(Pointer) : 현 위치에서 다음 위치를 알려주는 요소이다.

4. 스택(Stack)/ 큐(Queue) / 데크(Deque)

1. 스택(Stack)

  • 한 방법으로만 자료를 넣고 뺄 수 있는 LIFO(Last-In First-Out) 형식의 자료구조
  • PUSH는 데이터를 차례대로 스택에 넣어 저장하는 과정
  • POP은 스택에서 가장 뒤에 있는 데이터를 하나씩 빼는 과정
  • TOP은 스택에서 가장 뒤에 있는 데이터로, 스택 포인터(Stack Pointer)라고도 함

2. 큐(Queue)

  • 스택과 달리 리스트의 한쪽 끝에서는 사입 작업이 이뤄지고 반대 쪽 끝에서는 삭제 작업이 이루어지는 FIFO(First-In, First-Out) 형식의 자료 구조
  • PUSH는 데이터를 차례대로 넣어 저장하는 과정
  • GET은 처음 저장된 데이터를 하나씩 사용하는 과정

3. 데크(Deque : Double Ended Queue)

  • 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조
  • 두 개의 포인터를 사용하여, 양쪽의 삭제/삽입이 가능
  • 데크를 이용한 스택과 큐의 구현이 가능

5. 트리

1.트리(Tree)의 개념

  • 데이터들을 계층화시킨 자료 구조이다.
  • 인덱스를 조작하는 방법으로 가장 많이 사용하는 구조이다.
  • 트리는 노드(Node)와 노드를 연결하는 링크(Link)로 구성된다.
  • 배열과 달리 노드들이 포인터로 연결되어 노드의 상한선이 없다.

2.트리(Tree)의 용어

  • 루트 노드(Root Node) : 트리에서 부모가 없는 차상위 노드, 트리의 시작점,{A}
  • 단말 노드(Leaf Node) : 자식이 없는 노드, 트리의 가장 말단에 위치
    {F,G,H,E,C}
  • 레벨(Level) : 루트 노드를 기준으로 특정 노드까지의 경로 길이 ,E의 3Level
  • 조상 노드(Ancestor Node) : 특정 노드에서 루트에 이르는 경로상 모든 노드, D의 조상 노드는 {B,A}
  • 자식 노드(Child Node) : 특정 노드에 연결된 이전 레벨의 노드
  • 부모 노드(Parent Node) : 특정 노드에 연결된 이전 레벨의 노드, F의 부모 노드는 {D}
  • 형제 노드(Sibling) : 같은 부모를 가진 노드
  • 깊이(Depth, Height) : 트리의 최대 레벨
  • 치수(Degree) : 특정 노드에 연결된 자식 노드의 수

3.트리 순회 방법

1. 전위 순회(Pre-Order Traversal) : Root->Left->Right순

2. 중위 순회(In-Order Traversal) : Left->Root->Right 순

3. 후위 순회(Post-Order Traversal)Left->Right->Root 순

4. 이진 트리

이진 트리(Binary Tree)의 개념

  • 치수(Degree)가 2 이하인 노드로 구성되어 자식이 둘이하로 구성된 트리이다.

이진 트리의 유형

  • 포화 이진 트리(Full Binary Tree) : 모든 레벨에서 노드가 꽉 채워진 트리
  • 완전 이진 트리(Complete Binary Tree) : 마지막 레벨을 제외하고 노드가 채워진 트리
  • 편항 이진 트리(Skewed Binary Tree) : 노드의 왼쪽이나 오른쪽 한 곳만 노드가 존재하는 트리

6. 그래프(Graph)

1. 그래프(Graph)의 개념

  • 노드(N; Node)와 노드를 연결하는 간선(E; Edge)을 하나로 모아놓은 자료 구조이다.
  • 트리(Tree)는 사이클이 없는 그래프이다.

2. 그래프의 유형

  • 방향성의 유무에 따라 방향 그래프와 무방향 그래프로 구분된다.
    [그래프의 유형]
  • 방향 그래프 : 정점을 연결하는 선에 방향이 있는 그래프, n개의 정점으로 구성된 방향 그래프의 최대 간선 수는 n(n-1)이다.
  • 무방향 그래프 : 정점을 연결하는 선에 방향이 없느느 그래프, n개의 정점으로 구성된 무방향 그래프의 최대 간선 수는n(n-1)/2

3. 그래프의 표현 방법

  • 그래프 G =(V. E)
  • V(G) = 정점(Vertices)
  • E(G) = 간선(Edges)

4.그래프 용어 정리

  • 경로(Path) : 임의 정점에서 다른 정점으로 이르는 길
  • 경로 길이(Path Length) : 경로상 있는 간선의 수
  • 단순 경로(Simple Path) : 한 경로의 모든 간선이 다를 때의 경로
  • 사이클(Cycle) : 동일 정점에서 시작과 끝이 이어지는 경로

2. 논리 데이터 저장소

1. 논리 데이터 저장소의 개념

  • 업무를 모델링 표기법으로 형상화한 데이터의 저장소이다.
  • 물리 데이터 저장소와는 별개로 사용자 혹은 개발자가 이해하기 쉬우 논리적인 구조로 추상화 하여 제공

논리데이터 저장소 구조

  • 개체(Entity) : 관리할 대상이 되는 실체
  • 속성(Attribute) : 관리할 정보의 구체적 항목
  • 관계(Relationship) : 개체 간의 대응 관계

2. 논리 데이터 저장소 검증 절차

1. 개체(Entity) 확인

  • 입력데이터, 출력데이터 식별 확인
  • 관련 업무와의 연계 데이터 식별 확인
  • 신규 데이터 요구사항 식별 확인

2. 속성(Attribute) 확인

  • 데이터 속성, 공통코드 파악 수준 점검
  • 외부 연계 데이터 속성 파악 수준 점검

3. 관계(Relationship) 확인

  • 개체 간 관계의 적절성 확인
  • 중복 최소화를 통한 무결성 보장 여부 확인

4. 데이터베이스 요구사항 확인

  • 저장 데이터 볼륨, 분산구조, 제약조건에 관한 요구사항 도출/분석 확인
  • 데이터베이스 백업 및 복구 정책 요구사항 확인
  • 초기 데이터 구축방안에 대한 요구사항 도출/분석 확인

5.데이터 흐름 확인

  • 프로세스별 입출력 데이터 정의 수준 확인
  • 프로세스 산 공유 및 연계 데이터 정의 수준 확인

6. 데이터 설계기준 확인

  • 데이터베이스 설계 표준 지침 작성 여부 및 적절성 확인
  • 데이터 모델 설계 지침 작성 여부 및 적절성 확인

7. 데이터 접근권한 확인

  • 데이터에 접근권한 및 통제 분석 적정성 확인
  • 데이터 암호화 대상 소프트웨어 아키텍처 설계 가이드라인 확인
profile
꾸준함

0개의 댓글