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. 데이터 접근권한 확인
- 데이터에 접근권한 및 통제 분석 적정성 확인
- 데이터 암호화 대상 소프트웨어 아키텍처 설계 가이드라인 확인