TIL 0726 CS 2of5 소프트웨어설계
자료구조를 선형구조와 비선형구조(자료들의 관계가 1:n)로 나눠서 보겠다
선형구조의 대표예 : 배열, 리스트, 스택, 큐
- 배열 : 메모리상의 연속된 공간에다 데이터를 저장시키는 방식이다
- 리스트 : 메모리상의 임의의 위치에 첫번째 데이터를 저장하고 두번째 데이터는 첫번째 데이터 뒤에, 세번째 데이터는 두번째 데이터 뒤에 위치하게 저장시키는 방식이다.
- 스택 : 나중에 들어온 자료가 먼저 나감(=먼저 들어온 자료가 나중에 나감). DFS에 스택이 쓰인다.
- 큐 : 먼저 들어온 자료가 먼저 나감. BFS에 스택이 쓰인다. 티켓팅 대기 시스템, 작업스케줄링에 쓰인다.
비선형구조의 대표예 : 그래프, 트리
- 그래프 : 그래프에서 알맹이를 노드, 연결선을 간선이라고 한다.
- 트리 : 트리는 그래프의 일종이다. 아래로 가지를 뻗는 형태이다. 이진트리 / 편향이진트리 / 포화이진트리 / 완전이진트리가 있다.
- 이진트리 : 자식노드를 최대 2개 가지는 트리
- 편향이진트리 : 한쪽으로만 자식노드를 가지는 이진트리
- 포화이진트리 : 모든 부모노드가 2개의 자식노드를 가지는 이진트리
- 완전이진트리 : 왼쪽부터 채워지는 이진트리
- 부모노드 : 자식노드를 가지는 노드
- 자식노드 : 부모노드를 가지는 노드
- 루트노드 : 최상위 노드
- 자손노드 : 하위의 모든 노드
--------------------------------------------------------------------------------------------------------------------------------------------------
객체지향프로그래밍 (Object-Oriented Programming)
객체(instance) : 현실세계의 대상을 추상화한 것
객체 지향 : 추상화하고자 하는 객체를 가상의 공간에 추상화한 것
클래스 : 객체가 들어갈 틀. 클래스 안에는 변수/함수/클래스가 들어갈 수 있다. 클래스 안의 변수와 멤버함수에 접근하기 위해서는 객체를 이용해야 한다.
상속 : 클래스가 다른 클래스의 기능을 사용하는 것. 부모클래스의 속성을 자식클래스가 물려받음.
오버라이딩 : 상속받은 클래스가 기능을 재정의하는 것. 부모클래스를 가진 클래스가 부모클래스에 있는 abc()라는 함수와 같은 이름의 함수를 자신 안에서 만들어 다른 기능으로 사용하는 것.
--------------------------------------------------------------------------------------------------------------------------------------------------
- 형상관리 : 변경사항을 기록하고 통제하는 작업
V&V (Verification & Validation)
- Verification : 요구사항에 맞게 제품이 개발되었는가를 개발자 관점에서 검증하는 작업
- Validation : ''를 사용자 관점에서 확인하는 작업