본문 바로가기

기타

[정보처리기사] 4과목 프로그래밍언어활용 헷갈리는 부분 정리

* UDP (User Datagram Protocol)

- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공함

- TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적고, 흐름 제어나 순서 제어가 없어 전송 속도가 빠름

- 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 전달할 경우, 정기적으로 반복해서 전송할 경우에 사용

- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에 사용됨

- UDP 헤더에는 Source Port Number, Destination Port Number, Length, Checksum 등이 포함


* 결합도

- 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미함

- 다양한 결합으로 모듈을 구성할 수 있으나 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮음

- 결합도가 강하면 시스템 구현 및 유지보수 작업이 어려움

- 종류(약함에서 강함순)

 . 자료 결합도(Data Coupling) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

 . 스탬프(검인) 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도

 . 제어 결합도(Control Coupling) : 한 모듈에서 다른 모듈로 논리적인 흐름을 제어하는 데 사용하는 제어 요소(Function code, Switch, Tag, Flag)가 전달될 때의 결합도

 . 외부 결합도(External Coupling) : 어떤 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 결합도

 . 공통(공유) 결합도(Common Coupling) : 공유되는 공통 데이터 영역을 여러 모듈이 사용될 떄의 결합도

 . 내용 결합도(Content Coupling) : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 

 

* 응집도

- 정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정보, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미함

- 다양한 기준으로 모듈을 구성할 수 있으나 응집도가 강할수록 품질이 높고, 약할수록 품질이 낮음

- 종류(강함에서 약함순)

 . 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행할 경우의 응집도

 . 순차적 응집도(Sequebtial Cohesion) : 모듈 내 하나의 활동으롭터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도

 . 교환(통신)적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도

 . 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도

 . 시간적 응집도(Temporal Cohesion) : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도

 . 논리적 응집도(Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도

 . 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도


* IP (Internet Protocol)

- OSI 7계층의 네트워크 계층에 해당

- 데이터그램을 기반으로 하는 비연결형 서비스를 제공

- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공

- 헤더의 길이는 최소 20Byte에서 최대 60Byte

- IP 헤더에는 Version, Header Length, Total Packet Length, Header Checksum, Source IP Address, Destination IP Address 등이 포함됨

- 에러 검사나 수신 확인 등을 수행하지 않아 신뢰성을 보장하지는 못하지만 전송에는 최선을 다하는 Best Effort 원칙을 따름

- IPv4

 . 8비트씩 4부분, 총 32비트로 구성되어 있음

 . A클래스에서 E클래스까지 총 5단계로 구성되어 있음

- IPv6

 . 16비트씩 8부분, 총 128비트로 구성되어 있음

 . 각 부분을 16진수로 표현하고, 콜론(:)으로 구분함

 . 패킷 헤더는 40옥텟(octet)의 고정된 길이를 가짐

 . IPv4에 비해 자료 전송 속도가 빠르고, IPv4와 호환성이 뛰어남

 . 주소의 확장성, 융통성, 연동성이 뛰어나고, 품질 보장이 용이함

 . 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있음

 . IPv6의 주소 체계

 .. 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신(1:1통신에 사용)

 .. 멀티캐스트(Multicast) : 단일 송신자와 다중 수신자 간의 통신(1:N통신에 사용)

 .. 애니캐스트(Anycast) : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신(1:1통신에 사용)


* 포인터(C언어)

- 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자*를 붙임 (예) int *a;

- 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙임 (예) a=&b;

- 실행문에서 포인터 변수가 간접 연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함 (예) c=*a;



* OSI 7계층

- 물리 계층(Physical Layer)

 . 전송에 필요한 두 장치 간의 실제 접속돠 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의함

 . 물리적 전송 매체와 전송 신호 방식을 정의하며, RS-232C, X21등의 표준이 있음

- 데이터 링크 계층(Data Link Layer)

 . 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함

 . 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능을 함

 . 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 함

 . 오류의 검출과 회복을 위한 오류 제어 기능을 함

 . 프레임의 순서적 전송을 위한 순서 제어 기능을 함

 .HDLC, LAPB, LLC, LAPD, PPP 등의 표준이 있음

- 네트워크 계층(Network Layer, 망 계층)

 . 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 함

 . 네트워크 연결을 설정, 유지, 해제하는 기능을 함

 . 경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행함

 . 관련 표준으로는 X25, IP 등이 있음

- 전송 계층(Transport Layer)

 . 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 함

 . OSI 7계층 중 하위 3계층과 상위 3계층의 인터페이스(Interface)를 담당함

 . 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 함

 . 주소 설정, 다중화, 오류 제어, 흐름 제어를 수행함

. TCP, UDP 등의 표준이 있음

- 세션 계층(Session Layer)

 . 송/수신측 간의 관련성을 유지하고 대화 제어를 담당하는 계층

 . 대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능을 함

 . 연결의 생성, 관리, 종료를 위해 토큰을 사용함

- 표현 계층(Presentation Layer)

 . 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함

 . 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층

 . 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능을 함

- 응용 계층(Application Layer)

 . 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공함

 . 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송 등의 서비스를 제공함