데일리루틴

TIL 0726 CS 2of5 소프트웨어설계

loveistheway 2024. 7. 26. 21:46

자료구조를 선형구조와 비선형구조(자료들의 관계가 1:n)로 나눠서 보겠다

 

선형구조의 대표예 : 배열, 리스트, 스택, 큐

- 배열 : 메모리상의 연속된 공간에다 데이터를 저장시키는 방식이다

- 리스트 : 메모리상의 임의의 위치에 첫번째 데이터를 저장하고 두번째 데이터는 첫번째 데이터 뒤에, 세번째 데이터는 두번째 데이터 뒤에 위치하게 저장시키는 방식이다.

- 스택 : 나중에 들어온 자료가 먼저 나감(=먼저 들어온 자료가 나중에 나감). DFS에 스택이 쓰인다.

- 큐 : 먼저 들어온 자료가 먼저 나감. BFS에 스택이 쓰인다. 티켓팅 대기 시스템, 작업스케줄링에 쓰인다.

 

비선형구조의 대표예 : 그래프, 트리

- 그래프 : 그래프에서 알맹이를 노드, 연결선을 간선이라고 한다.

- 트리 : 트리는 그래프의 일종이다. 아래로 가지를 뻗는 형태이다. 이진트리 / 편향이진트리 / 포화이진트리 / 완전이진트리가 있다.

 

- 이진트리 : 자식노드를 최대 2개 가지는 트리

- 편향이진트리 : 한쪽으로만 자식노드를 가지는 이진트리

- 포화이진트리 : 모든 부모노드가 2개의 자식노드를 가지는 이진트리

- 완전이진트리 : 왼쪽부터 채워지는 이진트리

 

- 부모노드 : 자식노드를 가지는 노드

- 자식노드 : 부모노드를 가지는 노드

- 루트노드 : 최상위 노드

- 자손노드 : 하위의 모든 노드

 

--------------------------------------------------------------------------------------------------------------------------------------------------

 

객체지향프로그래밍 (Object-Oriented Programming)

 

객체(instance) : 현실세계의 대상을 추상화한 것

객체 지향 : 추상화하고자 하는 객체를 가상의 공간에 추상화한 것

 

클래스 : 객체가 들어갈 틀. 클래스 안에는 변수/함수/클래스가 들어갈 수 있다. 클래스 안의 변수와 멤버함수에 접근하기 위해서는 객체를 이용해야 한다.

 

상속 : 클래스가 다른 클래스의 기능을 사용하는 것. 부모클래스의 속성을 자식클래스가 물려받음.

오버라이딩 : 상속받은 클래스가 기능을 재정의하는 것. 부모클래스를 가진 클래스가 부모클래스에 있는 abc()라는 함수와 같은 이름의 함수를 자신 안에서 만들어 다른 기능으로 사용하는 것.

 

--------------------------------------------------------------------------------------------------------------------------------------------------

 

- 형상관리 : 변경사항을 기록하고 통제하는 작업

 

V&V (Verification & Validation)

- Verification : 요구사항에 맞게 제품이 개발되었는가를 개발자 관점에서 검증하는 작업

- Validation : ''를 사용자 관점에서 확인하는 작업