제 1강 컴퓨터구조 Ⅰ - eduever.comc4%c4%c7%bb%c5%cd%20%c0%cf%b9%d… · 조준희 교수의...

149
www.eduever.com 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요 1. What is Computer? (1) John von Neumann's concept ① 1940 년도에 Computer는 "계산을 수행하는 사람" 으로 정의 ② Computer : Input을 받아 들이고, Data를 Process 및 store하며, output을 내보내는 장치. (2) Input : 사용자 환경 또는 다른 컴퓨터 환경에 의해 공급된다 * Examples : 단어, 기호, 숫자, 명령, 그림, 음성신호 (3) Input device : 입력을 컴퓨터가 처리할 수 있는 형태로 변환 * Examples : keyboard, mouse (4) Data : 사람, 사건, 물건, 생각들을 표현하는 기호. (5) Central process unit or CPU : Data를 처리하는 컴퓨터 장치. (6) Storage device ① Data를 보유하고 있는 공간 ② 전원이 꺼져도 저장된 Data에 영향을 미치지 않는다. ③ Examples : tape, disk, CD-ROM ※ 중요한 차이점 1) Memory : 잠시 후에 처리될 데이터를 보유하고 있는 공간. 2) Storage Device : 지금 당장 처리되지 않아도 영구적으로 남아 있을 수 있는 공간. (7) Output ① computer에 의해 생성되는 결과들. ② Examples: 리포트, 문서, 음악, 그래프, 그림 (8) Output Device ① Computer memory 로부터 처리된 결과를 보여주거나, 프린트하거나, 다른 장치로 이전시킴. ② Examples : monitor, printer 2. Information and Data (1) information ① 어떤 사물에 대한 소식이나 자료 ② 가공된 data

Upload: others

Post on 27-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 1강 컴퓨터구조 Ⅰ

1절 컴퓨터의 개요

1. What is Computer?

(1) John von Neumann's concept

① 1940 년도에 Computer는 "계산을 수행하는 사람" 으로 정의

② Computer : Input을 받아 들이고, Data를 Process 및

store하며, output을 내보내는 장치.

(2) Input : 사용자 환경 또는 다른 컴퓨터 환경에 의해 공급된다

* Examples : 단어, 기호, 숫자, 명령, 그림, 음성신호

(3) Input device : 입력을 컴퓨터가 처리할 수 있는 형태로 변환

* Examples : keyboard, mouse

(4) Data : 사람, 사건, 물건, 생각들을 표현하는 기호.

(5) Central process unit or CPU : Data를 처리하는 컴퓨터 장치.

(6) Storage device

① Data를 보유하고 있는 공간

② 전원이 꺼져도 저장된 Data에 영향을 미치지 않는다.

③ Examples : tape, disk, CD-ROM

※ 중요한 차이점

1) Memory : 잠시 후에 처리될 데이터를 보유하고 있는 공간.

2) Storage Device : 지금 당장 처리되지 않아도 영구적으로 남아 있을 수 있는 공간.

(7) Output

① computer에 의해 생성되는 결과들.

② Examples: 리포트, 문서, 음악, 그래프, 그림

(8) Output Device

① Computer memory 로부터 처리된 결과를 보여주거나, 프린트하거나, 다른 장치로 이전시킴.

② Examples : monitor, printer

2. Information and Data

(1) information

① 어떤 사물에 대한 소식이나 자료

② 가공된 data

Page 2: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

(2) data

① Information을 작성하기 위해 필요한 자료나 정보를 처리하거나 전송할 때 이진(binary)이나 디

지털과 같은 좀 더 편리한 형태로 바뀌어진 자료

② information의 원재료

(3) Bit and Byte

(4) Data expression unit

bit 0, 1

byte 1byte = 8bit

KB. KiloByte 1KB=1024byte = 2^10byte

MB. MegaByte 1MB=1024Kbyte = 2^20byte

GB. GigaByte 1GB=1024Mbyte = 2^30byte

TB. TeraByte 1TB=1024Gbyte = 2^40byte

(5) ASCII(American Standard Code for Information Interchange) code

(6) EBCDIC(Extended Binary Coded Decimal Interchange Code) code

character ASCII code EBCDIC code character ASCII code EBCDIC code

0 0110000 11110000 I 1001001 11001001

1 0110001 11110001 J 1001010 11010001

2 0110010 11110010 K 1001011 11010010

3 0110011 11110011 L 1001100 11010011

4 0110100 11110100 M 1001101 11010100

5 0110101 11110101 N 1001110 11010101

3. Hardware and software

(1) hardware

① computer의 input, output, arithmetic 기능을 제어하는 데 사용되는 전자 부품들이 상호 연결

되어 구성

② CPU, memory unit, I/O device, peripheral device, etc.

(2) software

① hardware에 특정한 일을 시키기 위한 명령어 집합인 program을 총괄적으로 나타내는 용어

② Examples : word processor

* 사용자가 편지나 메모, 공부서나 보고서와 같은 문서 작성을 위해 문서 내용을 입력, 편집, 수

정 또는 보관할 수 있는 program

Page 3: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

(3) The Classification of Computer software

① System software

1) Computer 의 전체적인 운영 담당

2) operating system, compiler, assembler, loader, etc.

② Application software

1) System software 를 제외한 모든 program

2) Word processor, spreadsheet, database program, graphic program, network program, etc.

4. The History of Computers

(1) 근대와 현대의 분기점

① 전자 가동 장치(진공관)

② 프로그램 내장 방식(von Neumann 창안: 1945년)

(2) Mauchly 와 Eckert의 ENIAC(1946년)

① Electronic Numerical Integrator And Computer

② 최초의 computer

③ 진공관 사용

Page 4: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

(3) 제1세대(1951년~1959년)

① Memory Unit를 이루는 회로 소자로 진공관 사용

② Primary memory unit으로 자기 드럼 사용

③ I/O device에는 천공 카드 사용

④ 기계어로 program 작성

⑤ Wilkes 의 EDSAC(1949 년)

* 프로그램 내장을 적용한 최초의 Computer

⑥ von Neumann 의 EDVAC(1951 년)

* 프로그램 내장 방식을 적용한 Computer

⑦ Mauchly와 Eckert의 UNIVAC-I(1951 년)

* 과학 분야 외의 다른 분야에서 사용될 목적으로 제작된 최초의 Computer

(4) 제2세대(1959년~1963년)

① 회로 소자로 Transistor 사용

* 신뢰도 향상

② Main memory unit으로 자기 코어 사용

③ Secondary memory unit으로 자기 드럼과 자기 디스크 사용

④ software 중심으로 바뀌어가는 시기

* FORTRAN, COBOL, ALGOL과 같은 고급어 사용

(5) 제3세대(1963년~1971년)

① IC, integrated Circuits 사용

1) IBM system/360(1964 년)

2) Central process unit 의 소형화

② multiprogramming, real-time process system, time-sharing system 등의 operating system 실

③ PDP 8(1965 년)

* 최초의 미니 computer

⑤ 많은 programming language 탄생

⑥ 통신용 인공위성 탄생

(6) 제4세대(1971년~현재)

① 고밀도 집적회로(LSI), 초고밀도 집적회로(VLSI) 사용

② Personal Computer 등장

1) Altair 8800

2) 애플-I, 애플-II

3) IBM PC

③ network 의 발전

Page 5: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

(7) 제5세대

① 제5 세대 컴퓨터

1) 앞으로 발전되어 갈 형태의 computer

2) 주요 연구 분야

* 인공지능, 퍼지 이론, 전문가 시스템, 음성 인식 등

5. The Classification of Computers

(1) Classification by Data processing form

① digital computer

1) 숫자와 문자 자료 등을 digital 형태로 처리하는 computer

2) 일반 사용자가 접하는 대부분의 computer

② analog computer

* 온도, 습도, 전압, 전류 등과 같은 연속적인 자료를 물리적인 양 그대로 입력하여 처리한 후

결과를 그래프와 같은 형태로 출력하는 computer

③ hybrid computer

* digital computer 와 analog computer의 기능을 혼합하여 만든 computer

(2) Classification by the purpose of using

① special purpose computer

1) 특수한 목적에 한해서 사용하기 위해 만들어진 computer

2) 군사용, 산업용 목적으로 사용

3) 항공 분야, 과학 기술 분야 등에서 사용

② general purpose computer

* 일반적인 업무 처리에서 광범위하게 사용할 수 있도록 만들어진 computer

(3) Classification by processing power

① supercomputer

1) 가장 크고 빠르고 고가인 최첨단의 computer

2) 수학적인 계산을 집중적으로 해야 하는 용도에 적합

3) 수백개에서 수십만개의 고성능 마이크로프로세서 사용

② mainframe

1) 다수의 사용자가 공유하여 이용하는 고속의 computer

2) Supercomputer에 비해 성능이나 기억용량이 낮고 가격 저렴

③ minicomputer

1) 대형 컴퓨터에 비해 저렴한 중소형 computer

2) 다수의 사용자가 사용할 수 있는 다인용 시스템

④ workstation

1) 개인이나 적은 수의 사람이 특수한 분야에서

사용하는 탁상용 컴퓨터

2) 일반적으로 UNIX 계열의 운영체제 사용

3) RISC 마이크로프로세서 칩을 사용하여 고속 연산 가능

Page 6: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

⑤ micro computer

1) Personal computer

2) Laptop computer, notebook computer,

palmtop computer, pocket computer

2절 자료표현방식

1. 진법

(1) 사용할 수 있는 숫자의 개수와 위치 값을 정의해주는 수 체계

(2) 사용할 수 있는 숫자의 개수는 해당 진법과 같음

(3) 사용할 수 있는 숫자는 0에서 시작해서 해당 진법의 수보다 1 적은 수까지

(4) 사용할 수 있는 숫자

① 10진법 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

② 2진법 : 0과 1

③ 8진법 : 0, 1, 2, 3, 4, 5, 6, 7

④ 16진법 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

(5) 자리값

① 각 숫자의 자리 값은 그 위치가 의미하는 제곱수를 해당 진법에 적용하면 됨

② 각 위치가 의미하는 제곱수는 가장 오른쪽이 0, 왼쪽으로 가면서 1을 더한 값이다

Page 7: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

2. 진수변환

(1) 다른 진수에서 10진수로의 변환

(2) 10진수에서 다른 진수로의 변환

① 10진수 37.6857를 2진수로 변화하기

Page 8: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

② 10진수 524.76을 16진수로 변환하기

(3) 2진수에서 2n진수로의 변환

① 2진수를 4진수로 변환

* 2진수 2비트는 4진수 한 자리와 대응된다

2진수 00 01 10 11

4진수 0 1 2 3

* 2진수 10110.11101을4진수로 변환하기

② 2진수를 8진수로 변환

2진수 000 001 010 011 100 101 110 111

8진수 0 1 2 3 4 5 6 7

③ 2진수를 16진수로 변환

2진수 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

16진수 0 1 2 3 4 5 6 7 8 9 A B C D E F

* 2진수 10110.11101을16진수로 변환하기

(4) 2n진수에서 2진수로의 변환

① 2진수를 진수로 변환하는 원리를 그대로 이용

Page 9: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

② 16진수 A1.6을 2진수로 변환하기

(5) 기타 변환(x진수의 p진수의 변환)으로 구분

① x진수를 p진수로 변환

* x진수를 먼저 10진수로 변환한 후 p진수로 변환

x진수를 p진수로 변환하기

② 2진수 1011101을 7진수로 변환하기

1) 2진수 1011101을 10진수로 변환하면 93이 된다.

2) 10진수 93을 7진수로 변환하면 162가 된다.

※ 컴퓨터는 모든 정보를 2진수로 표현

: 모든 정보를 2진수로 표현하는 컴퓨터

1) 오늘날의 컴퓨터는 문자, 정수, 실수, 그림, 소리, 동영상 등의 모든 정보를 안정성이 뛰어

난 2진수 형식으로 표현 한다

2) 0 또는 1의 2진수 개념은 모든 전기적인 장치의 on/off와 맞는 개념이다.

(컴퓨터 내부에서의 문자‘a’와 정수 20의 표현)

(비트 표현)

Page 10: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

3. 정수의 표현

(1) 양의 정수 표현

① 부호(+ 또는 -)를 나타내는 비트 필요 없음

② n 비트로 이루어진 수는 0부터 2n-1까지의 값을 나타낸다

0 00000000

34 00100010

128 10000000

255 11111111

(2) 음의 정수 표현

① 부호 비트 사용(0: 양수, 1: 음수)

② 부호화-크기(signed magnitude) 방식

1) 최상위 1 비트를 부호로 사용하고 나머지 비트는 수의 크기를 나타내는 방식

2) (ex) +5: 00000101, -5: 10000101

③ 1의 보수(1's complement) 방식

1) 이진수의 각 비트를 0은 1로, 1은 0으로 바꾸어서 표현하는 방식

2) (ex) +5: 00000101, -5: 11111010

④ 2의 보수(2's complement) 방식

1) 컴퓨터에서 가장 많이 사용하는 방식

2) 1의 보수에서 1을 더하여 숫자를 표현하는 방식

3) (ex) +5: 00000101, -5: 11111011

4. 실수의 표현

(1) 부동 소수점 수의 표현

Page 11: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

① 소수점의 위치가 필요에 따라 이동하는 표현 방법을 의미하는 것

② 지수부(exponent part)

* 소수점의 위치를 나타냄

③ 가수부(mantissa part)

* 유효 숫자를 나타냄

④ 일반적인 형태

* N=(-1)S× M× BE

* S: 수의 부호, M: 가수, B: 기수(base), E: 지수

(2) 10진 표현

종 류 특 징 -123 표현

Pack 형식 한 수 표현시 4bit, 부호 비트는 마지막 추가 되는 4bit.

(+:1100, -:1101)

0001 0010 0011 1101

1 2 3 D

Unpack 형식 한 수 표현시 8bit(EBCDID 형식), 부호 비트는 마지막 숫

자의 존. (+:1100, -:1101)

11110001 11110010

11010011

F 1 F 2 D 3

5. 문자데이터-비수치적 데이터 표시법(Code)

종 류 구성 bit 수 특 징

BCD 코드 6bit 기본코드, 대․소문자 구별 못함.

ASCII 코드 7bit 통신용, 개인용 컴퓨터에서 많이 사용.

EBCDIC 코드 8bit 범용, 대․소문자 구별, 16진수 표현.

(1) ASCII

① 호환 등 여러 가지 문제를 해결하기 위해 ANSI에서 ASCII (American Standard Code for

Information Interchange)라는 표준 코드 체계를 제시

② ASCII는 각 문자를 7비트로 표현하므로 총 128(= 27)개의 문자를 표현

(7비트로 128가지를 달리 표현할 수 있다)

Page 12: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

※ ASCII 문자 코드

Page 13: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

(2) UNICODE

① 각 나라별 언어를 모두 표현하기 위해 나온 코드 체계

② 문자를 16비트로 표현하므로 최대 65,536자를 표현

(영문자, 숫자에 대한 유니코드)

(유니코드로 표현한“We”)

③ 한글에 대한 유니코드 (http://www.unicode.org/charts/PDF/UAC00.pdf)

Page 14: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

④ 유니코드로 표현한 "한글"

.

6. 화상데이터

(1) 디스플레이 화상을 표현

① 데이터 1픽셀이 1비트로 구성되는 2치 데이터

② 복수 비트로 구성되는 다치 데이터

(2) 구성 단위 : 픽셀

(3) 색상수

* 픽셀의 크기에 따라 결정 : N bit 일 때 색상수는 2n 개

7. 멀티미디어 데이터의 표현

(1) 소리 데이터의 표현

① 파동으로 시간에 따라 연속적으로 변화

② 표본화와 양자화 과정을 거쳐 디지털 신호로 바뀜

(2) 영상 데이터의 표현

① Pixel 단위로 표현

1) 특정 색상 값을 부여

2) 선명한 사진을 표현하기 위해선 더 많은 pixel이 필요

(3) 동영상 데이터의 표현

① 영상 데이터와 소리 데이터로 이루어짐

② 시간당 갱신되는 프레임 수의 단위를 사용: fps

8. 코드의 종류

(1) 가중치 코드

① 8421 코드

1) 10 진수 1자리의 수를 2진수 4자리로 표현한 코드.

2) 대표적인 가중치 코드

② 2421 코드

1) 각 자리마다 가중치가 1, 2, 4, 2 순으로 주어지는 코드.

③ 바이퀴너리

④ 링카운터

(2) 비가중치 코드

① 3 초과(excess-3) 코드

* 8421코드에 3을 더해서 만든 코드

Page 15: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

10진수 3초과 코드 10진수 3초과 코드

0

1

2

3

4

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

5

6

7

8

9

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

② 그레이(gray) 코드

1) 비가중치 코드로 연산이 불가능하며

2) 입출력 장치, A/D 변환기 등으로 사용.

(3) 에러검출코드

① 패리티 비트(Parity bit)

1) 에러 검출 코드로 홀수 패리티(add parity)와 짝수 패리티(even parity)가 있다.

2) 홀수 패리티 : 비트 내의 '1' 의 수가 홀수

3) 짝수 패리티 : 비트 내의 '1' 의 수가 짝수

x y z 홀수 P 짝수 P

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1

0

0

1

0

1

1

0

0

1

1

0

1

0

0

1

(3비트 패리티 비트)

장 점 한 비트만으로 에러를 검출할 수 있다.

단 점 에러를 교정할 수 없으며, 두 비트 이상 에러 발생시 검출 못함.

(4) 에러검출출 및 교정코드

① 해밍 코드(Hamming Code)

1) 해밍코드는 착오를 찾아 교정할 수 있다.

2) 기본 해밍 코드

* 패리티 비트 3개와 8421코드로 구성.(P1 P2 8 P3 4 2 1)

Page 16: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

16

3절 부울대수와 논리회로

1. 논리게이트

: 디지털 컴퓨터에서 모든 정보는 '0' 또는 '1'을 사용하여 표현

* 게이트(gate)

① '0', '1' 의 이진 정보를 처리하는 논리회로

② 여러 종류가 존재

③ 동작은 부울대수를 이용하여 표현

④ 입력과 출력의 관계는 진리표로 표시

(1) AND 게이트

① 모든 입력이 1인 경우에만 1을 출력

② AND 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 0

0 1 0

1 0 0

1 1 1

③ AND 게이트의 대수적 표현

: X = AㆍB

(2) OR 게이트

① 입력 중 최소한 한 개 이상의 입력이 '1'을 갖는 경우 1을 출력

② OR 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 0

0 1 1

1 0 1

1 1 1

③ OR 게이트의 대수적 표현

: X = A + B

(3) NOT 게이트

① 입력에 대하여 반대 논리를 출력

② NOT 게이트 기호와 진리표

입력(A) 출력(X)

0 1

1 0

Page 17: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

17

③ NOT 게이트의 대수적 표현

: X = A

(4) XOR 게이트

① 두 입력이 서로 반대되는 조건인 경우 1을 출력

② XOR 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 0

0 1 1

1 0 1

1 1 0

③ XOR 게이트의 대수적 표현

:

(5) NAND 게이트

① AND와 NOT 게이트의 결합형태로 AND 게이트와 반대로 동작한다.

② NAND 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 1

0 1 1

1 0 1

1 1 0

③ NAND 게이트의 대수적 표현

:

(6) NOR 게이트

① OR와 NOT 게이트의 결합형태로 OR 게이트와 반대로 동작

② NOR 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 1

0 1 0

1 0 0

1 1 0

③ NOR 게이트의 대수적 표현

:

Page 18: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

18

(7) NXOR 게이트

① XOR와 NOT 게이트의 결합형태로 XOR 게이트와 반대로 동작

② NXOR 게이트 기호와 진리표

입력(A) 입력 (B) 출력(X)

0 0 1

0 1 0

1 0 0

1 1 1

③ NXOR 게이트의 대수적 표현

:

(8) 유니버셜 게이트 (Universal Gate)

① NAND와 NOR 게이트를 유니버셜 게이트라 한다.

* 모든 게이트의 구성이 가능

② AND 게이트

③ OR 게이트

Page 19: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

19

④ NOT 게이트

2. 부울 대수 (Boolean Algebra)

* 논리 회로의 형태와 구조를 기술하는데 필요한 수학적인 이론

* 부울 대수를 사용하면 변수들의 진리표 관계를 대수식으로 표현하기에 용이

* 동일한 성능을 갖는 더 간단한 회로를 만들기에 편리하다.

(1) 부울 대수의 기본 법칙

① 교환법칙(commutative Law)

1) AㆍB = BㆍA

2) A + B = B + A

A B AㆍB BㆍA A+B B+A

0 0 0 0 0 0

0 1 0 0 1 1

1 0 0 0 1 1

1 1 1 1 1 1

Page 20: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

20

② 결합법칙(Associative Law)

1) Aㆍ(BㆍC) = (AㆍB)ㆍC

2) (A+B)+C = A+(B+C)

A B C (AㆍB)ㆍC Aㆍ(BㆍC) (A+B)+C A+(B+C)

0 0 0 0 0 0 0

0 0 1 0 0 1 1

0 1 0 0 0 1 1

0 1 1 0 0 1 1

1 0 0 0 0 1 1

1 0 1 0 0 1 1

1 1 0 0 0 1 1

1 1 1 1 1 1 1

③ 분배법칙(Distributive Law)

* Aㆍ(B+C) = AㆍB + AㆍC

Page 21: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

21

A B C A·(B+C) (A·B)+(A·C)

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 0 0

1 0 0 0 0

1 0 1 1 1

1 1 0 1 1

1 1 1 1 1

④ 다중부정

※ 부울 대수의 기본 법칙

Page 22: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

22

3. 드모르강의 정리

Page 23: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 2강 컴퓨터구조 Ⅱ

4. 조합 논리회로

* 입력과 출력을 가진 논리 게이트의 집합

* 출력은 현재의 입력에 의해 결정

* 순차 논리회로와 비교해 기억 능력이 없다

* 가산기, 감산기, 멀티플렉서, 디멀티플렉서가 대표적인 조합 논리회로이다.

(1) 가산기(Adder)

① 두 개 이상의 입력을 이용하여 이들의 합을 출력하도록 하는 조합 논리회로이다.

② 반가산기(Half Adder)

1) 두 개의 입력과 출력 합(Sum)과 올림수(Carry)가 사용

2) 반가산기의 계산법과 진리표

A B 올림수(C) 합(S)

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

(반가산기의 진리표)

(반가산기)

(2) 반가산기(Half Adder)

① 올림수와 합에 대한 부울 대수식

② 반가산기의 논리 회로

Page 24: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

(3) 전가산기(Full Adder)

① 두 입력과 하나의 올림수를 사용하여 덧셈 수행

② 전가산기의 계산과 진리표

A B C0 C S

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

(전가산기) (전가산기의 진리표)

③ 전가산기(full adder)

④ 디코더(decoder)

⑤ 인코더(encoder)

(4) 감산기(Subtractor)

① 두 개 이상의 입력의 차를 출력

② 반감산기(Half Subtractor)

1) 두 개의 입력과 출력 차(difference)과 빌림수(borrow)가 사용

2) 반감산기의 계산과 진리표

X Y 빌림수(B) 차(D)

0 0 0 0

0 1 1 1

1 0 0 1

1 1 0 0

(반감산기의 진리표)

(반감산기)

Page 25: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

(5) 반감산기

① 반감산기의 빌림수와 차에 대한 부울 대수식

② 반감산기의 논리 회로

(6) 멀티플렉서(Multiplexer)

* 여러 개의 입력선 중 하나의 입력선 만을 출력에 전달해주는 조합 논리회로

S0 S1 출력

0 0 Input 0

0 1 Input 1

1 0 Input 2

1 1 Input 3

(입력이 4개인 멀티플렉서의 회로도) (입력이 4개인 멀티플렉서의 진리표)

(7) 디멀티플렉서(Demultiplexer)

① 멀티플렉서의 역기능을 수행

② 선택선이 N개인 경우 2N개의 출력선이 존재

Page 26: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

S0 S1 출력

0 0 Output 0

0 1 Output 1

1 0 Output 2

1 1 Output 3

(출력이 4개인 디멀티플렉서의 회로도) (출력이 4개인 디멀티플렉서의 진리표)

5. 순서논리회로

(1) 입력값과 회로의 현재 상태에 따라 출력값 결정

(2) 기억능력 갖고 있음

(3) 플립플롭(flip-flip)

RS 플립플롭, D 플립플롭, JK 플립플롭, T 플립플롭

(4) 레지스터(register)

Page 27: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

(5) 카운터(counter)

4절 중앙처리장치

1. CPU, Central Processing Unit

(1) role

① 실행되는 모든 program의 명령을 해석하고 실행

② computer의 모든 장치 제어

(2) 성능 결정 요소

① 처리 속도(Hz)

* computer 내부에 내장된 시스템 클럭(clock)의 작동 수

② 한 번에 처리할 수 있는 data의 양

* 버스(bus)의 폭

(3) 구성

* Arithmetic and logic unit(ALU), control unit, register

Page 28: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

2. 중앙처리장치의 기능

(1) 명령어 인출(instruction fetch)

(2) 명령어 해독(instruction decode)

(3) 데이터 인출(data fetch)

(4) 데이터 처리(data processing)

(5) 데이터 저장(data store)

3. 중앙처리장치 구성

(1) CPU의 내부 구조 및 시스템 버스와의 접속

(2) 산술논리연산장치(ALU, Arithmetic and Logical Unit)

* 산술연산(+, -, ×, ÷ ), 논리연산(AND, OR, NOT 등) 수행

(3) 제어장치(Control Unit)

* 명령어 해독하고 명령어 실행에 필요한 동작을 수행하기 위해 제어신호 발생

(4) 레지스터(register)

* 데이터를 임시 저장하는 기능을 가진 CPU 내부에 있는 고속의 기억장치

Page 29: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

4. 중앙처리장치의 동작

(1) 기본 명령어 사이클

(2) 명령어 사이클(instruction cycle)

① 인출 사이클(fetch cycle)

② 실행 사이클(execution cycle)

③ 간접 사이클(indirect cycle)

④ 인터럽트 사이클(interrupt cycle)

(3) 인터럽트 사이클(interrupt cycle)

① 인터럽트 발생시 현재 수행 중이던 처리 과정을 저장한 후에 인터럽트 사이클 시작

② 처리 끝나면 원래의 프로그램으로 복귀(return)

③ 인터럽트

* CPU 의 정상적인 처리를 방해하는 예기치 않았던 사건

(3) 간접 사이클(indirect cycle)

① 인출 사이클에서 읽어 들인 명령어가 간접 주소지정 방식의 명령어일 경우에 기억장치로부터

유효 주소(effective address)를 읽어오는 과정

② 인출 사이클과 실행 사이클 사이에 위치

5. 명령어 파이프라이닝(instruction pipelining)

(1) 컴퓨터의 처리율을 높이기 위한 방법

(2) 한 명령어의 수행이 끝나기 전에 다른 명령어의 수행을 시작하는 방법

(3) 2-단계 명령어 파이프라이닝

Page 30: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

6. 명령어 세트(instruction set)

(1) 명령어 종류

① 데이터 전송 명령어

* (ex) LDA, STA 등

② 데이터 처리 명령어

* (ex) ADD, AND 등

③ 프로그램 제어 명령어

* (ex) BUN 등

(2) 명령어 형식

① 명령어의 기본 형식

② 명령어 형식의 종류

(3) 주소지정 방식(addressing mode)

① 연산에 사용될 데이터가 기억장치의 어디에 위치하는지를 지정하는 방법

② 즉시 주소지정 방식(immediate addressing mode)

③ 레지스터 주소지정 방식(register addressing mode)

Page 31: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

④ 직접 주소지정 방식(direct addressing mode)

⑤ 변위 주소지정 방식(displacement addressing mode)

⑥ 간접 주소지정 방식(indirect addressing mode)

Page 32: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

⑦ 레지스터 간접 주소지정 방식(register indirect addressing mode)

5절 주기억장치

1. 기억장치

(1) 기억장치의 구성

(2) 기억장치 계층

2. 주기억장치

: CPU가 직접 사용할 수 있는 정보를 기억하고 있는 기억장치

Page 33: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

(1) memory : CPU가 작업할 수 있도록 program과 data를 기억하는 장치

(2) RAM(Random Access Memory)

① 휘발성 memory

② 용량 : 128MB, 256MB, 512MB 등으로 표현

③ DRAM(Dynamic RAM) : 주기적인 재충전 필요

④ SRAM(Static RAM) : 재충전하지 않아도 됨

(3) ROM(Read Only Memory)

① 비휘발성 memory

② Mask ROM : 한 번 저장된 내용 고칠 수 없음

③ PROM(Programmable ROM) : 사용자가 필요에 따라 데이터 한 번 저장 가능

④ EPROM(Erasable PROM) : 기억시킨 내용을 자외선으로 지울 수 있고 새로운 내용 다시 쓸 수 있음

⑤ EEPROM(Electrically Erasable PROM) : 전기를 사용하여 내용을 지울 수 있음

3. 캐쉬 기억장치

(1) CPU와 주기억장치 사이에 설치한 접근 속도가 빠른 소규모 기억장치(캐쉬라고도 함)

Page 34: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

(2) 적중률(hit ratio)

(3) 교체 알고리즘

① LRU(Least Recently Used) 방식

② FIFO(First-In First-Out) 방식

③ LFU(Least Frequently Used) 방식

④ 임의(random) 교환 방식

4. 보조기억장치

(1) 대량의 정보를 저장하고 관리하기 위한 장치

(2) 보조기억장치의 데이터를 접근하는 방법

① 순차 접근 기억장치

1) SASD, Sequential Access Storage Device

2) 보조기억장치에 저장된 파일로부터 미리 정해놓은 순서대로 데이터를 검색해 나가는 것

3) 자기 테이프(magnetic tape)

② 직접 접근 기억장치

1) DASD, Direct Access Storage Device

2) 어떤 파일 내에 있는 특정한 레코드를 찾을 때, 다른 레코드를 순차적으로 읽지 않고 원하는

레코드만 직접 접근하는 것

(3) CD-ROM(Compact Disc-ROM)

① 광 디스크 기억장치

② 650MB 이상의 대용량의 data 저장 가능

(4) DVD(Digital Video Disk) : CD-ROM 의 기능과 용량을 확장한 영상 기록 매체

(5) magnetic tape : disk가 나오기 이전에 computer에서 가장 널리 사용되었던 auxiliary storage

unit

(6) 하드 디스크(hard disk)

① 대용량의 data 저장

Page 35: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

② track and sector

(7) floppy disk

① diskette

② 5.25 inch

1) 1.2MB의 data 저장 가능

2) 현재 거의 사용되지 않음

③ 3.5 inch

* 1.44MB의 data 저장 가능

6절 주변장치

1. 입출력장치

(1) 기억장치와 입출력장치의 차이점

① 동작 속도

* 기억장치의 동작 속도보다 입출력장치의 동작 속도가 느림

② 데이터 형식의 길이가 다름

③ 오류 발생률

* 입출력 과정에서의 오류 발생률이 큼

(2) 입출력장치의 전용 제어기(I/O controller) 필요

2. 입력장치

(1) keyboard

* computer에서 사용자가 data와 명령 등을 입력할 수 있는 장치

(2) mouse

* Ball mouse, optical mouse, wheel mouse, etc.

(3) scanner

* 종이나 필름에 인쇄된 글자나 그림 등에 빛을 주사하여 반사된 빛의 명암과 색깔을 digital 신호

Page 36: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

로 변환하는 장치

(4) Other input devices

* touch screen, joystick, OMR, barcode reader, etc.

3. 출력장치

(1) monitor

① computer에서 처리한 결과를 화면에 표시하는 장치

② CRT(cathode-ray tube) monitor, LCD(liquid crystal display) monitor, PDP(plasma display

panel) monitor, etc.

(2) printer

① computer의 출력 결과를 종이에 인쇄해주는 장치

② Dot matrix printer, Inkjet printer, Laser printer, etc.

4. 입출력장치의 구성

Page 37: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

5. 입출력 방식

(1) CPU에 의한 입출력 방식

① 프로그램에 의한 입출력 방식

1) CPU가 입출력장치를 계속 감시

2) 시간적 낭비 심하고 처리 효율 떨어짐

② 인터럽트에 의한 입출력 방식

1) CPU는 입출력 동작을 작동시켜 놓고 다른 작업 수행

2) 입출력 전송률이 느림

(2) 채널(channel)에 의한 입출력 방식

* 입출력 처리기(I/O processor)가 입출력과 관련된 거의 모든 동작을 수행하므로 CPU가 입출력

동작에 대한 부담을 거의 가지지 않음

(3) DMA(Direct Memory Access)에 의한 입출력 방식

① 프로그램에 의한 입출력 방식과 인터럽트에 의한 입출력 방식의 단점을 보완하기 위한 것

② CPU의 레지스터를 거치지 않고 직접 주기억장치와 입출력장치 사이에서 데이터 전송이 이루어짐

③ CPU가 유휴(idle) 상태가 될 수 있음

Page 38: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 3강 데이터 통신

1절 데이터 통신 시스템

1. 데이터 통신 개요

(1) 데이터 통신(data communication)

① 송신자와 수신자 사이의 컴퓨터나 입출력 장치들을 통신 회선을 이용하여 연결하여 데이터를 처

리하고 데이터를 전송하는 것

② 샤논(Shannon)의 통신 모델

2. 데이터 통신 시스템

(1) 단말장치(DTE, Data Terminal Equipment)

* 송신자나 수신자의 끝에 신호를 보내는 장치

(2) 신호 변환 장치(DCE)

① 모뎀(MODEM, Modulation and DEModulation)

* 컴퓨터 내의 디지털 신호를 아날로그 회선에 맞도록 신호를 변환하는 장치

Page 39: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

② 디지털 서비스 장치(DSU, Digital Service Unit)

* 디지털 신호를 변조하지 않고 그대로 디지털 전송 매체를 이용해 고속으로 전송하는 장치

(3) 통신 회선(DCL, Data Communication Line)

① 이중나선(twisted-pair wire)

* 절연된 두 가닥의 구리선이 균일하게 감겨 있는 형태의 통신 회선

② 동축케이블(coaxial cable)

* 아날로그 신호와 디지털 신호를 동시에 전송할 수 있는 통신 회선

③ 광섬유(optical fiber)

* 빛을 전송하는 머리카락보다 가늘고 유연한 실린더형 매체

④ 라디오파

* 다방향성으로 30MHz에서 1GHz에 해당하는 전파

⑤ 마이크로파

* 2GHz에서 40GHz에 이르는 상당히 넓은 주파수 대역에 걸쳐 전송

⑥ 위성 마이크로파

* 위성에 사용하는 전파는 1~10GHz의 주파수 범위를 사용하므로 구분상 마이크로파에 해당

* 통신위성을 이용한 광범위하고 독특한 서비스를 사용한다는 점에서 별도로 구분

(4) 통신 제어 장치(CCU, Communication Control Unit)

* 컴퓨터와 통신 회선 사이에서 서로 다른 데이터 취급 방법과 전송 속도 등을 조절하는 장치

(5) 통신 소프트웨어

* 데이터 통신 시스템 장치들 간의 하드웨어 제어와 데이터 송수신 기능

3. 데이터 전송

(1) 데이터 전송 속도

① 데이터 신호 속도(BPS, Bit Per Second)

* 초당 전송되는 비트(bit) 수

Page 40: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

(2) 데이터 변조 속도(baud)

* 초당 몇 번의 신호 변조가 수행되었는지 표시

bps = baud X 단위 신호당 bit 수(1회변조로 전송가능 비트수)

4. 아날로그와 디지털 정보

(1) 아날로그 데이터(analog data)

① 시간에 따라 크기가 연속적으로 변하는 정보

② 전화를 통한 음성

(2) 디지털 데이터(digital data)

① 시간에 따라 이산적(불연속적)으로 변하는 정보

② 문자 신호

(3) 아날로그 전송과 디지털 전송

① 아날로그 전송

1) 정보형태와 무관하게 아날로그 데이터 또는 디지털 데이터를 아날로그 신호로 변조하여 전송하

는 것

2) 증폭기(amplifier) 필요

② 디지털 전송

1) 신호의 형태와는 상관없이 디지털 정보를 전자기 신호로 부호화(encoding)하여 전송하는 것

2) 리피터(repeater) 필요

Page 41: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

2절 전송방식

1. 전송방향

※ 전송방향에 따른 분류

① 단방향(simplex) 전송

* (ex) 라디오, 텔레비전

② 반이중(half duplex) 전송

* (ex) 무전기

③ 전이중(full duplex) 전송

* (ex) 전화

2. 회선수

(1) 직렬전송(serial transmission)

① 각 데이터 비트들이 하나의 통신 회선을 이용하여 1비트씩 순차적으로 전송되는 방식

② 동기화(synchronization) 필요

* 동기화 : 송신측과 수신측 사이에 정보를 주고 받는 비트 타이밍을 맞추는 절차

③ 비동기식 전송(asynchronous transmission)

1) 문자 단위의 비트 블록을 전송 단위로 함

2) 시작비트와 정지비트 이용

* Start-Stop 방식

3) 상대적으로 낮은 전송효율로 인해 소형컴퓨터와 주변기기 전송에 주로 사용

Page 42: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

④ 동기식 전송(synchronous transmission)

1) 데이터 블록을 생성하여 블록단위로 전송

2) 긴 길이의 비트열 전송

3) 데이터 블록 동기화를 위해 새로운 데이터 블록 전송 전에 동기 비트를 전송하여 동기화

(2) 병렬 전송(parallel transmission)

① 각 데이터 비트 하나 하나에 대응하는 통신 회선이 있어서 비트 블록을 한꺼번에 전송하는 방식

* 비트 블록 : 하나의 문자를 표시하는데 필요한 비트 수

② 단위 시간당 다량의 데이터 전송 가능

③ 전송 거리가 짧은 컴퓨터의 CPU와 주변장치 사이의 전송에 이용

3절 회선연결방식

1. 회선 접속 방식에 따른 분류

(1) 점-대-점(point-to-point) 방식/ 지점간 방식

* 컴퓨터에서 각 터미널로 연결할 때 1:1 방식으로 직접 연결하는 방식

(2) 다지점간(multipoint) 방식

* 둘 이상의 통신 장치가 하나의 회선을 공유하는 방식

Page 43: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

4절 다중화방식

1. 주파수 분할 다중화(FDM, Frequency Division Mutiplexing)

(1) 대역폭을 몇 개의 좁은 대역폭으로 나누어 사용

(2) 아날로그 방식으로 전송지연이 없다

2. 시분할 다중화(TDM, Time Division Mutiplexing)

(1) 시간을 타임 슬롯(time slot)으로 나누고 각 채널에 차례로 분배하는 방식

(2) 송신측 데이터는 배정된 타임 슬롯(time slot)에 맞춰 데이터를 전송

(3) 디지털 전송방식에 적합

3. 코드 분할 다중화(CDM, Code Division Mutiplexing)

(1) 하나의 물리적인 회선을 통해 여러 채널의 정보를 같이 보내기 위한 다중화 기술

(2) 수신자는 여러 송신자가 보낸 송신 신호 중 원하는 신호만을 정해진 코드를 이용하여 추출해 냄

(3) 이동통신 시스템의 다중화 방식

5절 교환기술

1. 회선 교환망(circuit switching)

(1) 회선 설정, 데이터 전송, 회선 해제의 단계를 거치는 통신망

(2) 연결된 회선을 전용선처럼 사용 가능

(3) 음성등과 같은 실시간 데이터나 긴 메시지 전송에 유리

(4) 특징

① 통신할 때마다 매번 통신 경로가 설정되어 고정

② 대량 데이터 고속으로 전송 가능

③ 교환기에서 접속을 위한 전달 지연 문제 발생

④ 실시간 대화용 응용 가능

⑤ 고정된 대역폭 전송 방식

2. 메시지 교환망(message switching)

(1) 송신측 노드에서 메시지를 받아 적절한 회선이 빌 때까지 저장하였다가 메시지의 길이 그대로

다음 노드로 전송하는 방식

(2) 축적 교환(store and forward) 방식의 사용으로 데이터 지연 시간 발생

(3) 특징

① 메시지 단위로 정보 전송

② 통신회선의 효율적 이용

③ 메시지의 분실을 방지하기 위해 번호, 날짜, 시간 등을 메시지에 추가하여 전송

3. 패킷 교환망(packet switching)

(1) 최초의 패킷교환망 : 알파넷(ARPHANET)

(2) 회선과 메시지 교환망의 장점을 결합한 패킷(packet) 단위의 전송망

Page 44: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

* 패킷 : 메시지를 일정한 크기로 분할한 단위

(3) 종류

① 가상회선(virtual sircuit) 방식

② 데이터그램(datagram) 방식

(4) 특징

① 패킷은 데이터 송수신처와 제어 코드 등의 정보를 포함

② 다른 회선으로 우회전송 가능

③ 오류 검출 기능 수행, 재전송 가능

④ 경로 배정, 트래픽 제어, 오류 제어 기능 필요

4. 셀교환

(1) 패킷보다 작은 셀(53byte) 단위의 고속 교환방식

(2) 모든 형태의 정보를 종합적으로 교환 가능하다

6절 OSI 7계층 모델

1. OSI 7계층 모델

(1) 통신프로토콜 : 통신을 하기 위한 절차, 규범을 명시

(2) 프로토콜의 3요소:syntax, semantics, timing

(3) OSI(Open System Interconnection) 참조 모델

(4) OSI 참조 모델의 계층별 주요 기능

계 층 기 능

7 계층 응용 계층 응용 프로세스간의 정보 교환

6 계층 표현 계층 정보 표현 방식 관리, 암호화, 정보 압축

5 계층 세션 계층 시스템간의 대화를 위한 동기 설정

4 계층 전달 계층 호스트간의 메시지 단위의 정보 교환 및 관리,신뢰성

3 계층 네트워크 계층 통신 전담 프로세서간 네트워크를 통한 패킷 전송(패킷)

2 계층 데이터 링크 계층 물리적인 통신로 확보기능.(프레임)

1 계층 물리 계층 물리적 매체를 통한 전송기능(비트)

Page 45: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

7절 통신망(Network)

1. 구성요소

(1) 단말장치

(2) 교환장치

(3) 전송장치

2. 회선망(topology)의 유형

(1) 버스(bus)형

① 하나의 통신 회선에 여러 대의 노드를 연결한 형태

② 데이터가 있을 때 방송(broadcast) 방식으로 연결된 모든 노드에게 전송

(2) 트리(tree)형

① 원점(headend)에서 계층형태로 가지를 뻗어 나가는 구조

② 데이터는 양방향으로 모든 노드에게 전송

(3) 링(ring)형

① 원형의 형태로 인접한 두 개의 노드를 점- 대-점 방식으로 연결

② 버스형에 비해 유지보수 쉬움

③ 종류

1) 한 방향으로만 정보가 전달되는 단방향 링

2) 양방향으로 전송하는 이중 링

Page 46: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

(4) 성(star)형

① 중앙의 노드에 다른 노드들을 점- 대-점 방식으로 연결한 형태

② 중앙집중적 구조로 유지 보수가 쉽고 전송 제어가 간단

(5) 매시(mesh)형

① 주 컴퓨터의 중계 없이 직접 노드들 상의 정보 통신이 가능한 형태

② 일부 회선의 장애 발생 시 다른 경로를 통해 전송 가능

③ 복잡한 통신망 구조로 제어가 어려움

8절 근거리 통신망

1. 근거리 통신망

(1) 근거리 통신망(LAN, Local Area Network) : 동일 건물이나 일정 거리내에 있는 다양한 컴퓨터

관련 기기들을 상호 연결하여 이들 간에 빠른 속도로 정보를 교환 할 수 있도록 설계한 네트워

크 형태

Page 47: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

(2) 전송 방식에 의한 분류

① 베이스 밴드(base band)

1) 데이터 신호의 변조없이 자기 고유의 주파수 영역을 사용하는 방식

2) 디지털 신호를 변조없이 그대로 사용

② 브로드 밴드(broad band)

1) 디지털 신호를 아날로그 신호로 광대역으로 변조하여 전송하는 방식

2) 주파수 분할 다중화 방식 사용

③ 베이스 밴드와 브로드 밴드 방식 비교

항목 베이스 밴드 브로드 밴드

전송 매체 동축 케이블, UTP, 광섬유 동축 케이블

신호의 수 하나의 신호 다중 신호

신호 디지털 아날로그

속도 1~16Mbps (1~15Mbps) * (20~30 채널)

(3) 액세스 방법에 의한 분류

① CSMA/CD (Carrier Sense Multiple Access with Collision Detect)

* 데이터 전송 전에 충돌을 방지하기 위해 회선 사용 여부(carrier sensing)를 확인 후 송신 중인

패킷이 없을 때에만 전송하는 방식

② 토큰 패싱(token passing)

1) 토큰을 이용하여 순서에 따라 데이터를 전송하는 방식

2) 토큰 링(token ring) 방식

3) 토큰 버스(token bus) 방식

Page 48: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

2. LAN의 표준안 동향

(1) 이더넷(ethernet)

① 제록스사 개발

② IEEE 802.3 표준안

③ 종류 : 10 Base-5, 10 Base-2, 10 Base-T

(2) 고속 이더넷(fast ethernet)

① 이더넷의 고속 버전, 100 Base-T

② CSMA/CD 방식기반

(3) 기가비트 이더넷(gigabit ethernet)

① 1Gbps 의 속도 제공

② 기존 이더넷 방식의 사용으로 호환성이 높음

(4) FDDI(Fiber Distibuted Data Interface)

① 고속 LAN 의 대표적인 표준

② 100Mbps 의 속도를 갖는 두 개의 링으로 구성

③ 토큰 패싱 방식을 사용

④ IEEE 802 시리즈

3. 인터네트워킹 - 인터네트워킹의 의미

(1) 인터네트워킹(internetworking) : 서로 독립적으로 운영되고 있는 네트워크와 네트워크를 연결

하여 사용할 수 있도록 하는 것

Page 49: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

4. 네트워크 장치

(1) 네트워크 장치

① LAN 과 WAN 을 구성하기 위해 사용

② 네트워크 장치의 종류

(2) 리피터 (Repeater)

① 물리 계층에서 동작

② 증폭기의 일종으로 네트워크를 통해서 신호를 멀리 보낼 경우 케이블을 통해서 전송

③ 일정한 거리 이상의 먼 거리를 가게 되면 전압이 점점 약해짐

(3) 허브 (Hub)

① 물리 계층에서 동작

② 네트워크 상의 여러 장치들을 연결하는 것으로 포트 연결을 통하여 네트워크를 확장시키는 역할

③ 종류

1) 더비 허브

2) 스위칭 허브

Page 50: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

(4) 브리지 (Bridge)

① 물리 계층 및 데이터 링크 계층이 연결을 제공하는 기기

② 데이터를 전송할 때 주소를 확인하고 판단하여 접속을 수행

③ 환경 설정이 불필요하고 재배치가 용이함

④ 다양한 속도에 사용이 가능하며 네트워크 관리가 용이

⑤ 경로 선택시 지연을 유발하여 장애 발생시 대처가 어려움

(5) 스위치 (Switch)

① 네트워크를 작게 분할하여 정체가 되는 구역을 줄이는 역할을 하는 장치

② 데이터의 주소 정보를 사용해 네트워크의 흐름을 통제

③ 목적지 주소를 가진 장치로 데이터를 보내므로 불필요한 통신량을 줄여줌

(6) 라우터 (Router)

① 동일한 프로토콜을 사용하는 네트워크를 연결하는 장치

② 전달하고자 하는 데이터에 포함된 수신처의 주소를 읽고 해당 주소로 향하는 가장 최적의 경로

를 이용하여 전송하는 장치

③ 통신 경로가 자동으로 설정되므로 유지보수에 용이하고 대규모 통신망을 쉽게 구성

④ 초기에 환경설정이 어렵고 일부 프로토콜만을 지원하며 가격이 비쌈

Page 51: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

(7) 게이트웨이 (Gateway)

① 프로토콜이 전혀 다른 네트워크 간을 연결하여 통신을 가능하게 해주는 장치

② 네트워크 사이의 유연성 제공

③ 복잡하고 비쌈

Page 52: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 4강 인터넷(Internet)

1절 인터넷의 개요

1. 인터넷

(1) 전 세계의 수많은 컴퓨터들이 연결된 네트워크들의 집합체

(2) 1969년 미국 국방성에서 추진한 알파넷(ARPAnet : The Advanced Research Projects Agency

Network)에서 시작되었는데, 이 알파넷은 국방성의 계약업체와 여러 대학의 컴퓨터들을 연결하

는 데 사용

(3) 당시 군사적 목적의 인터넷은 1980년대 초부터 민간용으로 사용되기 시작함

(4) 1990년대 초에 월드 와이드 웹과 웹 브라우저가 개발되면서 인터넷의 사용자 수가 급격히 증가

하기 시작

(5) 인터넷을 이용해서 사용할 수 있는 서비스 : 월드 와이드 웹, 전자우편, FTP, 텔넷 등

① 월드 와이드 웹

1) 1989년 유럽 입자 물리 연구소(CERN : European Laboratory for Particle Physics)에서 고안

2) 인터넷에서 정보를 쉽게 찾을 수 있도록 하는 서비스

3) 하이퍼텍스트 방식을 이용하는데, 임의의 단어를 클릭하면 연결된 문서로 이동하게 되어 원하

는 정보를 손쉽게 찾을 수 있음

② 전자우편

1) 인터넷을 통해 편지를 교환하는 서비스로, 텍스트로 된 편지뿐만 아니라 그림, 소리, 동영상

등으로 이루어진 편지도 주고받을 수 있음

2) 이용하는 방법에는 아웃룩 익스프레스와 같은 메일 관리 프로그램을 이용하는 방법과 네이버,

다음 등에서 제공하는 웹 메일 서비스를 이용하는 방법

③ FTP

* 인터넷을 통해 컴퓨터 간에 파일을 송수신하는 서비스로 큰 용량의 파일도 빠르게 송수신할 수

있음

④ 텔넷

* 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신의 컴퓨터처럼 사용할 수 있는 원격 접속 서비스

Page 53: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

응용 계층

(Application Layer)

ㆍ사용자 응용 프로그램으로부터 요청을 받아서 이를 적절한 메시지로 변

환하고 하위계층으로 전달한다.

ㆍFTP, Telnet, SMTP 등의 서비스가 이 계층에 해당되는 프로그램이다.

2. TCP/IP란

(1) 통신 프로토콜을 가리키는 가장 일반적인 말로  TCP는 Transmission Control Protocol IP는

Internet Protocol 의 약자이다

(2) 현재 인터넷의 표준 프로토콜로서 서로 다른 기종간의 컴퓨터 (일반 PC와 중형 호스트, IBM PC

와 매킨토시 등) 사이의 통신을 위한 전송규약을 말한다.  유닉스 및 리눅스에서도 기본적인 프

로토콜이다

(3) TCP/IP의 대표적인 프로토콜 : TCP, UDP, IP

3. TCP 프로토콜

(1) 신뢰성 있는 전송, 즉, 상대방과의 연결이 확실히 이루어져야 모든 통신이 가능하다

① → 접속 설정

: 3way-handshaking을 토대로 접속이 이루어진다. 한쪽에서 접속을 요청하면 다른 한 쪽에서 이

요청에 대한 응답을 하고, 접속을 요청했던 쪽은 그 응답에 대한 응답을 보냄으로써 3단계를

거쳐 접속이 이루어진다

② → 데이타 전송

1) 가장 중요한 단계로 데이터 전송을 위한 에러 검사와 그 에러에 대한 제어, 흐름에 대한 제어

를 한다.

2) 에러 검사는 checksum을 통해 이루어지며, 그 외에도 중복되는 패킷의 검사, 고장 여부를 검사

하게 된다.

③ → 접속 해제

: 접속을 끊음

4. IP 프로토콜

(1) 비연결형, 비신뢰성 서비스

(2) 목적지 주소지정과 경로설정(라우팅)

(3) 패킷의 분해와 조립 기능

5. TCP/IP 프로토콜의 기능

Page 54: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

전송 계층

(Transport Layer)

ㆍIP에 의해 전달되는 패킷의 오류를 검사하고 재전송을 요구하는 등의

제어를 담당한다.

인터넷 계층

(Internet Layer)

ㆍ전송 계층에서 받은 패킷을 목적지까지 효율적으로 전달하는 것만 고려

한다. 즉, 데이터그램이 가지고 있는 주소를 판독하고 네트워크에서 주

소에 맞는 네트워크를 찾아가서 해당 호스트가 받을 수 있도록 데이터

그램을 전송한다.

네트워크 연결 계층

(Network Access Layer)

ㆍ이더넷 카드 등으로 연결된 물리적인 네트워크를 의미한다.

ㆍ프레임을 물리적인 회선에 올리거나 내려받는 역할을 한다. 즉, 보내는

쪽은 상위 계층에서 받은 패킷을 프레임으로 만들어서 물리적인 회선에

올리게 되고, 받는 쪽은 필요한 데이터를 추출하여 조잡한 프레임을 패

킷으로 변환하여 상위계층으로 전달한다.

구 분 IPv4 IPv6

주소길이 32비트 128비트

표시방법 8비트씩 4부분으로 10진수로 표시

예) 202.30.64.22

16비트씩 8부분으로 16진수 표시

예) 2001:0230:abcd:ffff:0000:0000:ffff:1111

주소개수 약 43억개 약(43억× 43억× 43억× 43억)개 (거의 무한대)

주소할당 A, B, C, D 등 클라스 단위의

비순차적 할당(비효율적)

네트워크 서 규모 및 단말기 수에 따른 순차적

할당(효율적)

품질제어

베스트 에퍼트 방식으로 품질

보장이 곤란

(타입이나 서비스에 대한 QoS

일부지원)

등급별, 서비스별로 패킷을 구분할 수 있어

품질보장이 용이

(트래픽 클라스, 폴로 라벨에 의한 QoS지원)

6. OSI 7계층과 인터넷 프로토콜 관계

2절 인터넷 주소체계

1. IPv4와 IPv6

Page 55: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

보안기능 IPsec 프로토콜 별도 설치 확장기능에서 기본으로 제공

플러그 앤드

플레이없음 있음(오디오 컨키큐어레이션 가능)

모바일IP 상당히 곤란(비효율적) 용이(효율적)

웹캐스팅 곤란 용이(스코프 필드 증가)

2. IP 주소란?

(1) 네트워크 주소 부분에서는 어떤 네트워크에 속해 있는지 알 수 있고, 호스트 주소 부분으로 그

네트워크 내에서 특정 컴퓨터를 찾아낸다

(2) 총 32비트의 숫자로 8비트씩 4개로 되어 있다

(3) 각 부분은 점(dot)으로 구분

(4) 각 부분은 0~255 사이의 숫자로 되어 있는데 일련의 번호로 사용하지 않고 일정한 클래스로 나

누어 사용한다.

※ IP 주소 : 인터넷에 연결된 기기를 식별하는 유일한 번호로, 다음과 같이 4개의 10진수 형태로

구성된다.

① 네트워크 주소와 호스트 주소로 나뉘는 IP 주소

* IP 주소는 네트워크 주소와 호스트 주소로 나뉜다.

② 네트워크 주소 : 기기가 속해있는 네트워크를 식별하는 데 사용

③ 호스트 주소 : 그 네트워크 내에서 그 기기를 식별하는 데 사용

Page 56: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

구 분 A 클래스 B 클래스 C 클래스

* 한 네트워크의 의미

1) 한 네트워크에 포함된 모든 기기들은 같은 네트워크 주소를 갖고 있어야 하고, 한 네트워크

내에 같은 주소를 갖는 기기가 있으면 안 됨

2) 한 네트워크의 의미는 라우터와 같은 네트워크와 네트워크를 연결하는 기기 없이 기기들 사이

에 통신이 이루어지는 범위

3. IP 주소의 클래스

(1) 보통 A, B, C 클래스로 나누어 사용

(2) D 클래스는 다중 방송 통신(multicast)에 사용

(3) E 클래스는 비상용으로 예약

4. 클래스에 따른 IP 네트워크 범위

5. 주소 할당 주의 사항

(1) 호스트 부분 IP주소에 0과 255는 사용하지 않는다.

(2) 0.0.0.0 은 호스트가 포함되어 있는 네트워크 전체를 가리킬 때 사용한다.

(3) 255.255.255.255 는 네트워크의 브로드캐스트(broadcast) 주소로 사용된다.

(4) D 클래스에 해당하는 IP 주소는 호스트 IP 주소로 사용하지 않는다.

(5) 127.0.0.1 은 로컬 호스트에 IP 주소가 할당되어 있다

6. IPv4 address 의 클래스

Page 57: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

구분 비트ㆍ첫 번째 바이트의 첫

번째 비트가 0

ㆍ첫 번째 바이트의 처음

두 비트가 10

ㆍ첫 번째 바이트의 처음

세 비트가 110

Netid 첫 바이트 두 번째 바이트까지 세 번째 바이트까지

hostid 뒤의 세 바이트 뒤의 두 바이트 마지막 한 바이트

사용할 수 있는

네트워크2^7-2(126) 2^14-2(16,384) 2^21-2(2097152)

한 네트워크 내의

최대 호스트 수2^24-2(116777214) 2^16-2(65534) 2^8-2(254)

(1) A class

① 첫 번째 바이트의 첫 번째 비트가 0

② 첫 바이트의 나머지 7비트가 netid이고, 뒤의 세 바이트가 hostid이다.

사용할 수 있는 네트워크는 2^7-2(126)이고, 한 네트워크 내의 최대 호스트 수는 2^24-2(116777214)

가 된다.

(2) B class

① 첫 번째 바이트의 처음 두 비트가 10

② 첫 바이트가 나머지 6비트가 netid이고, 뒤의 세 바이트가 hostid이다.

③ 사용할 수 있는 네트워크는 2^14-2(16,384)이고, 한 네트워크 내의 최대 호스트 수는 2^16-2(65534)가

된다.

④ 172.16.0.0부터 172.31.255.255까지가 내부 IP 주소로 미리 예약되어 있다.

(3) C class

① 첫 번째 바이트의 처음 세 비트가 110

② 세 번째 바이트까지가 netid이고, 마지막 한 바이트가 hostid이다.

Page 58: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

③ 사용할 수 있는 네트워크는 2^21-2(2097152)이고, 한 네트워크 내의 최대 호스트 수는 2^8-2(254)가

된다.

7. IPv4의 IP 부족문제의 해결방안

(1) NAT(Network Address Translation)

* 사설 IP를 사용하면서 공인 IP를 다수가 공유할 수 있다

(2) 서브넷 마스크

* IP 주소 중 호스트 주소의 일부를 이용해 서브넷으로 활용 서브넷은 독립적인 네트워크이고 라우

터를 통해서만 통신이 가능

8. DNS(Domain Name System)

(1) 도메인 이름에 대한 IP 주소를 등록하고 있으면서 도메인 이름에 대한 IP 주소를 알려주거나 IP

주소에 대한 도메인 이름을 알려주는 일을 담당

(2) DNS(도메인 이름 서비스:Domain Name System)는 호스트의 도메인 이름을 호스트의 네트워크 주

소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.

(3) 인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.example.com과 같은 주 컴퓨터의 도메인

이름을 192.168.1.0과 같은 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스

시스템이다

※ 네트워크 환경

Page 59: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

※ 데이터 전송의 시작

데이터 전송의 시작은 애플리케이션에서 인터넷 애플리케이션은 먼저 전송할 데이터를 운영체제

내의 TCP/IP 소프트웨어에게 전달하는데, 이때 데이터를 받을 PC2의 IP 주소와 포트 번호도 함께

전달한다.

※ TCP와 UDP

(1) 운영체제 내의 TCP/IP 소프트웨어

(계층적 구조의 TCP/IP)

(2) 애플리케이션으로부터 전달받은 데이터와 수신측 정보는 우선 TCP 계층을 거쳐 IP 계층으로 전달

(3) TCP 계층은 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol) 프로토콜 두

개로 구분. 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고, 간단한 데이터를 빠른 속도

로 전송하는 애플리케이션에서는 UDP를 사용

※ 포트 번호 등을 추가하는 TCP와 UDP

(TCP를 이용한 통신) (데이터를 받은 수신 측에서 응답)

Page 60: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

※ 제어 정보와 포트 번호 등을 추가하는 TCP

(1) TCP는 데이터 앞에 TCP 헤더를 추가한 후 이를 IP로 보냄

(2) TCP 헤더에 포함된 정보

(3) 통신 시작 단계에서의 SYN과 ACK 제어 정보

Page 61: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

(4) 순서 번호와 인정 번호

(5) 큰 데이터는 TCP에서 적절한 크기로 분할

※ IP 주소 등을 추가하는 IP

Page 62: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

※ 데이터 보낼 곳의 IP 주소 정하기

(1) 라우팅 테이블 : 데이터를 어디로 보낼지를 나타낸 표

(2) 라우팅 테이블 : 데이터를 어디로 보낼지를 나타낸 표

Page 63: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

(3) IP 주소가 111.111.111.1인 라우터1로 데이터 전달

※ MAC 주소 등을 추가하는 IP

* 라우팅 테이블을 이용해서 데이터를 보낼 상대의 IP 주소가 정해졌으면 상대 네트워크 카드의 MAC

주소를 포함하는 MAC 헤더를 추가

* MAC (Media Access Control) 주소 : 모든 네트워크 카드에 부여된 유일한 번호로 LAN 상에서의 실

제 데이터 전송은 이 주소에 의해 이루어짐

(MAC 헤더에 포함된 정보)

Page 64: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

* 수신 측의 MAC 주소 구하기

※ 라우터를 경유해서 수신 LAN 라우터로

(1) 이렇게 해서 완성된 메시지를 네트워크 카드에서 전기 신호로 변환해서 라우터1의 e1 인터페이

스로 전송

(2) 메시지를 받은 라우터1은 MAC 헤더의 수신자 MAC 주소가 자신의 MAC 주소임을 확인

Page 65: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

(3) MAC 주소에 문제가 없으면 MAC 헤더를 제거

(4) 라우터1의 라우팅 테이블을 이용해서 보낼 곳 결정

(5) 수신측의 IP 주소: 222.222.222.3

(6) 기본 게이트웨이 선택

(7) s1 인터페이스를 통해 133.133.133.2의 주소를 지닌 라우터2로 보내기로 결정

Page 66: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

(8) 라우터1에서 MAC 헤더를 추가하지 않고 s1 인터페이스를 통해 라우터2로 데이터를 전송

※ 수신 LAN 라우터에서 목적지로

(1) 라우터2의 라우팅 테이블을 이용해서 보낼 곳 결정

(2) 수신 측의 IP 주소: 222.222.222.3

(3) e1 인터페이스를 통해 222.222.222.3 호스트로 직접 전송

(4) 라우터2와 목적지는 같은 LAN 상에 있으므로 전송하기 전에 MAC 헤더를 추가

Page 67: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

16

(5) 완성된 데이터를 네트워크 카드를 통해 PC2로 전송

※ 최종 목적지에서

(1) 데이터를 받은 PC2는 MAC 헤더의 수신자 MAC 주소가 자신의 MAC 주소임을 확인하여 문제가 없으

면 MAC 헤더를 제거

Page 68: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

17

(2) IP 헤더의 수신 측 IP 주소가 자신의 IP 주소임을 확인하고 IP 헤더를 제거해 TCP로 보냄

(3) 데이터를 받은 TCP는 잘 받았다는 ACK 신호를 PC1에 보냄. 물론 PC1에서 PC2로 데이터가 전달된

과정과 동일한 절차를 거침

(4) PC1에서 전송한 데이터가 분할된 것이라면 TCP에서 분할된 데이터를 모으는 일을 한다.

(5) TCP 헤더를 제거하고 TCP 헤더의 정보 중 하나인 수신 측 포트 번호에 해당하는 애플리케이션으

Page 69: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

18

로 데이터를 전달한다.

Page 70: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 5강 자료구조

1절 자료구조

1. 자료와 자료구조

(1) 자료(data)

① 일의 바탕이 될 재료

② 프로그램을 수행하는데 필요한 재료

(2) 정보(information)

① 컴퓨터를 이용하여 정제한 자료

② 사용자의 요구에 따라 꼭 필요한 항목만 추출한 데이터

(3) 자료구조 : 자료 사이의 논리적인 관계가 프로그램에 의해 쉽게 이용되도록 구성한 개별적인

자료 원소들의 집합

2. 자료구조

: 자료구조란 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장

및 처리하는 모든 작업

(1) 자료구조의 내용

Page 71: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

(2) 자료의 형태에 따른 분류

(3) 디지털 시스템에서의 자료의 표현[1장복습]

① 숫자, 문자, 그림, 소리, 기호 등 모든 형식의 자료를 2진수 코드로 표현하여 저장 및 처리

② 2진수 코드

1) 1과 0, ON과 OFF, 참(True)과 거짓(False)의 조합

2) 2진수 코드의 단위

* 예) n=2 인 경우

(n개의 비트로 2n개의 상태 표현, n=2인 경우)

Page 72: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

* 예) n=4 인 경우

(n개의 비트로 2n개의 상태 표현, n=4인 경우)

(4) 자료의 종류 [1장복습]

Page 73: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

(5) 10진수의 표현[1장복습]

① 10진수의 존(Zone) 형식의 표현

1) 10진수 한자리를 표현하기 위해서 1바이트(8비트)를 사용하는 형식

2) 존 영역

가) 상위 4비트

나) 1111로 표시

3) 수치 영역

가) 하위 4비트

나) 표현하고자 하는 10진수 한자리 값에 대한 2진수 값을 표시

4) 존 형식의 구조

(6) 수치 영역의 값 표현[1장복습]

* 4비트의 2진수에 대한 10진수 표현

(7) 여러 자리의 10진수를 표현하는 방법[1장복습]

① 10진수의 자릿수 만큼 존 형식을 연결하여 사용

② 마지막 자리의 존 영역에 부호를 표시양수

* (+) : 1100 음수(-) : 1101

(존 형식의 10진수 표현 형식)

Page 74: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

③ 존 형식으로 10진수를 표현하는 예

1) +213

2) -213

④ 팩(Pack) 형식의 표현

1) 10진수 한자리를 표현하기 위해서 존 영역 없이 4비트를 사용하는 형식

2) 최하위 4비트에 부호를 표시

3) 양수(+) : 1100

4) 음수(-) : 1101

(팩 형식의 10진수 표현 형식)

5) 팩 형식으로 10진수를 표현하는 예

가) +213

0010 0001 0011 1100

2 1 3 C(+)

나) -213

0010 0001 0011 1101

2 1 3 D(-)

(8) 2진수의 정수 표현

① n비트의 부호 절대값 형식

1) 최상위 1비트 - 부호 표시

2) 양수(+) : 0

3) 음수(-) : 1

4) 나머지 n-1 비트 - 이진수 표시

5) 1바이트를 사용하는 부호 절대값 형식의 예

Page 75: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

(9) 1의 보수(1' Complement) 형식

① 음수의 표현에서 부호 비트를 사용하는 대신 1의 보수를 사용하는 방법

1) n비트의 2진수를 1의 보수로 만드는 방법

가) n비트를 1로 한 이진수에서 변환하고자 하는 이진수를 뺀다

나) 예) 10진수 21을 1의 보수로 만들기 (1바이트 사용)

1 1 1 1 1 1 1 1 - 0 0 0 1 0 1 0 1 ☜ 21의 2진수 값 1 1 1 0 1 0 1 0 ☜ 21의 1의 보수

다) 1바이트를 사용하는 1의 보수 형식의 예

+ 21 - 21

라) 부호절대값형식의 양수 표현과 같음

(10) 2의 보수(2' Complement) 형식

① 음수의 표현에서 부호 비트를 사용하는 대신 2의 보수를 사용하는 방법

1) n비트의 2진수를 2의 보수로 만드는 방법

가) 1의 보수에 1을 더해준다.

나) 예) 10진수 21을 2의 보수로 만들기 (1바이트 사용)

1 1 1 1 1 1 1 1 - 0 0 0 1 0 1 0 1 ☜ 21의 2진수 값 1 1 1 0 1 0 1 0+                1 ☜ 21의 1의 보수

1 1 1 0 1 0 1 1 ☜ 21의 2의 보수

다) 1바이트를 사용하는 2의 보수 형식의 예

+ 21 - 21

라) 부호절대값 형식의 양수 표현과 같음

마) 2진수 정수의 세 가지 표현 방법에서 양수의 표현은 같고, 음수의 표현만 다르다

Page 76: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

※ 2진수의 실수 표현

① 고정 소수점 표현

1) 소수점이 항상 최상위 비트의 왼쪽 밖에 고정되어있는 것으로 취급하는 방법

2) 고정 소수점 표현의 00010101 은 0.00010101 의 실수 값을 의미

② 부동 소수점 형식의 표현

1) 고정 소수점 형식에 비해서 표현 가능한 값의 범위가 넓다.

2) 실수를 부호와 지수, 소수의 세 부분으로 구분하여 표현

3) 4바이트를 사용하는 부동 소수점 형식

※ 문자자료의 표현

① 문자에 대한 이진수 코드를 정의하여 사용

② 문자에 대한 이진수 코드표(BCD 코드, EBCDIC 코드, ASCII 코드)

1) BCD 코드

가) 6비트를 사용하여 문자 표현

나) 상위 2비트 : 존 비트

다) 하위 4비트 : 2진수 비트

라) 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자와 특수문자를 표현

마) BCD 코드의 구성

바) BCD 코드 표

* 예) 영문자 A에 대한 BCD 코드 ☞ 010001

Page 77: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

2) EBCDIC 코드

가) 8비트를 사용하여 문자 표현

나) 상위 4비트 : 존 비트

다) 하위 4비트 : 2진수 비트

라) 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자/소문자와 특수문자를 표현

마) EBCDIC 코드의 구성

바) EBCDIC 코드 표

* 예) 영문자 A에 대한 EBCDIC 코드 ☞ 11000001

3) ASCII 코드

가) 7비트를 사용하여 문자 표현

나) 상위 3비트 : 존 비트

다) 하위 4비트 : 2진수 비트

라) 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자/소문자와 특수문자를 표현

Page 78: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

마) ASCII 코드의 구성

바) ASCII 코드 표

* 예) 영문자 A에 대한 ASCII 코드 ☞ 1000001

※ 논리자료

: 논리값을 표현하기 위한 자료 형식

① 논리값

1) 참(true)과 거짓(false), 1과 0

2) 1바이트를 사용하여 논리자료를 표현하는 방법

② 방법1)

1) 참 - 최하위 비트를 1로 표시. 00000001

2) 거짓 - 전체 비트를 0으로 표시. 00000000

③ 방법2)

1) 참 - 전체 비트를 1로 표시. 11111111

2) 거짓 - 전체 비트를 0으로 표시. 00000000

④ 방법3)

Page 79: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

1) 참 - 하나 이상의 비트를 1로 표시

2) 거짓 - 전체 비트를 0으로 표시. 00000000

※ 포인터 자료

① 메모리의 주소를 표현하기 위한 자료 형식

② 변수의 주소나 메모리의 특정 위치에 대한 주소를 저장하고 주소연산 하기 위해 사용

※ 문자열(string) 자료

① 여러 문자로 이루어진 문자의 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 저장하는 자

료 형식

② 하나의 문자열 자료에 포함된 부분문자열을 표현하는 방법

1) 방법1) 부분문자열 사이에 구분자를 두고 연속 저장하는 방법

2) 방법2) 가장 긴 부분문자열의 길이에 맞추어 고정 길이로 연속 저장하는 방법

3) 방법3) 부분문자열을 연속 저장하고 각 부분문자열에 대한 포인터를 사용하는 방법

③ 부분문자열의 표현 예

1) 표현할 문자열 : {COMPUTER, DATA STRUCTURE, STRING }

2) 방법1) 구분자를 사용하는 표현 : 구분자로 세미콜론(;) 사용

3) 방법2) 고정길이를 사용하는 표현

4) 방법3) 포인터를 사용하는 표현

④ 부분 문자열 표현 방법의 비교

Page 80: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

2절 선형구조

1. 배열

(1) 배열(array)

① 같은 자료형(data type)을 갖는 두 개 이상의 데이터 항목을 하나의 변수 이름으로 묶고 선언해

서 사용하는 구조

② 자료를 컴퓨터 기억장치 내의 연속적인 기억장소에 저장하여 순차적으로 또는 임의적으로 접근

할 수 있는 가장 간단한 선형 자료구조

(2) 원소(element) / 멤버(member)

* 배열을 구성하는 같은 자료형의 각 항목

(3) 다차원 배열(multi-dimensional array)

* 두 개 이상 여러 개의 배열로 구성된 배열

(4) 배열로 사용할 기억공간을 할당하는 방법

① 포트란, 코볼

1) 정적 할당(static allocation)

2) 원시 프로그램이 컴파일될 때 기억공간이 할당됨

② 파스칼, C

1) 동적 할당(dynamic allocation)

2) 기억장소 할당이 프로그램 실행 시 이루어지는 방법

2. 1차원 배열

(1) 가장 단순한 형태의 배열

* 기억장치 내에서 같은 자료형을 갖는 원소가 연속적인 기억장소에 할당되어 순서적으로 데이터를

저장하게 되어 있는 자료구조

(2) 하한 L(lower bound), 상한 U(upper bound)

(3) 배열 원소 수는 U-L+1

(4) C언어에서의 배열 a[100]

* 하한은 0이고, 상한은 99로 모두 100개의 기억장소가 할당되는 것

(5) 컴퓨터 기억장치에서 고유의 주소를 부여받는 최소단위가 바이트이므로 배열의 각 원소가 4바이

트를 차지한다면 배열의 크기는(U-L+1)× 4가 된다.

Page 81: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

(6) 배열의 첨자가 i인 원소 a(i)의 주소의 계산

* address(a(i)) = address(a(L))+k× (i-L)

3. 다차원 배열(multi-dimensional array)

(1) 2차원 배열(two-dimensional array 또는 matrix)

① 같은 크기의 1차원 배열이 여러개 모여서 이루어진 배열

② 행렬(matrix)

1) 가로줄의 벡터 : 행(row)

2) 세로줄의 벡터 : 열(column)

③ 2차원 배열의 상한과 하한 일반화

* b(L1..U1, L2..U2) 로 표시

(2) 컴퓨터 기억장치

* 1차원으로 구성되어 있는 선형구조

(3) 2차원 배열을 선형적 기억장소에 저장시키는 방법

① 행 우선 순서(row-major order)

1) 코볼, PL/I, 파스칼, C

2) 2차원 배열을 행 우선 순서로 저장할 때 원소 b(i, j) 주소는 다음과 같이 계산

* address(b(i, j)) = address(b(L1, L2))+(i-L1)× (U2-L2+1)× k+(j-L2)× k

② 열 우선 순서(column-major order)

1) 포트란

2) 2 차원 배열을 열 우선 순서로 저장했을 때 a(i, j) 의 주소는 다음 식으로 계산

* address(a(i, j)) = address(a(L1, L2))+(j - L2)× (U1-L1+1)× k+(i-L1)× k

Page 82: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

3. 희소 행렬(sparse matrix)

(1) 행렬의 원소값이 0인 원소가 많은 행렬

* (ex)

(2) 많이 쓰이는 저장 방법

* 0이 아닌 원소를 < 행, 열, 원소값>의 벡터로 열이 3인 2차원 배열 이용

4. 선형 리스트(linear list, ordered list)

(1) 어떤 순서에 의해 나열된 항목이 여러 개인 데이터 모임

(2) 순서 리스트(ordered list)

(3) 순차적 리스트(sequential list)

* ex1) 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일

* ex2) 빨강, 주황, 노랑, 초록, 파랑, 남색, 보라

(4) (a0, a1, a2, ....., an-1) 으로 표시

(5) 원소 또는 노드

* 선형 리스트를 구성하는 각 항목

(6) 리스트 크기

* 리스트를 이루는 원소 수 n

(7) 리스트 연산

① 호출(access) : 리스트를 구성하는 임의의 원소 위치를 파악하여 데이터에 접근하는 연산

② 삽입(insertion) : 리스트에 새로운 원소를 집어 넣는 연산

③ 삭제(deletion) : 리스트에 어떤 원소를 제거하는 연산

④ 갱신(update) : 리스트에 들어 있는 어떤 원소의 내용을 변경시키는 연산

⑤ 검색(search) : 리스트에서 어떤 특정 원소를 찾는 연산

⑥ 정렬(sort) : 리스트를 구성하는 모든 원소들을 어떤 순서로 재배치하는 연산

⑦ 복사(copy) : 리스트를 전부 또는 일부 복사하여 새로운 리스트로 만드는 연산

⑧ 분리(split) : 리스트 하나를 리스트 두 개 이상으로 나누는 연산

⑨ 합병(merge) : 리스트 둘 이상을 리스트 하나로 합치는 연산

Page 83: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

5. 연결 리스트(linked list)

(1) 선형 리스트를 컴퓨터 내부에 저장하는 방법

① 순차적 사상(sequential mapping) : 1차원 배열 이용

② 비순차적 사상(non-sequential mapping) : 포인터 변수(링크)를 사용하는 연결 리스트로 저장

(2) 연결 리스트를 구성하는 노드 : 데이터 필드(data field)와 링크 필드(linked field) 가지고

있음

(3) 단일 연결 리스트(singly linked list) : 리스트를 구성하는 각 노드가 링크 필드를 하나만 갖

고 있는 연결 리스트

(4) 원형 연결 리스트(circular linked list) : 마지막 모드를 헤드 노드와 연결시켜 원형으로 만든

리스트

(5) 이중 연결 리스트(doubly linked list)

① 링크 필드 두 개를 사용하는 리스트

② 다중 연결 리스트(multi-linked list) : 연결 리스트를 구성하는 각 노드가 링크 필드 두 개

이상을 사용하는 연결 리스트

(6) 이중 원형 연결 리스트 : 이중 연결 리스트에서 첫 번째 노드 링크와 마지막 노드 링크를 서로

연결시켜 원형으로 구성한 것

6. 스택(stack)

(1) 원소의 삽입과 삭제가 한쪽 끝인 톱(top)에서만 이루어지도록 제한하는 특별한 형태의 자료구조

① 푸쉬(push) : 원소를 삽입하는 연산

② 팝(pop) : 원소를 삭제하는 연산

Page 84: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

(2) 스택의 구조

(3) 후입선출(LIFO, Last-In First-Out) 리스트 : 가장 나중에 삽입한 원소를 가장 먼저 삭제함

(4) 푸쉬다운(push-down) 리스트 : 스택으로 구성되는 리스트는 연속적인 푸쉬 연산에 의해 만들어짐

(5) 스택에서의 삽입과 삭제

(6) 오버플로우(overflow) 발생 : 스택이 가득 차서 더 이상 삽입할 수 없을 경우

(7) 언더플로우(underflow) 발생 : 스택이 비어서 더 이상 삭제할 수 없을 경우

(8) 스택의 오버플로우를 처리하기 위한 방안

① 이중 스택 구조

② 다중 스택 구조

7. 큐(queue)

(1) 새로운 원소 삽입이 한 쪽에서만 이루어지고, 삭제는 다른 한 쪽에서만 이루어지는 특별한 형태

의 자료구조

(2) 리어(rear) : 큐에서 원소 삽입(enqueue)이 일어나는 한 쪽 끝

(3) 프론트(front) : 큐에서 원소 삭제(dequeue)가 일어나는 다른 쪽 끝

Page 85: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

16

(4) 선입선출(FIFO, First-In First-Out) 리스트 : 제일 먼저 삽입된 원소가 제일 먼저 삭제됨

(5) 큐에서의 삽입과 삭제

(6) 구현 : 배열이나 연결리스트 사용하여 구현

(7) 배열로 구현한 큐 이동 문제를 해결하기 위한 방법 : 원형 큐(circular queue) 사용

(8) 원형 큐의 개념도

8. 데크(Deque)

(1) 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조이다.

① Double Ended Queue의 약자이다.

② Stack과 Queue의 장점만 따서 구성한 것이다.

Page 86: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

17

③ 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력 제한과, 입력은 양쪽에서 일

어나고 출력은 한 곳에서만 이루어지는 출력 제한이 있다.

④ 입력 제한 데크: Scroll

⑤ 출력 제한 데크: Shelf

3절 비선형 구조

1. 트리 - 트리의 기본 개념

(1) 뿌리(root)를 최상위에 두고 거꾸로 서 있는 형태

(2) 노드(node)라고 하는 정보 항목이 에지(edge)로 연결되어 계층적 구조를 이루는 비선형 자료구

조(non-linear data structure)

(3) 계층적 자료구조(hierarchical data structure)

(4) 예) K 대학의 조직구조

(5) 노드 차수(degree) : 한 노드가 가지고 있는 서브트리(subtree) 수

(6) 트리의 차수(degree of tree) : 트리에 있는 노드 차수 중에서 가장 큰 차수

(7) 리프 노드(leaf node) 또는 단말 노드(terminal node) : 차수가 0인 노드

Page 87: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

18

(8) 비단말 노드(nonterminal node) : 차수가 1이상인 노드

(9) 트리의 깊이(depth) 또는 높이(height) : 트리에서 가장 큰 레벨

(10) 예) 트리

(11) 부모 노드(parent node) : 어떤 노드에서 그 노드 바로 위의 상위 레벨에 있으면서 그 노드와

에지로 연결된 노드

(12) 자식 노드(child node) : 어떤 노드 바로 아래 하위 레벨에 있으면서 에지로 연결된 노드

(13) 형제 노드(siblings node) : 부모 노드가 같은 노드

(14) 단말 노드(terminal node) : 자식이 없는 노드

(15) 어떤 노드의 선조(ancestor) : 그 노드에서 루트에 이르는 경로 위에 있는 모든 노드

(16) 어떤 노드의 후손(descendents) : 그 노드와 에지로 연결되어 있으면서 하위레벨에 있는 모든

노드

(17) 숲(forest) : 독립적인 여러 트리의 집단

2. 이진 트리(binary tree)

(1) 모든 노드들이 2개의 서브트리를 갖는 특별한 형태의 트리

Page 88: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

19

(2) 각 노드가 자식 노드를 최대한 2개 까지만 가질 수 있는 트리

① 왼쪽 자식 노드(left child node)

② 오른쪽 자식 노드(right child node)

(3) 이진트리는 왼쪽 서브트리(left subtree)와 오른쪽 서브트리(right subtree)를 분명하게 구분

(4) 두 개의 다른 이진 트리

(5) 이진 트리가 일반 트리와 다른점

① 노드 차수가 2로 제한된다는 점

② 공백 트리 개념이 있음

③ 서브트리 순서를 구별함

(6) 깊이가 k인 이진 트리에서 최대 노드 수 : 2k+1-1

(7) 포화 이진 트리(full binary tree) : 노드의 총 개수가 2k+1-1인 트리

* 예)

Page 89: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

20

(8) 완전 이진 트리(complete binary tree) : 높이가 k면서 총 노드의 수 n이 최대 노드 수인

2k+1-1 보다 작고 노드 번호가 포화 이진 트리와 1부터

n까지 모두 일치하는 트리

* 예)

3. 이진 트리 순회(binary tree traversal)

(1) 트리의 노드가 데이터를 저장하는데 일정한 규칙에 따라 이진 트리의 모든 노드를 꼭 한 번씩만

방문하는 것

(2) 전위 순회(preorder traversal) : 루트 노드를 방문 → 왼쪽 서브트리를 전위 순회 → 오른쪽

서브트리를 전위 순회

(3) 중위 순회(inorder traversal) : 왼쪽 서브트리를 전위 순회 → 루트 노드를 방문 → 오른쪽

서브트리를 전위 순회

(4) 후위 순회(postorder traversal) : 왼쪽 서브트리를 전위 순회 → 오른쪽 서브트리를 전위 순회

→ 루트 노드를 방문

(5) 전위, 중위, 후위 순회 경로

Page 90: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

21

4. 힙 트리(heap tree)

(1) 모든 노드의 키 값이 자식 노드의 키 값보다 작지 않은 완전 이진 트리(complete binary tree)

(2) 최대 힙(max heap) : 모든 노드의 키 값이 자식 노드의 키 값보다 작지 않은 힙 트리

(3) 최소 힙(min heap) : 모든 노드의 키 값이 자식 노드의 키 값보다 크지 않은 힙 트리

5. 이진 탐색 트리(BST, Binary Search Tree)

(1) 파일에서 임의의 원소를 삽입, 삭제, 검색하거나 또는 많은 자료를 순차적으로 정렬하는 데 사

용되는 효율적인 자료구조

(2) 이진 탐색 트리가 만족해야 할 성질

① 모든 노드는 트리에서 유일한 키 값을 가짐

② 왼쪽 서브트리에 있는 모든 노드의 키 값들은 루트의 키 값보다 작음

③ 오른쪽 서브트리에 있는 모든 노드의 키 값들은 루트의 키 값보다 큼

④ 왼쪽 서브트리와 오른쪽 서브 트리의 모두가 이진 탐색 트리

* 예)

Page 91: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

22

6. 그래프

(1) 그래프(graph)

① 1736년에 수학자 오일러(Euler)가 퀘닉스버그 다리 문제를 해결하는 데 처음으로 이용

② 퀘닉스버그 다리 문제 : 어느 한 쪽 육지를 출발하여 모든 다리를 단 한 번씩 경유하여 다시 출

발점으로 되돌아 올 수 있는가 하는 것

(2) 오일러

① 각 지역을 정점(vertex)으로 정의하고 모든 다리를 에지(edge)로 정의

1) 오일러 그래프 고안함으로써 문제 해결

2) 오일러 경로

② 임의의 정점을 출발하여 모든 에지를 한 번씩 거친 후에 출발한 정점으로 돌아오기 위해서는

홀수 개의 에지를 갖는 정점 수가 0 또는 2개여야 함을 증명

(3) 그래프 G

① 하나 이상의 정점 혹은 노드들의 집합 V와 두 정점의 쌍으로 구성되는 에지들의 집합 E로 이루

어져 있음

② 두 집합은 유한하다고 가정하며 G=(V, E)와 같이 표기

③ 정점 집합V 및 에지 집합 E가 그래프 G에 대한 것임을 밝히고자 할 때는 각각 V(G)와 E(G)로

나타냄

(4) 그래프의 구분

① 무방향 그래프(undirected graph)

1) 정점 사이가 방향성이 없는 에지로 연결된 그래프

2) 에지를 나타내는 정점 쌍에 순서가 없음

* <v1, v2>와 <v2, v1>은 같은 에지

② 방향 그래프(directed graph) 또는 다이그래프(digraph)

1) 에지가 화살표로 표현되어 방향성을 가지는 그래프

2) 정점 쌍에 나타난 정점의 순서 중요

가) <v1, v2>와 <v2, v1>은 같은 에지가 아님

나) <v1, v2>

* v1은 에지의 꼬리(tail)

* v2은 에지의 머리(head)

(5) 무방향 그래프와 방향 그래프

Page 92: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

23

① G(a) = (V, E)

② V = {1, 2, 3, 4}

③ E = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)}

(6) 다중 그래프(multi graph)

① 두 정점 사이에 한 개 이상의 에지들이 포함되는 그래프

② 엄격히 말해서 그래프로 취급하지 않음

(7) 단순 그래프(simple graph)

① 두 정점 사이에 0개 혹은 오직 1개의 에지를 갖는 그래프

② 그래프로 취급

(8) 가중치 그래프(weighted graph)

① 네트워크(network)

② 그래프의 에지에 가중치를 부여한 그래프

③ 가중치(weight) : 시간이나 비용 또는 거리와 같이 의미가 있는 값

Page 93: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

24

(9) 그래프의 경로(path) : 그래프에서 에지들을 이용하여 어느 정점에서 다른 정점으로 이르는 길

(10) 경로 길이(path length) : 경로 상의 에지들의 수

(11) 단순 경로(simple path) : 하나의 경로 상에 있는 모든 정점들이 서로 다를 경우

(12) 기본 경로(elementary path) : 하나의 경로 상에 있는 모든 에지들이 서로 다를 경우

(13) 사이클이 있는 방향 그래프

① 정점 2에서 출발하여 정점 4에서 끝나는 경로

1) P1 = <2, 4>

2) P2 = <2, 3>, <3, 4>

3) P3 = <2, 1>, <1, 3>, <3, 4>

4) P4 = <2, 1>, <1, 2>, <2, 4>

5) P5 = <2, 3>, <3, 1>, <1, 2>, <2, 4>

6) P6 = <2, 2>, <2, 4>

(14) 방향 그래프에서의 진입차수(in-degree) : 주어진 정점으로 향한 에지의 개수

(15) 방향 그래프에서의 진출차수(out-degree) : 주어진 정점에서 나가는 에지의 개수

(16) 그래프 G'가 있을 때 V(G')∈V(G)이고, E(G') ∈E(G)이면 그래프 G'는 그래프의 부분그래프

* 예)

(17) 연결 그래프(connected graph) : 무방향 그래프에서 서로 다른 모든 쌍의 정점들 사이에 경로

가 있을 경우

(18) 비사이클 그래프(acyclic graph)

① 트리(tree)

② 사이클이 없는 그래프

(19) 대그(DAG, Directed Acyclic Graph) : 방향이 있는 비사이클 그래프

7. 그래프의 순회

(1) 순회(traversal) : 그래프의 각 정점을 한 번씩만 방문하는 것

Page 94: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

25

(2) 깊이 우선 탐색(DFS, Depth First Search)

① 주어진 정점 v를 출발점으로 하여 이를 방문

② 다음 v에 인접하고 아직 방문하지 않은 정점 w를 선택하여 w를 출발점으로 해서 다시 깊이 우선

탐색을 시작

③ 이것을 모든 정점이 한 번씩 방문될 때까지 반복

④ 인접한 모든 정점이 이미 방문한 정점 v인 경우는 가장 최근에 방문했던 정점 중에서, 방문하지

않은 정점 w를 가진 정점을 선택하여 정점 w로 부터 다시 깊이 우선 탐색을 시작

(3) 너비 우선 탐색(BFS, Breadth First Search)

① 주어진 정점 v를 출발점으로 하여 이를 방문

② v에 인접한 정점 w들을 먼저 모두 방문하고 그 다음으로 w에 인접하고 아직 방문하지 않은 정점

들을 모두 방문

③ 이 과정을 반복하여 더 이상 방문할 노드가 없을 때까지 계속하여 방문

(4) 탐색을 위한 그래프

8. 신장 트리(spanning tree)

(1) 그래프 G의 에지의 일부 또는 전부와 모든 정점을 포함하는 트리

(2) 그래프 G의 최소 부분 그래프 : G의 부분 그래프 중 에지의 수가 가장 적은 것

(3) 깊이 우선 신장 트리(depth first spanning tree) : 깊이 우선 탐색 알고리즘을 이용하여 만들

어진 신장 트리

(4) 너비 우선 신장 트리(breadth first spanning tree) : 너비 우선 탐색 알고리즘을 이용하여 만

들어진 신장 트리

(5) 그래프와 신장 트리

Page 95: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

26

(6) 깊이 우선 신장 트리와 너비 우선 신장 트리

4절 정렬

1. 정렬(sorting)

(1) 주어진 데이터를 정해진 순서에 따라 재배열하는 연산(operation)

(2) 데이터를 정렬하는 방법

① 내부 정렬(internal sort)

1) 파일 크기가 크지 않아서 주기억장치 내에서 정렬이 이루어지는 방법

2) 삽입, 선택, 버블, 셀, 콤, 퀵, 합병, 힙, 리스트, 트리, 테이블, 기수 정렬 등

Page 96: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

27

② 외부 정렬(external sort)

1) 파일이 커서 디스크와 같은 보조기억장치를 이용하여 정렬하는 방법

2) 우선적으로 내부 정렬 방법으로 정렬된 여러 개의 파일을 합병함으로써 전체적으로 정렬된 파

일을 생성

2. 삽입 정렬(insertion sort)

(1) 맨 처음 하나의 레코드가 정렬되어 있는 것으로 가정하여 정렬되지 않은 리스트의 레코드들을

하나씩 순서에 맞게 제 위치를 찾아주는 방식으로 정렬하는 방법

(2) n=6이고 입력 데이터 (5 3 1 9 7 6)

① 초기상태 : [] 5 3 1 9 7 6

② i = 1 : [5 ] 3 1 9 7 6

③ i = 2 : [3 5] 1 9 7 6

④ i = 3 : [1 3 5] 9 7 6

⑤ i = 4 : [1 3 5 9] 7 6

⑥ i = 5 : [1 3 5 7 9] 6

⑦ i = 6 : [1 3 5 6 7 9]

3. 선택 정렬(selection sort)

(1) 리스트에서 가장 작은 키를 갖는 레코드를 찾아서 첫번째 위치에 있는 레코드와 교환하고, 그

다음 두 번째로 작은 키를 갖는 레코드를 찾아서 두 번째에 있는 레코드와 교환

(2) n=6이고 입력 데이터 (5 3 1 9 7 6)

Page 97: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

28

① 초기상태 : 5 3 1 9 7 6

② i = 1 : 1 3 5 9 7 6

③ i = 2 : 1 3 5 9 7 6

④ i = 3 : 1 3 5 9 7 6

⑤ i = 4 : 1 3 5 6 7 9

⑥ i = 5 : 1 3 5 6 7 9

⑦ i = 6 : 1 3 5 6 7 9

4. 합병 정렬(merge sort)

(1) 원래의 리스트를 이등분해서 두 개의 리스트로 분할한 다음, 각 리스트를 정렬한 뒤 이 두 리스

트를 합병하여 하나의 정렬된 리스트를 얻는 것

(2) n=8이고 입력 데이터 (7 14 3 9 20 6 18 11)

① 분할된 상태: 7 14 3 9 20 6 18 11

② 별도로 정렬된 상태: 3 7 9 14 6 11 18 20

③ i = 1 : 7 9 14 6 11 18 20 3

④ i = 2 : 7 9 14 11 18 20 3 6

⑤ i = 3 : 9 14 11 18 20 3 6 7

⑥ i = 4 : 14 11 18 20 3 6 7 9

⑦ i = 5 : 14 18 20 3 6 7 9 11

⑧ i = 6 : 18 20 3 6 7 9 11 14

⑨ i = 6 : 20 3 6 7 9 11 14 18

⑩ i = 6 : 3 6 7 9 11 14 18 20

Page 98: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

29

5. 퀵 정렬(quick sort)

(1) 주어진 입력 리스트를 특정한 키 값보다 작은 값을 갖는 레코드와 큰 값을 갖는 레코드로 분리

하여 논리적으로 두 개의 서브리스트로 재배열하고, 각각의 서브리스트에 대해서 순환적으로 다

시 퀵 정렬을 적용하여 입력 리스트의 모든 레코드를 정렬하는 방법

(2) 호어(C. A. R Hoare)에 의해 개발

(3) 평균적인 수행 시간이 가장 짧은 정렬 방법

(4) 분할 교환 정렬(partition exchanging sort)

(5) 제어키 또는 피벗이라는 키를 정하고 1차로 퀵정렬을 적용하여 제어 키를 중심으로 그 왼쪽에는

작은 값을 오른쪽에는 큰 값을 갖는 레코드를 배열

(6) 수행되는 순서

(7) n=9이고 입력 데이터 (2, 10, 7, 1, 8, 6, 9, 4, 3)

* Pivot의 위치는 [n/2]로 가정

Page 99: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

30

6. 기수 정렬(radix sort)

(1) 정렬한 원소의 키 값을 나타내는 숫자의 자릿수(radix)를 기초로 정렬하는 방법

① 먼저 정렬할 키의 가장 작은 자릿수(least significant digit)를 기준으로 분배하여 정렬

② 첫번째 패스의 결과를 두 번째로 작은 자릿수를 기준으로 다시 분배하여 정렬

③ 이러한 정렬과정을 키의 제일 큰 자릿수(most significant digit)까지 반복해서 수행하게 되면

최종적인 정렬 결과 얻음

(2) 사전식 정렬(lexicographical sort)

Page 100: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

31

Page 101: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 6강 데이터베이스

1절 데이터베이스 시스템 개요

1. 정보 처리 시스템

(1) 정보 시스템(information system)

① 하나의 기관을 위해 데이터를 수집, 조직, 저장하고 정보를 생성, 분배하는 수단

② 경영 정보 시스템, 군사 정보 시스템 등

2. 파일 처리 시스템

(1) 파일 처리 시스템의 문제점

① 데이터 종속성(data dependency) : 응용 프로그램과 데이터 사이의 상호 의존적인 경우

② 데이터 중복성(data redundancy)

1) 파일 시스템에서 동일한 데이터를 필요로 하는 경우

2) 일부분만 같은 데이터를 요구하는 경우

③ 그 밖의 문제점 : 데이터를 동시에 공용할 수 없다

④ 이러한 문제들을 해결하기 위해 발전한 것이 바로 데이터베이스 기술이다

3. 데이터베이스 정의와 특성

(1) 데이터베이스(DB, DataBase) : 어느 한 조직의 여러 응용 시스템을 공유할 수 있도록 통합, 저

장, 운영되는 데이터 집합

(2) 데이터베이스의 성질

① 통합된 데이터(integrated data)

② 저장된 데이터(stored data)

Page 102: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

③ 운영 데이터(operational data)

④ 공용 데이터(shared data)

(3) 데이터베이스의 특성

① 실시간 접근성(real-time accessbility) : 사용자의 요구 즉시 처리

② 계속적인 변화(continuous evolution) : 새로운 것을 계속 갱신

③ 동시 공유(concurrent sharing) : 여러 사람이 서로 다른 목적으로 동시에 접근

④ 내용에 의한 참조(content reference) : 위치나 주소가 아닌 데이터 내용에 따라 참조

3. 데이터베이스 구성 요소

(1) 개체(entity)

① 데이터베이스에 데이터로 표현하려고 하는 실세계의 대상체

② 유형 또는 무형의 객체(object)로서 서로 구별되는 것

(2) 관계(relationship)

① 데이터베이스 시스템에는 개체에 관한 정보 뿐만 아니라 이러한 관계에 대한 정보를 표현할 수

있는 수단을 지원

② 개체 관계와 속성 관계

(3) 스키마(schema)

① 데이터베이스의 논리적 정의인 데이터 구조와 제약 조건에 대한 명세(specification)를 기술한 것

② 외부 스키마(external schema)

1) 데이터베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것

2) 서브 스키마(subschema)

③ 개념 스키마(conceptual schema) : 기관이 필요로 하는 정보를 생성하기 위한 모든 데이터 개체

들에 대한 정의뿐만 아니라 데이터베이스 접근 권한, 보안

정책, 무결성 규칙에 대한 명세를 기술한 스키마

④ 내부스키마(internal schema)

1) 물리적인 데이터 구조

2) 저장 스키마(stored schema)

⑤ 3단계 데이터베이스

Page 103: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

(4) 데이터베이스 언어

① 데이터 정의어(DDL, Data Definition Language) : 데이터베이스의 구조나 데이터 형식, 처리 방

식 등을 정의한 언어

② 데이터 조작어(DML, Data Manipulation Language) : 데이터베이스에 대한 검색, 삽입, 삭제, 변

경 연산 등을 하는 언어

③ 데이터 제어어(DCL, Data Control Language) : 데이터베이스를 공유하기 위해 파일의 데이터 구

조를 서술하는 데 사용되는 언어

(5) 데이터베이스 사용자

① 일반 사용자 : 비절차적 데이터베이스 조작어(DML)를 통해 데이터베이스를 사용하는 사용자

② 응용 프로그래머 : 호스트 프로그래밍 언어(코볼, C 등)에 데이터 조작어를 삽입시켜 데이터베

이스에 접근

③ 데이터베이스 관리자(DBA, DataBase Administrator) : 데이터 정의어(DDL)와 데이터 제어어(DCL)를

통해 데이터베이스를 정의, 제어, 관리하는

관리자

1) 데이터베이스 설계와 운영

2) 행정 및 불평 해결

3) 시스템 감시 및 성능 분석

④ 데이터베이스 시스템 구성도

Page 104: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

2절 데이터베이스 관리 시스템

1. 데이터베이스 관리 시스템(DBMS)

(1) DBMS(DataBase Management System)

① 데이터와 응용 프로그램 사이에 존재하여 서로를 중재하는 역할을 하는 것

② 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해주는 소프트웨어 시스템

③ 데이터베이스 구성, 접근 방법, 관리, 유지에 관한 모든 기능을 통합적으로 수행할 수 있도록

작성된 소프트웨어

(2) DBMS 기능

① 데이터를 정의, 조작, 제어

Page 105: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

(3) DBMS 장점

① 데이터의 중복을 최소화

② 데이터를 공용

③ 데이터의 일관성을 유지

④ 데이터의 보안을 보장

⑤ 전체 데이터의 요구사항을 파악하여 조정

(4) DBMS 단점

① 많은 운영비 소모

② 고도의 기술 요구

③ 처리 절차에 변화

④ 시스템의 고장에 대한 예비조치와 회복 기법이 어렵다

(5) DBMS 목적

① 데이터 독립성 : 데이터 베이스의 수정이 요구되는 경우 데이터 독립성 필요

② 최소 중복 : 중복을 최소화하는 것이 데이터베이스의 목적

③ 데이터 공유 : 서로 다른 사용자에 의하여 다른 목적에 사용

④ 데이터 보안 : 데이터를 안전하게 비밀을 유지

(6) DBMS 구성요소

① 질의어 처리기(query processor)

② 파일 관리자(file manager)

③ 데이터 관리자(data manager)

④ 예비 컴파일러(precompiler)

⑤ 데이터 조작어 컴파일러(DML compiler)

⑥ 데이터 정의어 컴파일러(DDL compiler)

⑦ 데이터베이스(database)

⑧ 데이터 사전(data dictionary)

Page 106: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

3절 데이터모델링

1. 데이터베이스 모델

(1) 데이터베이스 구조를 묘사하는 개념 도구들을 모아놓은 것

(2) 계층적 데이터베이스(hierarchical database) 모델

① 지원하는 스키마의 논리적 구조는 트리 형태의 자료구조

② 순서화된 트리 집합

③ 이해하기 쉽고, 데이터 검색 빠름

④ 유연성 떨어짐

(3) 네트워크형 데이터베이스(network database) 모델

① 그래프 구조를 기반으로 구성

② 자식 레코드는 여러 개의 부모 레코드를 지칭할 수 있어 유연하나, 데이터 변경 어려워 확장성

떨어짐

(4) 관계형 데이터베이스(relational database) 모델

① 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)로 사용하고 개체 집합들 사

이의 관계를 공통 속성으로 연결하는 독립된 형태의 데이터 모델

② 현재 가장 많이 사용하는 모델

Page 107: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

(5) 객체지향형 데이터베이스(object oriented database) 모델

① 객체 지향의 사고 방식을 이용한 데이터 모형

② 여러 개의 객체가 서로 메시지를 교환하는 형태로 네트워크 운영됨

4절 관계데이터모델

1. 관계형 데이터베이스

(1) 관련 용어

① 속성(attribute) : 테이블의 열을 구성하는 필드

② 도메인(domain) : 속성에서 나타낼 수 있는 값의 집합

③ 차수(degree) : 테이블에서 속성/필드 수

④ 튜플(tuple) : 테이블의 행

⑤ 릴레이션(relation)

(2) 릴레이션(R)의 개념적 정의 : 릴레이션 스키마(relation schema)와 릴레이션 인스턴스(relation

instance)로 정의

① 릴레이션 스키마

1) 릴레이션 내포(intension)

2) 릴레이션 이름과 속성 이름 포함

② 릴레이션 인스턴스

1) 릴레이션 외포(extension)

2) 어느 한 시점의 릴레이션이 포함하고 있는 튜플들의 집합

③ 사원 인적사항 릴레이션의 예

Page 108: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

(3) 릴레이션의 특징

① 튜플의 유일성

② 튜플의 무순서성

③ 속성의 무순서성

④ 속성의 원자성

2. 키(key) 개념

(1) 키(key) : 각 튜플들을 검색하거나 정렬할 때 기준이 되는 유일하게 구분되는 속성 집합

(2) 키(key)의 종류

① 키본 키(primary key)

② 후보 키(candidate key)

③ 대체 키(alternate key)

④ 외래 키(foreign key)

3. 정규화 개념

(1) 정규화(normalization)

① 함수적 종속성 등의 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개

어 바람직한 스키마로 만들어 가는 과정

② 예)

(2) 제1정규형(1NF)

① 하나의 제한 조건을 둔 것으로 주어진 릴레이션내에 존재하는 도메인값들이 원자값만을 포함하

는 경우

② 불필요한 데이터의 중복이 발생

③ 삽입, 삭제, 갱신 등의 이상현상 발생

Page 109: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

(3) 제2정규형(2NF)

① 키가 아닌 모든 속성이 기본 키에 충분한 함수적 종속을 만족하는 정규형

② 기본 키에 이행적 함수 종속으로 인한 이상현상 발생

* 이행적 함수 종속 : A → B와 B → C가 성립하면 A → C도 성립

③ 예)

(4) 제3정규형(3NF)

① 제2 정규형을 만족하고 모든 키가 아닌 속성이 기본 키에 대해 이행적 함수 종속이 아닌 경우

② 후보 키가 서로 중첩되는 경우 적용 불가능

Page 110: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

③ 예)

(5) 보이스 코드 정규형(BCNF)

① 제3 정규형의 특수한 경우로 강한 제3 정규형 이라고도 함

② 모든 결정자가 후보 키를 갖는 릴레이션

③ 예)

(6) 제4정규형(4NF)

① BCNF에 속하고 모든 다치 종속(MVD, MultiValued Dependency)이 함수 종속일 경우

② 다치종속(MVD)

* 릴레이션 R의 애트리뷰트 A, B, C 에서 (A, C) 값에 대응되는 B의 값이 A에만 종속되고 C값에는

독립적이면 B는 A에 다치종속임(A ->> B로 표기)

③ Fagin의 정리 : R(A,B,C) 에서 A ->> B|C 가 존재하면 R(A, B) 와 R(A, C) 로 분해가능

④ 예)

Page 111: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

(7) 제5정규형(5NF)

① 릴레이션에 존재하는 모든 종속이 릴레이션의 후보 키를 통해서 성립할 경우

② Projection Join Normal Form(PJ/NF)

(8) 정규형 간의 관계

5절 SQL

1. SQL

(1) SQL(Structured Query Language) 개요

Page 112: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

① 구조화 질의어

② 데이터베이스용 질의 언어(query language)의 일종

③ 관계 사상(relational mapping)을 기초로 한 언어

④ 질의 기능, 데이터 정의 기능, 조작 기능 갖춤

⑤ 호스트 언어로 된 프로그램에 삽입되어서 사용

⑥ 초보자들도 비교적 쉽게 사용 가능

2. SQL 정의어

(1) 테이블 생성문 : CREATE문

① 스키마 정의

1) CREATE SCHEMA 스키마_이름 AUTHORIZATION 사용자_id;

2) 예) CREATE SCHEMA COMPANY AUTHORIZATION KIM;

② 도메인 정의

1) CREATE DOMAIN 도메인_이름 데이터_타입[묵시값_정의][ 도메인 제약 조건_ 정의 리스트];

2) 예) CREATE DOMAIN GENDER CHAR(1) DEFAULT '?' CONSTRAINT VALID-GENDER CHECK(VALUE IN('M',

'F', '?'));

③ 테이블 정의

1) CREATE TABLE 기본 테이블

({열이름 데이터_타입[NOT NULL][DEFAULT 묵시값],}+

[PRIMARY KEY(열이름_리스트),]

{{UNIQUE(열이름_리스트),]}

{{FOREIGN KEY(열이름_리스트)

         REFERENCES 기본 테이블[(기본키_열이름)]

         [ON DELETE 옵션]

         [ON UPDATE 옵션]]};,

[CHECK(조건식)]);

④ 인덱스 정의

1) CREATE [UNIQUE] INDEX 인덱스_이름

  ON 테이블_이름(열_이름 [ASCIDESC] {, 열_이름 [ASCIDESC]})

    [CLUSTER];

2) 예) CREATE UNIQUE INDEX IDX ON 직원(번호);

(2) 테이블 구조 변경문: ALTER문

① ALTER TABLE 테이블_이름 ADD 열_이름 자료_형 DEFAULT 묵시값

② ALTER TABLE 테이블_이름 ALTER 열_이름 SET DEFAULT 묵시값

③ ALTER TABLE 테이블_이름 DROP 열_이름 CASCADE;

④ (ex) ALTER TABLE 직원 ADD 주소 VARCHAR(50);

(3) 테이블 삭제문: DROP문

① DROP SCHEMA 스키마_이름[CASCADEIRESTRICTED];

② DROP DOMAIN 도메인_이름[CASCADEIRESTRICTED];

③ DROP TABLE 테이블_이름[CASCADEIRESTRICT];

④ DROP INDEX 인덱스_이름

Page 113: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

⑤ 예)

1) DROP SCHEMA COMPANY;

2) DROP DOMAIN GENDER;

3) DROP TABLE EMPLOYEE;

4) DROP INDEX IDX;

3. SQL 조작어

(1) 검색문 : SELECT문

① SELECT [ALLIDISTINCT] 열_리스트

FROM 테이블_리스트

[WHERE 조건]

[GROUP BY 열_리스트 [HAVING 조건]]

[ORDER BY 열_리스트 [ASCIDESC]];

② SELECT절에는 관계 대수의 프로젝션 대상

③ FROM절에는 대상 테이블

④ WHERE절에는 관계 대수의 조인과 셀렉션 조건

⑤ GROUP BY절은 대상 테이블을 지정된 열_리스트값에 따라 그룹으로 나누어줌

⑥ HAVING은 각 그룹에 대한 조건 명세

* HAVING절 사용시 GROUP BY절도 반드시 존재

⑦ ORDER BY절은 최종 검색 결과의 정렬을 수행

(2) 삽입문 : INSERT문

① INSERT

INTO 테이블[(열_이름{, 열_이름}]

VALUES(열값_리스트);

② 예) INSERT INTO 직원(번호, 이름, 나이, 봉급, 부서번호)

VALUES(600, '가나다', 25, 100, 'D2');

③ SELECT문을 실행하여 그 결과를 지정된 테이블에 삽입하는 경우

1) INSERT

INTO 테이블[(열_이름{, 열_이름}*]

SELECTANS;

2) 예) INSERT INTO 인사과 직원(번호, 이름, 봉급)

SELECT 번호, 이름, 봉급

FROM 직원

WHERE 부서번호 = 'D1'

(3) 갱신문 : UPDATE문

① UPDATE 테이블

SET 열_이름 = 산술식{, 열_이름 = 산술식}*

[WHERE 조건];

② 예) UPDATE 직원

SET 나이 = 29

WHERE 번호 = 100;

Page 114: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

(4) 삭제문 : DELETE문

① DELETE FROM 테이블[WHERE 조건];

② 예) DELETE FROM 직원

WHERE 번호 = 100;

4. SQL 뷰(view)

(1) 뷰(view)

① 하나 이상의 테이블(기본 테이블)로부터 유도되어 만들어진 가상 테이블

② 뷰의 정의

(2) 뷰 생성과 제거

① 생성

1) CREATE VIEW 뷰_이름[(열_이름_리스트)]

AS SELECT 문

[WITH CHECK OPTION];

2) 예) CREATE VIEW 직원연락처(이름, 전화번호)

AS SELECT 이름, 전화번호

FROM 직원

② 제거

1) DROP VIEW 뷰_이름{RESTRICT | CASCADE };

2) 예) DROP VIEW 직원연락처

5. 시스템 카탈로그와 내장 SQL

(1) 시스템카탈로그(system catalog)

① DBMS 자신이 필요로 하는 여러 가지 객체에 대한 정보를 포함하고 있는 시스템 데이터베이스

② SELECT문으로 검색 가능하나 변경은 불가

(2) 내장 SQL(embedded SQL)

① 호스트 프로그래밍 언어(PL/I, COBOL, C등)에 삽입하여 사용하는 SQL

② 전처리기가 호스트 언어 코드와 내장된 SQL문을 구분할 수 있도록, 내장된 SQL문에서 특수문자

나 명령어를 접두어로 사용

6절 데이터베이스 설계단계

Page 115: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

1. 관계도(ERD)의 이해와 작성

(1) 개체-관계(E-R)모델링

① 개체와 관계성을 도형으로 표시하는 모델

② 현실 세계를 개체 집합과 관계 집합으로 나누어서 개념적으로 표현하는 방식

③ 데이터를 개체(entity), 관계(relationship), 속성(attribute)으로 묘사

④ 개체-관계 다이어그램과 논리적 데이터 모델

(2) 개체-관계 다이어그램 표기법

① 개체-관계 다이어그램(E-R diagram) : 중요한 레코드 타입, 속성, 관계 등을 그림 형태로 기록

한 것

② 개체-관계 다이어그램 기호

③ 교수/학생/과목 관계를 표현한 개체-관계 다이어그램

(3) 데이터 모델 관계

① 관계 : 개체 타입의 모든 인스턴스들 간의 대응이나 사상을 의미

② 관계의 종류

1) 개체 집합간의 관계

2) 개체-속성 관계

Page 116: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

16

3) 속성 관계

③ 관계 타입의 유형 그림

2. 관계형 모델(relational model)

(1) 데이터베이스를 구성하는 개체와 관계 모두 2차원 테이블로 표현

(2) 구조가 단순해서 설계, 관리, 사용이 편리

(3) DBMS의 성능이 다소 떨어짐

(4) 장애 발생하면 회복이 어려움

(5) 무결성 제약 조건(integrity constraint)

① 개체 무결성 제약 조건(entity integrity constraint) : 기본 키로 지정된 속성들은 모든 튜플

에 대해 널(NULL)이 될 수 없다는 제약

조건

② 참조 무결성 제약 조건(referential integrity constraint)

1) 외래 키에 대한 제약 조건

2) 릴레이션 R1이 릴레이션 R2를 참조할 경우 : 릴레이션 R1의 널(NULL)이 아닌 외래키 값은 반드

시 릴레이션 R2의 기본키 값에 나타나야 한다는 것

3. 데이터베이스 설계의 기본

(1) 논리적 구조와 물리적 구조

① 논리적 구조

1) 저장장치 위에 물리적으로

저장되어 있는 데이터의 실제 구조

2) 사용자에게 중요한 측면에서 본

데이터베이스의 구조

② 물리적 구조 : 데이터를 응용하는

응용 프로그래머나 사용자의

관점에서 본 데이터 구조

Page 117: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

17

(2) 데이터 종속성과 독립성

① 데이터 종속성

1) 응용 프로그램과 데이터 간의 상호 의존 관계를 나타냄

2) 데이터 구성 방법이나 구성 형식, 접근 방법이 변경되면 이와 관련된 응용 프로그램도 같이

변경되어야 함

② 데이터 독립성

1) 데이터베이스에서 데이터와 데이터가 사용하는 응용 프로그램이 서로 영향을 받지 않는 경우

2) 데이터가 논리적이거나 물리적으로 독립적인 상태에 있는 것

③ 데이터 구조간의 사상과 데이터 독립성

(3) 데이터베이스 분석과 설계 단계

① 데이터베이스 설계 단계의 생명 주기(life cycle)

Page 118: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

18

② 데이터베이스 설계 단계

③ 데이터베이스 설계 시 고려 사항

1) 무결성

2) 일관성

3) 회복

4) 보안

5) 효율성

6) 데이터베이스 확장

Page 119: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 7강 운영체제

1절 운영체제의 개요

1. 운영체제(OS, Operating System)

(1) 컴퓨터의 주기억장치 내에 상주

(2) 컴퓨터 시스템의 자원 관리

(3) 응용 프로그램의 수행 제어

(4) 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당

(5) 관리하는 자원 : CPU, 기억장치, 입출력장치 등

2. 목적

(1) 컴퓨터 시스템의 효율적인 관리와 사용

(2) 신뢰도(reliability), 처리량(throughput) 향상

(3) 응답 시간(response time) 단축

3. 한정된 자원의 효율적 관리와 사용자 편의성 제공 시스템 S/W

4. 시스템평가요소

: 처리량, 반환시간, 신뢰성, 가용성

5. 자원관리대상

: 프로세서, 메모리, 주변장치, 파일

2절 운영체제 구성 프로그램

1. 제어프로그램

(1) 감시프로그램

(2) 데이터관리프로그램

(3) 작업관리프로그램

2. 처리프로그램

(1) 언어번역프로그램

(2) 서비스프로그램

※ 운영체제의 처리방식

(1) 일괄 처리 시스템(batch processing system)

① 처리할 작업을 일정 기간 또는 일정량이 될 때까지 모아두었다가 한꺼번에 처리하는 방식

② 컴퓨터 시스템 효율적으로 사용 가능

③ 작업 결과를 빠르게 확인할 수 없음

Page 120: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

④ 유휴 시간(idle time)이 잦음

(2) 다중 처리 시스템(multiprocessing system)

① 두 개 이상의 프로세서로 구성되어 다중 작업을 구현하는 방식

② 작업 속도와 신뢰성 향상

(3) 다중 프로그래밍 시스템(multiprogramming system)

① CPU 효율을 극대화하기 위한 방법

② 여러 개의 사용자 프로그램이 동시에 실행되는 것처럼 처리

③ CPU의 유휴 시간 줄일 수 있음

④ 기억장치 관리 기법, CPU 스케줄링 기법 필요

(4) 시 분할 처리 시스템(time-sharing processing system)

① 여러 사용자들이 한 컴퓨터를 동시에 이용할 수 있게 하기 위해 각 사용자들에게 CPU에 대한 일

정 시간(time slice)을 제공하여 주어진 시간 동안 프로그램을 수행할 수 있도록 개발된 방식

② 기억장치 관리 기법, CPU 스케줄링 기법 등 필요

(5) 실시간 처리 시스템(real-time processing system)

① 처리를 요구하는 자료가 발생할 때마다 즉시 처리하여 정해진 짧은 시간 내에 응답하는 시스템

방식

② 사용자의 노력, 처리 시간, 처리 비용 등 절감

③ 변동 사항 발생 시 즉시 수정 가능

④ 입출력 자료의 일시 저장 및 대기 필요

(6) 분산 처리 시스템(distributed processing system)

: 네트워크를 통해 연결된 여러 컴퓨터 시스템에 작업과 자원을 나누어 처리하게 하는 방식

※ 운영체제의 자원 관리

(1) 프로세스 관리 : 프로세스의 생성, 삭제, 중지, 계속, 동기화, 프로세스 간의 통신 등 관리

(2) 기억장치 관리 : 주기억장치 공간의 할당, 회수 등 담당

(3) 정보 관리(파일 관리) : 기억장소의 할당, 빈 공간의 관리, 디스크 스케줄링 등 담당

(4) 입출력장치 관리(주변장치 관리) : 입출력장치 할당 등 담당

Page 121: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

※ 운영체제의 성능 평가

(1) 처리 능력(throughput) : 단위 시간당 처리할 수 있는 작업량

(2) 반환 시간(turnaround time) : 작업이 시작된 시간에서부터 끝날 때까지의 소요된 시간

(3) 사용 가능도(availability) : 시스템을 고장 없이 계속 사용할 수 있는지를 나타내기 위한 것

(4) 신뢰도(reliability) : 시스템이 주어진 환경 아래에서 얼마나 원활하게 기능을 수행할 수 있는

가를 나타내는 것

3절 프로세스 관리

1. 프로세스 관리

(1) 프로세스(process) 정의

① 실행 중이거나 곧 실행이 가능한 프로세스 제어 블록(PCB, Process Control Block)을 가진 프로

그램

② 프로시저가 활동중인 것

③ 프로세서가 할당하는 개체

④ 디스패치(dispatch)가 가능한 장치

* Dispatch : 다중프로그래밍 시스템에서 다음에 처리할 작업을 선택하고 이를 처리할수 있도록

준비하는 작업

⑤ 비동기적인 행동

2. 프로세스의 상태전이

3. 프로세스의 상태(Process State)

(1) 생성(New) 상태 : 프로세스가 생성되었지만 아직 운영체제에 의해 실행 가능하게 되지 못 한 상태

(2) 준비(Ready) 상태 : 프로세스가 실행을 위해 CPU(Processor)를 할당 받기를 기다리는 상태

(3) 실행(Run) 상태

① 프로세스가 CPU(Processor)를 할당 받아 실제로 실행되는상태

② 디스패치(Dispatch)? : Ready 상태의 프로세스가 CPU를 할당 받아 Run 상태로 전이되는 과정

③ Timer Runout? : Run 상태의 프로세스에 할당된 CPU 사용시간이 완료되어Ready 상태로 되돌아가

Page 122: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

는 과정

(4) 대기(Wait) 상태

① 프로세스가 CPU를 할당 받아 실행되다가 어떤 사건이 발생

* (예. 입· 출력 작업이 완료)할 때까지 멈추어 있는 상태

② Wake Up? : 대기(Wait) 상태에 있던 프로세스가 기다리던 어떤 사건의 발생(예. 입· 출력 작업

의 완료)으로 인해 나머지부분의 실행을 위해 준비(Ready) 상태로 전이되는 과정

(5) 종료(Exit) 상태 : 프로세스의 실행이 완전히 끝나고 CPU할당이 해제된 상태

4. 프로세스 제어 블록(PCB)

(1) PCB(Process Control Block)란?

① 프로세스가 실행될 때마다 프로세스의 정보를 기록해 두는 특별한 자료구조

② 운영체제가 다른 프로세스에 제어를 넘겨줄 때 현재 실행중인 프로세스의 정보를 해당 PCB에

저장한 후 제어를 넘겨 줌.

5. 프로세스 개념

(1) 인터럽트(interrupt)

① 프로세서(CPU)가 명령문을 수행하고 있을 때 예측하지 못했던 사건 등이 발생하여 다른 작업을

처리하기 위해 수행하던 일을 강제로 중단시키는 것

② 종류 : SVC(SuperVisor Call) 인터럽트 / 입출력 인터럽트 / 프로그램 검사 인터럽트 / 하드웨

어 검사 인터럽트 / 외부 인터럽트 / 재시작 인터럽트

③ 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)

1) 인터럽트를 처리하기 위해 수행하는 프로그램 루틴

2) 인터럽트 서비스 루틴이 끝나게 되면 중단되었던 프로세스로 돌아가서 실행을 계속함

4절 스케줄링

1. 스케줄링 개요

Page 123: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

(1) 스케줄링의 의미

① Process에 Processor(CPU)를 할당하는 것

② CPU를 포함한 모든 컴퓨터 자원은 사용되기 전에 스케줄링 되어야 함

(2) 스케줄링의 목적

① 프로세스의 공정성 : 모든 프로세스는 공정하게 취급되어 무한정 기다리는 경우가 없어야 함.

② 처리량의 최대화 : 단위 시간 내에 최대한 많은 프로세스에 서비스를 제공할 수 있어야 함.

③ 반응시간의 최소화 : 사용자에게 응답을 최소의 시간에 할 수 있어야 함.

④ 수행시간의 예측가능성 : 시스템 부하에 관계없이 작업은 예측된 시간 내에, 예측된 비용으로

수행되어야 함.

⑤ 시스템의 과부하 방지 : 시스템에 부하가 많이 걸릴 경우 스케줄링 기법으로 새로운 프로세스의

생성을 자제하거나 각 프로세스의 서비스를 줄여 부하를 방지할 수 있음.

⑥ 균형 있는 자원 활용 : 시스템 내의 유휴자원이 없도록 균형있게 자원을 할당해야 함.

⑦ 프로세스 수행의 무한정 연기 방지 : 자원을 오래 기다리는 프로세스는 우선순위를 높여서 자원

할당 기회를 높여줌.

2. CPU 스케줄링 정책

3. 스케줄링 기법의 종류

(1) FIFO(First In First Out)

① 가장 간단한 스케줄링 기법으로 CPU를 요구하는 순서에 따라 CPU를 할당하는 방식

② 자원 요청 프로세스들의 줄(대기행렬)에 들어온 순서대로 CPU를 할당(=FCFS : First Come First

Served)

(2) 우선순위(Priority) Scheduling : 각 프로세스에 우선순위를 부여하여 우선순위가 높은 프로세

스에 CPU를 할당하는 방식

Page 124: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

(3) SJF(Shortest Job First) : 예상 작업시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 방식

(4) SRT(Shortest Remaining Time)

① 남은 작업시간 추정치가 가장 적은 프로세스에 CPU를 할당하는 방식

② 선점형 SJF라 할 수 있음.

(5) R-R(Round Robin)

① FIFO처럼 먼저 들어온 프로세스가 먼저 실행되나 각 프로세스는 정해진 시간동안만 CPU를 사용

하는 방식

② 선점형 FIFO라 할 수 있음.

③ 시분할 처리(TSS)에 가장 적합한 방식

(6) 기한부(Deadline) Scheduling : 주어진 제한된 시간 내에 프로세스가 반드시 완료되도록 스케줄

링하는 방식

4. 병행 프로세스(concurrent processes)

(1) 정의 및 특성

① 프로세스들이 동시에 수행(logical concurrency or physical concurrency)

② 서로 관련 없이 독립적 수행하거나 다른 프로세스와 상호 작용하기도 함

③ 제한된 자원 공유하기 위해 상호 작용 필요

(2) 상호배제(Mutual exclusion) : 한 프로세스가 공유 자원을 사용하고 있는 경우 다른 프로세스는

이 자원을 사용할 수 없는 규칙.

(3) 임계영역 : 하나의 프로세스가 공유 자원을 변경하는 코드를 실행하고 있을 때, 그 프로세스는

임계영역에 있다고 한다.(상호배제 구현)

(4) 동기화(Synchronization) : 처리순서를 결정하는 것.

(5) 세마포어(Semaphore)

① 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법

② P와 V라는 2개의 연산에 의해서 동기화를 유지, 상호 배제의 원리를 보장

③ S는 P와 V 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은

0과 양의 값을 가질 수 있음

④ P 연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(S)를 통해 결정하는 것

⑤ V 연산 : 대기 중인 프로세스를 깨우는 신호(Wake Up)

⑥ 동기화 문제 해결 도구

(6) 모니터

① 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는데 필

요한 데이터와 이 데이터를 처리하는 프로시저로 구성됨

② 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어

져 있음

Page 125: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

③ 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 함

④ 외부의 프로시저는 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행됨

⑤ 한순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있음

5. 교착 상태(deadlock)

(1) 다중 프로그래밍 시스템에서 프로세스가 기다려도 일어나지 않을 사건을 기다리고 있는 것

(2) 병행 처리와 자원 공유로 인해 발생되는 문제

(3) 환형 대기(circular wait)

* 둘 이상의 프로세스가 서로 다른 프로세스가 차지하고 있는 자원을 요구하고 요청한 자원이 영원

히 할당되지 않아 결국 해당 프로세스는 무한정으로 기다리는 교착상태에 빠지게 됨

(4) 교착 상태의 발생 조건

① 상호 배제(mutual exclusion) 조건 : 각 프로세스들이 필요 자원에 대해 배타적 통제권을 요구

하는 상태

② 점유와 대기(hold and wait) 조건 : 각 프로세스들이 현재의 자원을 점유하면서 다른 자원을 요

구하는 상태

③ 비선점(nonpreemption) 조건 : 각 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 해제할

수 없는 상태

④ 환형 대기(circular wait) 조건 : 서로 다른 프로세스 간의 자원요구가 연속적으로 반복되는 상태

(5) 교착 상태의 해결 방법

① 교착 상태 예방(deaklock prevention) : 교착상태의 발생조건을 제거하여 사전에 미리 예방하는

방법

② 교착 상태 회피(deaklock avoidance) : 교착상태의 발생조건을 제거하지 않고, 다만 적절하게

피해 나가는 방법

③ 교착 상태 발견(deaklock detection) : 교착상태의 발생을 허용하고, 발생시 원인을 찾아 해결

하는 방법

④ 교착 상태 회복(deaklock recovery) : 교착상태에 빠진 프로세스를 재시작하거나 원래 상태로

되돌림으로써 교착상태를 해결하는 방법

Page 126: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

5절 기억장치관리

1. 주기억장치 공간 분할 방식

(1) 고정 분할(Fixed Partition) 방식

① 주기억장치 공간을 동일한 크기의 고정된 부분으로 미리 나누어 할당하는 방식

② 정적(Static) 분할 방식이라고도 함

(2) 가변 분할(Variable Partition) 방식

① 각 부분의 크기가 고정되어 있는 것이 아니라, 프로세스를 처리하는 과정에서 필요한 만큼의 공

간을 할당하는 방식

② 동적(Dynamic) 분할 방식이라고도 함.

2. 주기억장치 관리

(1) 주기억장치 관리 전략

① 인출 전략(fetch strategy)

1) 주기억장치에 적재할 프로그램이나 데이터를 언제 보조기억장치에서 주기억장치로 가져올 것인

가를 결정하는 전략

2) 요구 반입(demand fetch) 전략

3) 예상 반입(anticipatory fetch) 전략

② 재배치 전략(replacement strategy): 교체알고리즘이용

* 새로운 프로그램을 배치할 주기억장치의 위치를 정할 때, 주기억장치의 공간이 부족하여 현재

주기억장치에 적재되어 있는 프로그램 중에서 어떤 프로그램이나 데이터를 제거할 것인지를 결

정하는 전략

③ 배치 전략(placement strategy) : 새로 가져오는 프로그램이나 데이터를 주기억장치의 어디에

위치시킬 것인가를 결정하는 전략

(2) 주기억장치 관리 기법

① 단일 프로그래밍 기법 : 시스템 내에 항상 하나의 프로세스만 존재하며 현재의 프로세스가 종료

된 후에 다른 프로세스가 실행되는 가장 단순한 기법

② 고정 분할 다중 프로그래밍 기법 : 주기억장치를 여러 개의 고정된 크기들로 분할하여 실행 중

인 여러 프로세스에게 할당하는 기법

Page 127: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

③ 가변 분할 다중 프로그래밍 기법 : 프로그램이 적재될 때마다 그 크기에 맞게 주기억장치의 공

간을 할당해주는 기법

(3) 단편화 현상과 해결책

① 단편화(fragmentation) : 주기억장치에서 부분적인 기억 공간이 프로그램에 의해 사용되지 않고

낭비되는 현상

② 해결책

3. 가상기억장치

(1) 주기억장치보다 용량이 큰 보조기억장치를 주기억장치인 것처럼 사용하기 위한 기억장소 관리

기법

(2) 가상주소(virtual address) : 컴퓨터에는 실제로 존재하지 않지만 가상기억장치에서 현재 진행

중인프로세스가 참조하는 주소

(3) 실제주소(real address) : 주기억장치에서 실제로 사용 가능한 주소

(4) 인위적 연속성(artificial continuity) : 가상기억장치에서 프로그램이나 데이터가 갖는 연속적

인 가상주소가 주기억장치에서도 연속될 필요가 없다

는 것

Page 128: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

(5) 가상기억장치 구현 방법

① 페이징(paging) 기법 : 주기억장치를 페이지 프레임(page frame)이라 불리는 고정 크기의 블록

으로 나누고 보조기억장치에 저장되어있는 프로그램이나 데이터를 고정

된 페이지로 쪼개어서 주기억장치의 페이지 프레임에 올려서 수행하는 기법

② 세그먼테이션(segmentation) 기법

1) 프로그램이나 데이터를 서로 다른 크기로 분할하여 주기억 장치에 적재하도록 하는 기법

2) 세그먼트(segment) : 다른 크기로 분할된 프로그램 블록들

③ 페이징 기법과 세그먼테이션 기법의 혼합

1) 프로그램을 논리적인 세그먼트 단위로 분할하고 분할된 각 세그먼트들을 다시 각각 페이지 단

위로 분할하는 기법

2) 프로그램이 주기억장치에 적재될 때는 분할된 페이지 단위로 적재

(6) 가상기억장치 관리 기법

① 반입 기법(fetch strategy)

1) 페이지나 세그먼트를 언제 보조기억장치에서 주기억장치로 옮길 것인가를 결정하는 기법

2) 요구 반입 기법(demand fetch strategy)

3) 예상 반입 기법(anticipatory fetch strategy)

② 배치 기법(placement strategy) : 페이지나 세그먼트를 주기억장치의 어디로 옮길 것인가를 결

정하는 기법

③ 교체 기법(replacement strategy)

1) 주기억장치에 적재되어 있는 페이지(또는 세그먼트)들 중에서 어느 것을 교체할 것인가를 결정

하는 기법

2) FIFO(First In First Out) 기법

3) LRU(Least Recently Used) 기법

4) LFU(Least Frequently Used) 기법

※ 가상기억장치의 페이지 교체 기법

1) 최적화 기법

가) 이후에 가장 사용되지 않을 Page를 교체하는 기법

나) 이론적으로는 가장 최적의 방식이나 현실적으로 구현이 불가능함.

2) FIFO(First In First Out) 기법 : 주기억장치 적재순서에서 제일 처음 적재되었던 Page를 교체

Page 129: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

하는 기법

3) LRU(Least Recently Used) 기법 : 가장 오랫동안 사용되지 않은 Page를 교체하는 기법

4) LFU(Least Frequently Used) 기법 : 사용횟수가 가장 적은 Page를 교체하는 기법

5) NUR(Not Used Recently) 기법 : 최근에 전혀 사용되지 않은 Page를 교체하는 기법

Page 130: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

1

제 8강 시스템분석, 소프트웨어공학

1절 시스템의 개요

1. 시스템의 개요

(1) 정의 : 서로 관련 있는 구성요소가 정해진 목적을 달성하기 위해 유기적으로 결합된 조직체

(2) 특성

① 목적성

② 제어성

③ 자동성

④ 종합성

2. 소프트웨어 개념

(1) 소프트웨어 : 프로그램의 개발이나 운영 또는 유지 보수에 관련되는 모든 정보 포함

(2) 소프트웨어 특성

① 비가시성(invisibility)

② 복잡성(complexity)

③ 변경 가능성(changeability)

④ 복제성(duplicability)

3. 소프트웨어의 분류

(1) 기능에 따른 분류

① 응용 소프트웨어(application software)

② 시스템 소프트웨어(system software)

(2) 개발과정에 따른 분류

① 프로토타입(prototype) : 프로그램이 완성되기 전에 사용자의 요구사항을 면밀히 파악하기 위해

표본으로 만들어 사용자들에게 제시하는 예비적 결과물

② 패키지(package) : 다수의 사용자들에게 보급할 목적으로 개발하여 상품화한 소프트웨어

③ 주문형 소프트웨어(custom software) : 사용자가 특정용도로 사용하기 위해 주문하여 개발된 소

프트웨어

4. 소프트웨어 공학 개념

(1) IEEE의 정의 : 소프트웨어 공학이란 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적

인 접근 방법이다

Page 131: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

2

(2) 소프트웨어 공학의 목표에 맞춘 정의 : 품질이 좋은 소프트웨어를 최소한의 비용으로 계획된

일정에 맞추어 개발하는 것

(3) 하드웨어와 소프트웨어의 비용 구성률

2절 시스템 생명주기 모델

1. 시스템 생명주기 모델

(1) 일반적인 소프트웨어 생명주기(3단계)

① 정의 단계

1) 사용자의 유구사항을 정의단계

2) 타당성 조사, 명세서 작성을 포함하는 시스템 분석 활동 포함

② 개발 단계

1) 요구사항과 명세서에 따라 소프트웨어를 만드는 단계

2) 시스템 설계, 코딩, 테스트 등의 활동 포함

③ 유지 보수 단계

1) 운용도중 생기는 결점(error)을 수정, 개선하는 활동

2) 수정형, 적응형, 완전형, 예방형 유지보수를 포함

2. 폭포수 모형(Water fall)

(1) 1950년대 항공 방위 소프트웨어 시스템 개발

경험을 토대로 처음 소개됨

(2) 1970년대부터 소프트웨어 공학

교과서나 산업계에서의 표준

(3) 문제점

① 반복과정발생

② 불확실성

③ 단계별 지연이 발생

Page 132: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

3

(4) 계획 : 소프트웨어 개발의 실현 가능성을 가늠하는 활동

* 타당성 조사를 해서 문제를 명확하게 분석하고 최적의 해결방안을 제시할 수 있어야 함

(5) 요구분석

① 개발되는 소프트웨어 시스템의 기능, 제약 조건, 목표 등이 시스템 사용자와 더불어 명확하게

정의되어야 하는 단계

② 요구분석의 결과물로 사용자의 요구와 시스템 개발자들이 요구에 부응하는 것을 확인하는 명세

서(system specification)를 얻게 됨

(6) 설계

① 요구분석 단계에서 얻어진 결과물을 가지고 어떻게 시스템을 구성할 것인가 하는 것이 문제

② 시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계가 핵심

③ 결과물 : 소프트웨어 시스템의 구조를 나타내는 설계서

(7) 구현

① 앞 단계에서 설계된 모듈들이 실질적인 프로그램으로 작성됨

② 원시 코드로 작성된 각 모듈은 단위 테스트를 거쳐서 검정되어야 함

(8) 테스트

① 독립적으로 작성된 모듈이나 프로그램들이 설계된 대로 사용자의 요구사항에 적합하게 구현되었

는지 확인

② 통합 테스트 : 각 모듈이나 프로그램들이 하나의 시스템으로 통합되면서 받는 테스트

③ 시스템 테스트 : 통합된 시스템으로 완성된 후에 받는 테스트

④ 알파 테스트 : 시스템 개발팀 또는 개발 회사가 완성된 시스템을 자체적으로 실제 상황에서처럼

사용해보면서 고객의 승인을 얻기 위해 테스트하는 것

⑤ 베타 테스트 : 개발한 소프트웨어 시스템을 상품으로 출시하기 전에 특정 고객들을 선정하여 사

용해보도록 함으로써 피드백 효과를 노리는 테스트 방법

(9) 유지보수

① 소프트웨어 시스템이 완성되어 인수된 후 실제로 사용하는 모든 기간에 걸쳐 이루어지기 때문에

가장 기간이 길고 비용도 많이 드는 단계

② 오류와 결함 수정 뿐만 아니라 시스템을 운영하면서 새롭게 나타나는 개선 사항이나 서비스 요

구 등에 부응하기 위한 노력까지 포함

3. 프로토타입 모형

(1) 개발자는 추후에 개발될 소프트웨어의 시범 케이스 내지는 본보기로 프로토타입(prototype)을

만들어 제시

(2) 사용자와 개발자가 처음부터 원활하게 의견을 교환할 수 있다는 장점을 지님

(3) 문제점

① 비효율적 내용포함

② 시스템개발관리의 어려움

Page 133: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

4

4. 나선형 프로세스 모형

(1) 보엠(Boehm)이 1988년에 제안함

(2) 소프트웨어 개발 과정을 나선형으로 진행시킴

(3) 나선형 안에 표시된 원은 소프트웨어의 각 단계를 나타냄

① 목표 수립

② 위험 분석

③ 개발

④ 평가

Page 134: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

5

(4) 위험 분석을 하면서 시스템을 개발함

(5) 위험을 사전에 막거나 감소시킬 수 있으므로 대규모 시스템의 소프트웨어를 개발하는 데 적합한

방법

3절 시스템 개발주기

1. 시스템 개발주기

(1) 계획

(2) 요구분석

(3) 설계

(4) 구현

(5) 테스트

(6) 문서화

(7) 유지보수

2. 요구사항 분석

(1) 개발할 소프트웨어가 무엇을 수행할 것인지를 명확하게 정의

(2) 시스템 설계자들에게 데이터, 인터페이스, 아키텍쳐를 설계하는 데 필요한 정보 제공

(3) 요구사항의 분석 5 단계

① 문제 인식(identification)

② 전개(elaboration)

③ 종합(synthesis)

④ 검토(review)

⑤ 문서화(documentation)

(4) 요구사항의 구성

① 사용자 요구사항 : 자연언어나 간단한 도식으로 시스템이 제공할 서비스와 시스템 운영상의 제

약사항을 추상적으로 기술한 것

② 시스템 요구사항

1) 시스템이 제공할 서비스와 시스템 운영상의 제약사항들을 보다 구체적으로 기술한 것

2) 기능적 명세서(functional specification)

③ 소프트웨어 디자인 명세서 : 시스템 요구사항을 좀더 구체적으로 기술한 것

(5) 요구사항 명세서

① 목표 : 개발될 시스템에 대한 기술적인 요구사항을 세밀하게 작성하는 것

② 설계 업무의 기초 문서

③ 정확할수록 개발된 소프트웨어의 품질 향상

Page 135: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

6

(6) 요구사항 분석 단계

① 많은 정보를 수집해서 정리해야 함

② 사용자와 개발자 간의 의사소통 원활해야 함

③ 구조적 분석 기법

1) 데마르코(DeMarco)가 고안

2) 시스템을 구성하는 프로세스들 사이의 데이터 흐름에 맞추어 개발될 시스템의 모형을 만드는 것

3) 도구

가) 자료 흐름도(data flow diagram)

나) 자료 사전(data dictionary)

다) 소단위 명세서(mini)

(7) 자료 흐름도

① 정보 흐름과 자료가 입력에서 출력으로 이동함에 따라 적용되는 변형을 묘사하는 그래픽 모델링 기법

② 가장 널리 사용되는 시스템 모델링 도구

③ 자료 흐름 모델

Page 136: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

7

④ 자료 흐름도 표기법

(8) 자료 사전

① 요구사항 분석 동안에 발견된 데이터 요소에 대한 항목을 정의하기 위한 모델링 도구

② 개발될 시스템에서 필욯로 하는 모든 데이터 요소들을 정리한 목록

③ 시스템에서 사용하는 데이터 구성 요소를 정의하기 위한 과정

1) 자료 흐름도에 나타난 자료 흐름과 자료 저장소의 의미를 명시

2) 자료 흐름에 따라 이동하는 데이터들의 집합을 명시

3) 자료 저장소에 있는 데이터들의 집합을 명시

4) 자료 흐름과 자료 저장소에 있는 정보와 관련된 값들을 명시

5) 개체 관계도에 있는 관계들에 대한 세부사항을 명시

④ 자료 사전 표기법

(9) 소단위 명세서

① 자료 흐름도의 최하위 프로세스가 어떤 기능을 하는가를 기술한 것

② 프로세스 명세서

③ 소작업 명세서

④ 소단위 명세서를 작성하는 데 사용되는 방법

1) 의사결정표(decision table)

2) 구조적 영어(structured English)

3) 흐름도(flowchart)

4) 나씨 - 슈나이더만(Nassi-Shneiderman) 도표

5) 전후 조건(pre/post condition)

3. 설계

(1) 소프트웨어 개발 프로세스 중에서 기술적인 핵심 부분

(2) 아키텍처 설계 : 분석단계의 산출물인 자료 흐름도를 기반으로 하여 자료 흐름도에 표현된 내용

을 프로그램 구조도(structure chart)로 변환하는 작업

① 변환 흐름을 기반으로 하는 경우

② 트랜잭션 흐름을 기반으로 하는 경우

Page 137: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

8

(3) 모듈 설계 : 아키텍처 설계를 통해 얻어진 프로그램 구조도의 모듈들에 대해 모듈들 사이의 기

능적인 독립성을 확보하기 위해 세부적으로 구체화하는 설계 과정

① 모듈에 대한 응집도(cohesion)

② 모듈들 사이의 결합도(coupling)

(4) 데이터 설계 : 요구사항 분석 단계에서 얻어진 개체(entity)들을 프로그램으로 구현할 데이터

구조로 변환하는 업무

(5) 인터페이스 설계

① 소프트웨어 모듈들 상호간의 인터페이스에 대한 설계

② 소프트웨어와 다른 소프트웨어 또는 장치들과의 인터페이스에 대한 설계

③ 컴퓨터와 사용자와의 의사교환을 위한 인터페이스 설계

4. 구현

(1) 프로그래밍 언어의 선택

① 고려해야 할 프로젝트의 특성 : 사용자 요구, 프로그래머 능력, 현재 사용 중인 언어, 컴파일러

의 가용성과 품질, 지원 가능한 개발 도구, 언어의 호환성, 개

발 경험 등

② 프로그래밍 언어의 특성 : 표현력, 적합성, 단순성, 명확성, 직교성

(2) 구조적 코딩 기법

① 제어 흐름을 모두 세 가지 제어 구조(순차, 선택, 반복 구조)로 표현하는 것

② if then, while, for, case 등의 구문을 사용하면 쉽게 하향식 프로그래밍을 할 수 있음

(3) 코딩 스타일

① 권장하는 원칙

1) 명확하게 작성되어야 한다

2) 수식이 의미하는 바는 명료해야 한다

3) 임시 변수의 사용을 피하도록 한다

4) 혼돈스럽지 않은 변수명을 정해야 한다

5) 일관성 있는 변수명을 사용해야 한다

6) 가독성을 높이기 위해 들여쓰기를 한다

7) 같은 문장의 반복을 최소화한다

8) 코드와 일치하는 주석문을 두어야 한다

9) 모듈화를 위해 서브프로그램을 이용한다

(4) 원시 코드의 문서화 : 소프트웨어의 유지 보수 단계에서 프로그램을 구체적으로 이해하는 데 필

수적

5. 테스트

(1) 개발된 소프트웨어 시스템이 사용자들의 요구에 맞는지, 실행 결과가 예상한 결과와 정확하게

맞는지 또는 어떤 차이를 보이는지를 테스트하고 평가하는 일련의 과정

Page 138: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

9

(2) 오류를 발견하기 위한 과정

(3) 검증(validation), 검토(verification) 및 품질 보증(quality assurance)의 의미를 포함

(4) 크게 단위 테스트, 통합 테스트, 인수 테스트로 나누어 시행

(5) 단위 테스트(unit test)

① 소프트웨어 시스템의 최소 구성 요소가 되는 모듈들을 개별적으로 테스트하는 것

② 모듈 테스트

③ 블랙박스 테스트

1) 기능 테스트(functional test)

2) 모듈 프로그램의 입출력과 기능을 시험

④ 화이트박스 테스트

1) 소프트웨어의 구조와 구현내용을 잘 알아야하는 방법

2) 구조적 테스트(structural test)

3) 유리상자 테스트(glass-box test)

(6) 통합 테스트

① 개별적인 단위 테스트를 통과한 모듈들을 모아서 전체 시스템으로 완성하기 위해 통합적으로 테

스트하는 것

Page 139: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

10

② 시스템이 예정한 대로 기능을 수행하는지 테스트하고 모듈들 사이의 인터페이스가 제대로 작동

하는지 테스트 하는 것

③ 하향식 테스트(top-down test)

④ 상향식 테스트(bottom-up test)

⑤ 인터페이스 테스트

⑥ 스트레스 테스트

(7) 인수 테스트

① 실질적으로 사용되기 위해 마지막으로 이루어지는 테스트

② 개발된 소프트웨어 시스템을 하나의 완성된 제품으로 보고 사용자들이 제공하는 실제 데이터를

가지고 시스템을 테스트

③ 시스템이 사용자 요구사항에 맞게 제 기능을 하는지 테스트

④ 알파 테스트

⑤ 베타 테스트

6. 유지 보수

(1) 소프트웨어 시스템이 사용자들이 원하는 곳에 인수되고 설치된 후 일어나는 모든 변경 과정

(2) 수정형 유지보수 : 소프트웨어의 오류를 수정하는 작업

(3) 적응형 유지보수 : 오류가 없더라고 소프트웨어와 관련된 환경적 변화에 적응하도록 소프트웨어

를 재조정하는 일

(4) 완전형 유지보수 : 소프트웨어의 성능을 향상시키기 위해 소프트웨어를 개선하는 작업

(5) 예방형 유지보수 : 앞으로 발생할 수 있는 변경가능성을 수용하거나 개발과정에서 생각 못했던

기능을 추가하기 위해 소프트웨어의 여러 조건들을 수용할 수 있도록 소프트

웨어의 구조를 개선하는 등 미리 대비하는 작업

4절 구조적 분석과 구조적 설계

1. IPT 기법(improved programming technique)

(1) 프로그램 기술을 향상시키기 위한 테크닉

(2) 관리와 기술 양면에서 해결책을 찾기 위한 수단

(3) 기술측면

① 구조적 코딩

② 하향식 프로그래밍

(4) 설계 보조

① HIPO

Page 140: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

11

1) 시스템 실행 과정인 입력, 처리, 출력을 계층적으로 기술하는 방법

2) 시스템을 설계하거나 문서화하기 위한 도구임

3) 체계화된 문서 작성이 가능하며, 보기 쉽고 알기 쉬움

4) 하향식(Top-Down) 방식을 사용하여 나타냄

5) 개발 과정에서 문서화를 부산물로 얻을 수 있음

6) 도표상에 기능 위주로 입력 내용, 처리 방법, 출력 내용이 제시되므로 시스템의 이해가 쉬움

7) 기능과 자료의 의존 관계를 동시에 표현할 수 있음

8) 유지보수 및 변경이 용이함

도식 목차

(Visual Table of Contents)

ㆍHIPO에서 지정된 기능을 계층적으로 나타낸 도표

ㆍ시스템의 구조와 각 기능의 관계를 도식화한 것으로, 특정 기능을

쉽게 찾을 수 있음

총괄 도표

(Overview Diagram)

ㆍ시스템 또는 프로그램의 기능을 입력, 처리, 출력 관계로 도표화한 것

ㆍ사용자의 관점에서 본 시스템 또는 프로그램의 기능과 처리 내용을

나타내는 것

상세 도표

(Detail Diagram)

ㆍ총괄 도표에 나타난 기능을 구성하는 기본 요소들을 상세히 기술한

도표

② 프로그램 기술 언어

1) 하향식

2) HIPO로 정의된 기능을 실행할 때의 순서를 명확화

3) 의사언어

4) 정해진 문법이 없다

5) 특징 및 효과

가) 특정한 문법과 언어의 제약이 없다

나) 프로그래밍 언어를 모르는 사람도 작성가능

다) 일반인의 적극적 참여가 가능

라) 프로그래밍을 위한 사고의 도구로 사용할 수 있다

마) 문서화의 목적, 시스템 재검토 목적으로 사용

③ Nassi-Schneiderman chart

1) 구조적 코딩이 용이

2) 순차구조

3) 선택구조

4) 반복구조

2. 결합도

(1) 두 모듈간의 상호 의존도를 측정하는 것으로, 좋은 설계는 모듈간의 결합도를 최소화하여 모듈

의 독립성을 높인 것을 의미

(2) 결합도의 순서(약함 → 강함) : 자료 결합도 → 스탬프 결합도 → 제어 결합도 → 외부 결합도

→ 공통 결합도 → 내용 결합도

3. 응집도(Cohesion)

(1) 한 모듈 내에 있는 구성 요소의 기능적 관련성을 평가하는 기준으로서, 응집도가 높을수록 모듈

Page 141: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

12

의 독립성은 높아짐

(2) 응집도의 순서(약함 → 강함) : 기능적 응집도 → 순차적 응집도 → 통신적 응집도 → 절차적

응집도 → 시간적 응집도 → 논리적 응집도 → 우연적 응집도

4. 구조적 분석과 설계

(1) 요구 분석 명세서를 작성하기 위하여 널리 사용되어 오는 IPT 기법 중의 하나임

(2) 구조적 분석은 도형 중심의 분석용 도구와 분석 절차를 이용하여 사용자의 요구 사항을 파악하

고 문서화하는 체계적인 분석 기법임

(3) 구조적 분석용 도구

① 자료 흐름도(DFD)

② 자료 사전(DD)

③ 소단위 명세서(Mini-Spec.)

④ 개체 관계도(ERD)

⑤ 상태 전이도(STD)

(4) 도형 중심의 문서화 도구를 사용함 -> 분석자와 사용자간 대화가 용이

(5) 시스템을 하향식으로 세분화함

(6) 하향식 분할 원리를 적용하여 분석의 중복성을 배제함

(7) 사용자의 요구 사항을 논리적으로 표현하여 전체 시스템을 일관성 있게 이해할 수 있음

5. 구조적 분석용 도구

(1) 자료 흐름도(DFD)

① 시스템의 처리 과정을 자료의 흐름에 중점을 두어 기술하는 분석용 도구로, 버블 차트라고도 함

② 하향식 분할의 원리를 적용하여 그림 중심으로 표현

③ 처리입력된 자료를 출력으로 변환하는 것

1) 자료 흐름 : 발생지, 종착지, 처리 및 저장소 사이에서 자료의 흐름을 나타냄

2) 자료 저장소 : 시스템 상의 자료를 저장하기 위한 장소

3) 단말 : 시스템에 필요한 자료가 입력되는 발생지와 시스템에서 처리된 자료가 출력되는 종착지

를 나타냄

4) 자료처리 : 자료의 변환

(2) 자료 사전(DD)

① 자료 흐름도의 대상의 되는 모든 자료에 대한 기본적인 사항들을 더 자세히 정의하기 위해 사용

되는 도구

② 메타 데이터(Meta Data) 또는 데이터의 데이터라고도 함

③ 이름을 이용해 정의를 쉽게 찾을 수 있어야 하며, 이름이 중복되어서는 안 됨

④ 갱신하기 쉬워야 하며, 정의하는 방식이 명확해야 함

Page 142: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

13

⑤ 중복된 정의가 없어야 함

⑥ 자료 사전의 정의 대상 : 자료 흐름(Data Flow)을 구성하는 자료 항목, 자료 저장소(Data

Store)를 구성하는 자료 항목, 자료에 대한 의미, 자료 요소(Data

Element)의 단위 및 값

⑦ 자료 사전의 기호

1) = 자료의 정의

2) {  }자료의 반복

3) + 자료의 연결

4) | 대체 항목의 나열

5) (  )자료의 생략

6) * ... *자료의 설명

7) [  ]자료의 선택

(3) 소단위 명세서(Mini-Spec.)

① 자료 흐름도상의 최하위 처리 절차를 상세하게 기술하는 데 사용하는 도구로, 프로세스 명세서

라고도 함

② 구조적 언어, 의사 결정표, 의사 결정도를 이용하여 기술함

5절 객체지향분석과 설계

1. 객체지향 기법 관련 용어

(1) 속성(Attribute) : 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의하

는 것으로서 성질, 분류, 식별, 수량 또는 현재 상태 등을 표현함

(2) 메소드(Method) : 객체에 정의된 연산을 의미하며, 객체의 상태를 참조하거나 변경하는 수단이 됨

(3) 클래스(Class) : 2개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소 즉,

공통된 특성과 행위를 갖는 객체의 집합이라고 할 수 있음. 한 클래스를 기준

으로 하여 그 기준 클래스의 상위 클래스를 수퍼 클래스, 하위 클래스를 서브

클래스라고 함

(4) 인스턴스(Instance) : 하나의 클래스에 속하는 각각의 객체를 의미

(5) 인스턴스화(Instantiation) : 클래스로부터 새로운 객체를 생성하는 행위

(6) 메시지(Message) : 외부로부터 하나의 객체에 전달되는 메소드(행위)의 요구

2. 객체의 특징

(1) 다형성 : 하나의 메시지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력

을 의미 즉, 같은 연산자라도 각 클래스에 따라 다른 기능을 수행할 수 있음

(2) 상속성(Inheritance) : 이미 정의된 상위 클래스의 메소드를 비롯한 모든 속성을 하위 클래스가

Page 143: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

14

물려받을 수 있는 것을 의미

(3) 추상화(Abstraction) : 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을

두어 개략화시키는 것을 의미

(4) 캡슐화(Encapsulation) : 데이터 구조와 데이터를 조작하는 연산을 하나로 묶어 하나의 모듈 내

에서 결합되도록 하는 것을 의미

(5) 정보 은닉(Information Hidden) : 캡슐화된 정보를 외부에 감추는 것을 의미

3. 객체지향 소프트웨어 개발 방법론

(1) 객체지향 기술

① 프로그램 구성 요소의 재사용을 가능하게 해줌

② 소프트웨어 개발과 고품질 프로그램을 신속하게 만들 수 있게 해줌

(2) 객체지향 정신으로 프로그램 분석, 설계, 구현 단계에 이르기까지 객체지향 패러다임에 따라야

만 각 단계가 일관성을 갖게 됨

4. 객체지향 분석

(1) 객체지향 소프트웨어 공학의 부분으로 수행되는 첫 번째 기술적인 활동

(2) 객체지향 분석의 기본 원칙

① 정보 도메인 구체화

② 모듈 기능 기술

③ 모형 행위 표현

④ 모형들을 세부 사항으로 나타내기 위해 분할

⑤ 초기 모형들은 문제의 본질을 나타내고 차후의 모형들은 구현의 세부사항들을 나타냄

(3) 객체지향 분석을 완성하기 위해 필요한 작업

① 사용자 요구사항은 사용자가 될 고객과 소프트웨어 엔지니어 사이의 의견 교환에 의해 작성되어

야 함

② 클래스들은 식별되어야 함(속성과 방법들이 정의됨)

③ 클래스 계층이 명시되어야 함

④ 객체들 사이의 관계(객체-대-객체)가 표현되어야 함

⑤ 객체 행위가 모델화 되어야 함

⑥ 모형이 완성될 때까지 위의 첫 단계부터 이전 단계까지 반복적으로 재사용되어야 함

5. 객체지향 설계(object oriented design)

(1) 시스템 설계

① 분석 모형을 시스템 설계 모형으로 변환

② 구성

1) 목표의 정의

2) 서브시스템 파악

Page 144: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

15

3) 프로세서와 구성 요소 배정

4) 자료 저장소 정의

(2) 객체 설계

① 시스템을 이루는 객체의 내용을 설계

② 구성

1) 서비스 정의

2) 구성 요소 선택

3) 재구조화

4) 최적화

(3) 객체지향 설계

① 서브시스템 설계(subsystem design)

② 클래스와 객체 설계(class and object design)

③ 메시지 설계(message design)

④ 책임 설계(responsibilities design)

6. 객체지향 테스팅

(1) 객체지향 시스템의 테스트 단계

① 객체와 관련된 연산의 개별적인 테스트

② 개별적인 객체 클래스 테스트

③ 객체들의 클러스터 테스트

④ 객체지향 시스템 테스트

(2) 통합 테스트를 위한 접근 방법

① 사용 사례 또는 시나리오 기반 테스트

② 스레드 테스트

③ 객체 반응 테스트

6절 UML

1. UML(Unified Modeling Language)

Page 145: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

16

(1) UML의 정의

① 복잡한 소프트웨어 시스템 개발 모델링에 필요한 구성요소를 제시하고 이를 이용한 추상화 방법

과 산출물들을 프로젝트 참여자들이 쉽게 이해할 수 있도록 소프트웨어 개발방법론(표현 및 기

법)들이 통합된 객체지향개발 표준통합 모델링 언어

② 표준화된 다이어그램을 통하여 소프트웨어 생명 주기 전체 단계에서 시스템의 산출물을 가시화

하고 명세화하는 모델링 언어

③ 비즈니스 모델링이나 대규모의 복잡한 분산시스템 모델링, 정보시스템 모델링 등을 시각적으로

구체화하고 구축하는 객체지향 모델링 언어

(2) UML의 특징

① 각 개발공정에 다양하고 일관성 있는 표현방법을 제공하고 확장성이 뛰어남

② 소규모에서 대규모 프로젝트까지 모두 잘 적용할 수 있음

③ UML은 CASE 도구 및 개발프로세스(Unified Process) 지원

④ 특정 개발 방법론에 얽매이지 않는 개방적이고 독립적 표기체계

⑤ 별도의 비용이 없는 공개된 표준 모델링 제공

⑥ 개발자간 의사소통 원활, 반복적 점진적 과정

⑦ 사용자에게 사용하기 쉽고 표현이 풍부한 시각적 모형화 언어 제공

2. 4+1 View

(1) Use-Case View

① 외부 사용자의 관점에서의 기능을 나타냄

② 시스템 행동을 설명

③ 최종사용자, 분석가, 설계자, 테스트 담당자에게 제공 되는 뷰

④ 시스템 아키텍쳐를 구체화하는 요인들을 명세화

⑤ Diagram

1) Static : Use-Case Diagram

2) Dynamic : Communication Diagram, State Chart Diagram, Activity Diagram

(2) Logical View

① 시스템 내부의 structure와 behavior로 functionality가 어떻게 설계되었는지를 표현

② Logical View는 Service관점에서 시스템이 사용자에게 제공해야 하는 기능적 요구사항 표현

③ Diagram

1) Static : Class Diagram, Object Diagram

2) Dynamic : Sequence Diagram, Communication Diagram, State Chart Diagram, Activity Diagram

Page 146: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

17

(3) Implementation View

① 개발 환경 내에서 실제 소프트웨어 모듈의 구성과 관련

② 개발의 용이성, 소프트웨어 관리, 재사용, 프로그램언어와 개발 도구에 따른 제약과 관련되어

파생된 요구사항을 고려

③ 시스템 배포의 형상관리 표현

④ 물리적인 시스템을 조립하고 배포하는데 사용되는 Component와 File 들로 구성

⑤ Diagram

1) Static : Component Diagram

2) Dynamic : Communication Diagram, State Chart Diagram, Activity Diagram

(4) Process View

① 절차적인 관점

② Performance, Reliability, Scalability, Integrity, System Management, Synchronization등의

요구사항을 고려

③ Diagram

1) Static : Class Diagram, Object Diagram

2) Dynamic : Communication Diagram, State Chart Diagram, Activity Diagram

(5) Deployment View

① 시스템을 컴퓨터와 device의 node로 전개 시켜 표현

② Deployment Diagram은 시스템에서 서로 다른 node들과 이 node들 간의 연결을 나타내기 위해 생

성됨

③ Diagram

1) Static : Deployment Diagram

2) Dynamic : Communication Diagram, State Chart Diagram, Activity Diagram

3. UML Diagram의 종류

(1) Use-Case Diagram

Page 147: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

18

① 시스템이 해야 할 행동 명세화를 하고 순서 있는 액션의 집합을 기술한 것으로 Actor에게 해택

이 있는 결과를 제공해야 함

② 사용자의 시각에서 SW 시스템의 범위와 기능을 쉽게 설명하고 정의한 모델

③ 시스템의 모든 기능에 대한 Use Case와 이와 관련된 Actor들 및 이들간의 관계를 표현

④ 고객과 개발자간에 시스템이 무엇을 수행하는지에 대한 명확하고 일관성 있는 정의를 제공

⑤ 개발자에게 시스템에 대한 이해를 제공하여 개발을 도와줌

⑥ 시스템 행동을 조직화하고 모델링

⑦ 시스템의 정적 쓰임새 뷰

(2) Sequence Diagram

① 시스템의 동작을 정형화 하고 객체간의 메시지 교환을 쉽게 표현하고 시간에 따른 메시지 발생

순서를 강조한다.

② 어떤 일을 하기 위해 참여하는 객체들 사이에 일어나는 상호작용을 시간 순으로 파악하기 위해

사용됨

③ 객체들의 집합이 제시간에 상호 작용하는 방법을 표현

④ 메시지의 시간적 순서를 강조

(3) Class Diagram : 시스템을 구성하는 클래스 구조를 나타내며 객체들의 공통구조와 동작을 추상

화 하며, Dependency, Association, Aggregation, Realization 관계를 표현한

다.

① 시스템에 포함된 객체들의 유형들과 그 클래스들 사이의 정적 관계성을 표현

② 한 클래스의 속성과 연산을 표현

③ 객체들을 연결하는 방법에 적용하는 제약사항을 표현

④ 클래스, 인터페이스, 협력간의 관계를 나타내며 객체 지향 시스템 모형화에서 가장 공통적으로

많이 쓰임

⑤ 객체들 사이의 행위를 나타내는 것은 Sequence Diagram과 동일

(4) Communication Diagram

① 특정 메시지 집합 안에 참여하는 객체들의 조직에 초점을 두고 있으며 Sequence Diagram과 마찬

가지로 설계 작업흐름에 적용

② 객체들 사이의 행위를 나타내는 것은 Sequence Diagram과 동일

③ 객체들 사이의 정적인 구조에 더 초점

(5) State Diagram : 시스템의 동적 측면을 모델링 하는 것으로 Object행동 모델을 작성한다.

① 한 객체가 가지는 상태와 사건에 따라 순차적으로 발생하는 행동에 중점을 두고 작성

② 하나의 상태전이 다이어그램에서 객체의 초기 상태를 나타내는 시작 상태는 오직 하나만 존재하

며, 객체의 마지막 상태인 종료 상태는 여러 개 존재할 수 있음

(6) Activity Diagram

① 순서도의 일종으로 발생하는 활동을 강조

② 데이터의 활동이나 흐름, 또는 활동들 사이의 의사 결정을 표현

③ 하나의 사용사례 내에서 일어나는 활동들을 분할하기 위해 사용 가능

④ 시스템의 기능을 모형화하고 객체간의 제어 흐름 표현에 유용

Page 148: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

19

⑤ 순서나 병렬적인 처리를 요하는 행위를 표현

(7) Object Diagram : 객체들 사이의 관계표현, 클래스의 Instance에 대한 정적 스냅샷

① 객체들의 상호작용을 정의하기 위해 작성

② 특정 객체들이 전체 클래스 모델의 내용 안에서 사용되는 방법을 나타내기 위해 클래스 다이어

그램에 추가 객체들 사이의 관계를 표현

(8) Component Diagram : 인터페이스를 가지고 자체 실행 가능한 컴포넌트 모임을 표현, 실행 Node

에서 실행 가능한 컴포넌트를 명세화

① 물리적 구성단위 컴포넌트와 그들간의 구성 및 의존 관계를 표현

② 시스템의 논리적 모델을 개발자 관점에서 바라본 물리적 모델로 재배치하는 데 사용

③ 어떤 클래스를 어떤 파일에 넣으면 어떤 파일을 모아 어떤 모듈을 만들 것인지 등을 정의하는 것

7절 CASE

1. 소프트웨어 공학의 발전 동향 - CASE

(1) CASE(Computer Aided Software Engineering)

① 소프트웨어 공학에서 여러 작업들을 자동화하는 것

② CASE 도구 : 소프트웨어 공확과 관련된 여러 작업 중에서 하나의 작업을 자동화한 소프트웨어

패키지

③ 구분 : 상위 CASE, 하위 CASE, 통합 CASE

④ 원천기술 : 구조적 기법, 프로토타입 기술, 응용 프로그래밍, 정보 저장소, 분산처리기술 등

⑤ 장점

1) 표준화를 쉽게 달성할 수 있다

2) 소프트웨어의 품질 향상(일관성과 완벽성 자동 검증)

3) 개발 비용 절약

4) 생산성 향상

2. 재사용

(1) 다른 시스템에서 테스트해보고 검증해본 구성 요소를 바탕으로 새로운 설계를 한다는 의미

① 소프트웨어 개발과 유지 보수 비용을 줄임

② 시스템을 신속히 개발하여 양도할 수 있음

③ 소프트웨어의 질적 향상 꾀함

(2) 요구분석과 설계 단계에서부터 재사용을 염두에 두어야 함

(3) 재사용이 가능한 소프트웨어의 단위

① 응용 시스템 재사용

② 구성 요소 재사용

③ 함수 재사용

(4) 소프트웨어 설계와 개발 과정에서의 요구사항

Page 149: 제 1강 컴퓨터구조 Ⅰ - eduever.comC4%C4%C7%BB%C5%CD%20%C0%CF%B9%D… · 조준희 교수의 컴퓨터일반 기본강의 1 제 1강 컴퓨터구조 Ⅰ 1절 컴퓨터의 개요

www.eduever.com

조준희 교수의 컴퓨터일반 기본강의

20

① 재사용이 적절한 구성 요소가 쉽게 발견되어야 함

② 구성 요소를 재사용하는 쪽에서는 구성 요소들을 신뢰할 수 있어야 함

③ 구성 요소에 대한 내용이 문서화되어 있으면 새로운 용도로 적용시키기가 쉬움