자격증 ⁺₊

정보처리기사 실기 이론 요약 정리

by ₊⁺우산이끼⁺₊ 2024. 7. 31.
반응형

정보처리기사 자격증을 공부하면서 이론 부분 정리한 내용입니다. 필기 정리글에 썼던 내용과 같은 것도 몇 가지 있습니다. 아직 저도 결과는 안 나왔지만 다른 분들 공부할 때 도움이 되었으면 좋겠네요.

오타 있을 수 있습니다. 필기 합격한 뒤에 외워야 하는 것들 위주로 정리했기 때문에 모든 것들을 정리하진 않았습니다. 스크롤 길어요!!

 

※ 애자일(Agile)
시제품을 끊임없이 제작하며 사이클을 반복하는 개발 방법론.



※ UML 다이어그램
구성요소: 사물, 관계, 다이어그램

관계 설명
Association 연관 2개 이상의 사물이 서로 관련되어 있음
Aggregation 집합 하나의 사물이 다른 사물에 포함되어 있음
Composition 포함 포함하는 사물의 변화가 포함되는 사물에 영향을 미침
Generalization 일반화 사물이 다른 사물에 비해 더 일반적인지 구체적인지
Dependency 의존 필요에 의해 서로 영향을 주는 짧은 시간 동안만 연관을 유지
Realization 실체화 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화할 수 있음

*집합과 포함 헷갈리지 않게 주의!

다이어그램 종류

구조적 다이어그램
Class 클래스 사이의 관계
Object 특정 시점의 객체와 객체 사이의 관계. 럼바우 객체 모델링
Component 컴포넌트 간의 인터페이스. 구현 단계
Deployment 물리적 요소들의 위치. 구현 단계
Composite Structure 복합구조를 갖는 경우 그 내부 구조 표현
Package 모델 요소들을 그룹화한 패키지들의 관계
행위 다이어그램
Use case 요구 분석. 사용자와 사용 사례로 구성
Sequence 객체들이 주고받는 메시지 표현
Communication 객체들 간의 연관까지 표현
State 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현. 럼바우 동적 모델링
Activity 객체의 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
Interaction Overview 상호작용 다이어그램 간의 제어 흐름을 표현
Timing 객체 상태 변화와 시간 제약을 명시적으로 표현

UML 다이어그램 모양 참고: https://creately.com/blog/diagrams/uml-diagram-types-examples/

 

※ LOC 기법
개발 소요 기간 = 30000라인 / 월간 평균 생산성 300라인 / 참여 프로그래머 5명
=20개월

 

※ 데이터베이스 구축 과정
1 요구 분석
2 개념적 설계: 트랜잭션 모델링, 개념 스키마 모델링, E-R 다이어그램
3 논리적 설계: 트랜잭션 인터페이스 설계, 정규화
4 물리적 설계: 저장장치에 저장할 수 있는 데이터로 변환
5 구현

데이터 모델의 구성 요소
개체(Entity) 표현하려는 것. 현실 세계의 대상체
속성(Attribute) 데이터의 가장 작은 논리적 단위. 데이터 항목 또는 데이터 필드
관계(Relationship) 개체 간의 관계 또는 속성 간의 논리적이 연결
데이터 모델에 표시할 요소
구조(Structure) 논리적으로 표현된 개체 타입들 간의 관계. 데이터 구조 및 정적 성질 표현.
연산(Operation) 데이터를 처리하는 작업에 대한 명세. 데이터베이스를 조작하는 기본 도구.
제약 조건(Constraint) 저장될 수 있는 데이터의 논리적인 제약 조건

E-R 다이어그램

※ 관계형 데이터베이스 용어 정리
릴레이션 Relation = 테이블
애트리뷰트 Attribute = 열 = 필드
차수 Degree = 열들의 수
튜플 Tuple = 행 = 레코드 Record
카디날리티 Cadinality = 행들의 수

도메인 Domain = 한 애트리뷰트에 나타낼 수 있는 값들의 집합. 원자값(더 나누어지지 않는 값)
스키마 Schema = 릴레이션 이름과 애트리뷰트들의 집합 = 내포 Intension
인스턴스 Instance = 릴레이션의 어느 시점에 들어있는 튜플들의 집합(값을 가진 튜플) = 외연 Extension

슈퍼키: 유일성 만족
후보키: 유일성과 최소성 만족

 

※ 관계대수
관계형 데이터베이스에서 정보를 검색하기 위한 절차적 언어

Select 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션 생성.
π Project 속성 값만을 추출하여 새로운 릴레이션 생성. 애트리뷰트를 추출
Join 공통 속성을 중심으로 두 개의 릴레이션을 합침
÷ Division X⊃Y인 릴레이션 R(X)와 S(Y)가 있을 때 R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만 구함.
UNION 튜플의 합집합. 중복되는 튜플은 제거.
INTERSECTION 튜플의 교집합.
DFFERENCE 튜플의 차집합
× CARTESIAN PRODUCT 교차곱. 튜플들의 순서쌍을 구하는 연산. 차수의 수는 더하고 카디널리티 수는 곱한다.

※ 관계해석
관계 데이터의 연산 표현
계산 수식 사용
비절차적 특성
튜플 관계해석, 도메인 관계해석

전칭 정량자 가능한 모든 튜플에 대하여(For All)
존재 전량자 하나라도 일치하는 튜플이 있음(There Exists)

 

※ 이상(Anomaly)

삽입 이상
Insertion Anomaly
의도와 상관없는 값도 함께 삽입됨
삭제 이상
Deletion Anomaly
의도와 상관없는 값도 함께 삭제됨
갱신 이상
Update Anomaly
일부 튜플의 정보만 갱신되어 정보에 모순이 생김

 

※ 정규화 과정
비정규 릴레이션
 ↓ 도메인이 원자값
제1정규형
 ↓ 부분적 함수 종속 제거
제2정규형
 ↓ 이행적 함수 종속 제거
제3정규형
 ↓ 결정자이면서 후보키가 아닌 것 제거
BCNF
 ↓ 다치 종속 제거
제4정규형
 ↓ 조인 종속성 이용
제5정규형

*반정규화(비정규화): 정규화된 데이터 모델을 통합, 중복, 분리하는 과정. 시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 의도적으로 정규화 원칙을 위배한다.

 

※ 트랜잭션(Transaction)
: 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 혹은 한꺼번에 수행되어야 할 일련의 연산

특성 설명
Atomicity
원자성
트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되거나 전혀 반영되지 않도록 복구(Rollback)되어야 한다.
Consistency
일관성
트랜잭션 실행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다. 고정 요소는 트랜잭션 수행 전과 후가 같아야 한다.
Isolation
독립성
둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
Durability
지속성
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
연산 설명
REDO 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션 시작, 완료 기록이 있는 트랜잭션들의 작업을 재작업한다.
UNDO 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션 시작과 완료 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다.
ROLLBACK 트랜잭션이 실패한 경우 작업을 취소하고 이전 상태로 되돌리기 위한 명령어
COMMIT 트랜잭션이 성공적으로 끝나 데이터베이스가 일관된 상태에 있을 때 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알리는 연산
RECOVERY 트랜잭션 수행 중에 오류가 생긴 경우 지금까지 실행한 연산 처리를 모두 취소하고 작업 전 상태로 되돌린다.

 

※ 웹 서비스 구현

WSDL
(Web Services Description Language)
웹 서비스 관련 서식이나 프로토콜 등을 표준 방법으로 기술하고 게시하기 위해 XML로 작성된 언어
UDDI
(Universal Description, Discovery and Integration)
웹 서비스 관련 정보의 공개와 탐색을 위한 표준 전역 비즈니스 레지스트리. 서비스 내용을 인터넷상에 등록할 수 있게 하는 XML 기반 등록처
SOAP
(Simple Object Access Protocol)
HTTP, HTTPS, SMTP 등을 사용해 XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜

 

※ 접근통제(Access Control): 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것

DAC
Discretionary
임의접근통제
사용자의 신원에 따라 접근 권한을 부여하여 제어. 데이터 소유자가 권한을 지정하고 제어. GRANT, REVOKE
MAC
Mandatory
강제접근통제
객체의 등급을 비교하여 접근 권한을 부여. 시스템이 권한을 지정.
RBAC
Role Based
역할기반접근통제
역할에 따라 접근 권한을 부여. 중앙관리자가 권한을 지정. 다중 프로그래밍 환경에 최적화.

 

※ 럼바우 데이터 모델링

객체 모델링
=정보 모델링
Object, Information
객체 간의 관계를 규정하여 표시. ERD
동적 모델링
Dynamic
시간의 흐름에 따른 객체들 간의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현. STD(상태 변화도), 사건 추적도
기능 모델링
Function
프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현. DFD(자료흐름도)

 

※ 객체지향 설계 원칙

SRP
Single Responsibility
단일 책임 원칙
객체는 하나의 책임만 가져야 한다
OCP
Open-Closed
개방-폐쇄 원칙
기존 코드를 변경하지 않고 기능을 추가할 수 있게 설계해야 한다.
LSP
Liskov Substitution
리스코프 치환 원칙
자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다
ISP
Interface Segregation
인터페이스 분리 원칙
자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다
DIP
Dependency Inversion
의존 역전 원칙
객체들 간의 의존 관계가 성립할 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다.

 

※ 결합도(Coupling)

Data Coupling
자료
자료 요소 -결합도 약함
Stamp Coupling
스탬프
자료 구조
Control Coupling
제어
제어 신호
External Coupling
외부
참조
Common Coupling
공통/공유
공통 데이터 영역
Content Coupling
내용
직접 참조 -결합도 강함

 

※ 응집도(Cohesion)

Functional Cohesion
기능적
모든 기능 요소들이 단일 문제와 연관되어 수행 -응집도 강함
Sequential Cohesion
순차적
하나의 활동으로부터 나온 출력 데이터를 다음 활동 입력 데이터로 사용
Communication Cohesion
교환적/통신적
동일한 입력과 출력을 사용해 서로 다른 기능을 수행하는 구성 요소
Procedural Cohesion
절차적
모듈이 다수의 관련 기능을 가질 때 구성 요소들이 그 기능을 순차적으로 수행할 경우
Temporal Cohesion
시간적
특정 시간에 처리되는 기능
Logical Cohesion
논리적
유사한 성격을 갖거나 특정 형태로 분류되는 요소들
Coincidental Cohesion
우연적
서로 관련 없는 요소 -응집도 약함

*결합도가 낮을수록 응집도가 높을수록 좋은 품질.

 

※ 디자인 패턴
생성, 구조, 행위 패턴(Creational, Structural, Behavioral)

*각 패턴 이름 알파벳 순서입니다.

생성 패턴
Abstract Factory 구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관/의존하는 객체들의 그룹으로 생성하여 추상적으로 표현. 연관된 서브 클래스를 묶어 한 번에 교체할 수 있음.
Builder 작게 분리된 인스턴스를 건축 하듯이 조합. 객체의 생성 과정과 표현 방법을 분리.
Factory Method 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화. 상위 클래스에서는 인터페이스만 정의. 가상 생성자(Virtual Constructor) 패턴이라고도 함.
Prototype 원본 객체를 복제해서 객체 생성
Singleton 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 있지만 여러 프로세스가 동시에 참조할 수는 없음. 클래스 내에 인스턴스가 하나뿐임을 보장.
구조 패턴
Adapter 호환성이 없는 클래스들의 인터페이스를 이용할 수 있도록 변환.
Bridge 구현부에서 추상층 분리. 기능과 구현을 두 개의 별도 클래스로 구현.
Composite 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용. 객체들을 트리 구조로 구성.
Decorator 객체 간의 결합을 통해 능동적으로 기능들을 확장하 할 수 있음. 부가 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현.
Facade 복잡한 서브 클래스들을 피해 더 상위에 인터페으스를 구성하여 서브 클래스 기능을 간편하게 사용. 서브 클래스들 사이의 통합 인터페이스 제공을 위해 Wrapper 객체 필요.
Flyweight 인스턴스를 가능한 한 공유해서 사용해 메모리 절약.
Proxy 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할 수행.
행위 패턴
Chain of Responsibility 요청 처리 가능한 객체가 여러 개일 때 한 객체가 처리하지 못하면 다음 객체로 넘어감. 요청이 해결될 때까지 고리를 따라 책임이 넘어감.
Command 요청을 객체의 형태로 캡슐화.
Interpreter 언어에 문법 표현을 정의
Iterator 접근이 잦은 객체에 대해 동일한 인터페이스를 사용. 내부 표현 방법 노출 없이 순차적인 접근 가능.
Mediator 복잡한 상호작용을 캡슐화. 객체 사이의 의존성을 줄여 결합도 감소.
Memento 특정 시점에서의 객체 내부 상태를 객체화. 되돌리기 기능
Observer 한 객체의 상태가 변화하면 상속되어 있는 다른 객체들에게 변화된 상태를 전달. 이벤트 생성/발행하고 이를 수신할 때 이용.
State 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용. 객체 상태 캡슐화 및 참조.
Strategy 동일 계열의 알고리즘을 개별적으로 캡슐화.
Template Method 상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리를 구체화하는 구조.
Visitor 클래스의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성. 분리된 처리 기능이 각 클래스를 방문하여 수행.

객체 생성 과정과 표현 방법을 분리 -> Builder
구현부와 추상층 분리, 기능과 구현 분리 -> Bridge
데이터 구조에서 처리 기능 분리 -> Visitor

상위 클래스에서 인터페이스 정의, 서브 클래스에서 생성 -> Factory Method
상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리 -> Template Method

스펠링 끝이 er인 단어: Builder, Adapter, Interpreter

디자인 패턴 그림 설명 참고: https://refactoring.guru/ko/design-patterns/creational-patterns

 

※ UI 설계 원칙

직관성 누구나 쉽게 이해하고 사용할 수 있어야 한다.
유효성 사용자의 목적을 정확하고 완벽하게 달성해야 한다.
학습성 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 한다.

*'직효학연'으로 외웠음.

 

※ 어플리케이션 테스트 용어

결함 집중
Defect Clustering
대부분의 결함이 소수의 특정 모듈에 집중해서 발생하는 것
파레토 법칙
Pareto Principle
테스트로 발견된 80%의 오류는 20%의 모듈에서 발견되므로 이를 집중적으로 테스트하여 효율적으로 오류를 찾자는 것
살충제 패러독스
Pesticide Paradox
동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 것
오류-부재의 궤변
Absence of Errors Fallacy
결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다는 것

 

※ 화이트박스 테스트/블랙박스 테스트

화이트박스 테스트 종류
Base Path Testing
기초 경로 검사
테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 함.
Control Structure Testing
제어 구조 검사
Condition Testing 조건 검사: 모듈 내 논리적 조건을 테스트
Loop Testing 루프 검사: 반복 구조에 초점을 맞춰 테스트
Data Flow Testing 데이터 흐름 검사: 변수의 정의와 변수 사용의 위치에 초점을 맞춰 테스트
블랙박스 테스트 종류
Equivalence Partitioning Testing
동치 분할 검사, 동등 분할 기법, 동치 클래스 분해
입력 자료에 초점을 맞춰 테스트 케이스를 만듦.
조건에 타당한 자료와 아닌 자료를 균등하게 골라 입력 자료에 맞는 결과가 출력되는지 확인
Boundary Value Analysis
경계값 분석
입력 조건의 경계값으로 테스트
Cause-Effect Graphing Testing
원인-효과 그래프 검사
입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 후 효용성이 높은 테스트 케이스를 선정하여 검사
Error Guessing
오류 예측 검사, 데이터 확인 검사
과거의 경험이나 확인자의 감각으로 테스트
Comparison Testing
비교 검사
여러 버전의 프로그램에 동일 테스트 자료를 제공하여 동일한 결과가 출력되는지 확인

※ 화이트박스 테스트 검증 기준(테스트 케이스 설계 방법)

Statement Coverage
문장 검증 기준
모든 구문 한 번 이상 수행
Branch Coverage
= Decision Coverage
분기 검증 기준
= 결정 검증 기준
모든 조건문에 대해 True인 경우와 False인 경우가 한 번 이상 수행
Condition Coverage
조건 검증 기준
개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행
Branch/Condition Coverage
분기/조건 기준
조건문이 True인 경우와 False인 경우에 따라 조건 검증 기준의 입력 데이터를 구분

 

※ 애플리케이션 테스트 V-모델

요구사항    요구사항 확인 →    인수 테스트
분석   기능 확인 →   시스템 테스트
설계  인터페이스 확인 →  통합 테스트
구현 모듈 확인 → 단위 테스트

 

※ 통합 테스트

상향식 하향식
하위 모듈에서 상위 모듈 방향으로 통합
하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요
테스트 드라이버
상위 모듈에서 하위 모듈로 통합
깊이 우선 통합법, 넓이 우선 통합법 사용
초기부터 사용자에게 시스템 구조를 보여줌.
테스트 스텁

 

※ 목적에 따른 테스트

Recovery 결함을 주고 올바르게 복구되는지 확인
Security 보호 도구가 불법 침입으로부터 시스템을 보호하는지 확인
Stress 과부하 시에도 정상적으로 실행되는지 확인
Performance 실시간 성능이나 전체적인 효율성을 진단. 응답 시간, 처리량 등
Structure 소프트웨어 내부의 논리적인 경로, 소스코드의 복잡도 평가
Regression 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인. 이미 테스트된 프로그램의 테스팅을 반복
Parallel 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과 비교

 

※ 테스트 오라클
테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동

True
참 오라클
모든 테스트 케이스의 입력값에 대해 기대하는 결과를 제공하는 오라클. 발견된 모든 오류를 검출.
Sampling
샘플링 오라클
특정 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
Heuristic
추정 오라클
특정 테스트 케이스의 입력 값에는 기대한 결과를 제공하고 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클.
Consistent
일관성 검사 오라클
애플리케이션의 변경이 있을 때 테스트 케이스 수행 전과 후의 결과 값이 동일한지 확인하는 오라클.

 

※ 보안 및 암호화

개인키 암호화(대칭) 블록 암호화 방식: DES, AES, ARIA, SEED
스트림 암호화 방식: LFSR, RC4
공개키 암호화(비대칭) RSA
암호화 알고리즘
DES 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘.
블록 크기 64비트, 키 길이 56비트, 16회 라운드 수행
AES 2001년 미국 표준 기술 연구소(NIST)에서 발표한 대칭키 암호화 알고리즘. DES의 한계로 인해 발표.
블록 크기 128비트, 키 길이에 따라 128, 192, 256으로 분류
ARIA 2004년 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘.
블록 크기 128비트, 키 길이에 따라 128, 192, 256으로 분류
SEED 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘.
블록 크기 128비트, 키 길이에 따라 128, 256으로 분류
RSA 1978년 MIT의 라이베스트, 사미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘. 큰 숫자를 소인수분해하기 어렵다는 것에 기반하여 제작. 키 = 메시지를 열고 잠그는 상수(Constant)
해시
: 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
SHA 시리즈 1993년 미국 국가안보국(NSA)이 처음 설계.
MD5 1991년 MD4를 대체하기 위해 고안한 암호화 해시 함수
블록 크기 512비트, 키 길이 128비트
N-NASH 1989년 일본 전신전화주식회사(NTT)에서 발표한 암호화 해시 함수
블록 크기와 키 길이 모두 128비트
SHEFRU 1990년 R.C.Merkle가 발표한 해시 함수. 32비트 프로세서에서 구현을 용이하게 할 목적.
블록 크기 512비트, 키 길이에 따라 128과 256으로 분류

*솔트(Salt): 암호화를 수행하기 앞서 원문에 무작위 값을 덧붙이는 과정

 

 

※ 스케줄링 알고리즘

FCFS
First Come First Service
준비상태 큐에 도착한 순서에 따라 CPU 할당
SJF
Shortest Job First
실행 시간이 짧은 프로세스부터 할당
HRN
Highest Response-ratio Next
(대기시간+서비스 시간)/서비스 시간
RR
Round Robin
시분할 시스템을 위해 고안
할당 시간 동안 실행이 완료지 않으면 다음으로 넘기고 가장 뒤에 배치
SRT
Shortest Remaining Time
현재 실행 중인 프로세스의 남은 시간과 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에 할당

 

※ OSI 7계층

계층 이름 설명 PDU
1 물리 계층
Physical Layer
기계적, 전기적, 기능적 절차적 특성에 대한 규칙 정의 Bit
2 데이터링크 계층
Datalink Layer
신뢰성 있고 효율적인 정보 전송을 위한 시스템 연결 설정과 유지 및 종료
- 흐름 제어 기능
- 프레임 동기화 기능
- 오류 제어 기능
Frame
3 네트워크 계층
Network Layer
네트워크 연결 관리 기능, 데이터의 교환 및 중계 기능
경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송
IP(Internet Protocol), IPSec, ICMP, IGMP, ARP, RARP
Packet
4 전송 계층
Transport Layer
종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어
TCP(Transmission Control Product), UDP, ECN, SCTP, DCCP
Segment
5 세션 계층
Session Layer
송·수신 측 간의 관련성 유지, 대화 제어, 데이터 교환 관리 Data
6 표현 계층
Presentation Layer
응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환
코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 포맷 변환, 문맥 관리
7 응용 계층
Application Layer
사용자가 OSI 환경에 접근할 수 있도록 서비스 제공
- FTP(File Transfer Protocol)
- SMTP(Simple Mail Transfer Protocol)
- TELNET
HTTP, FTP, IRC, SSH, DNS

 

※ 프로토콜
: 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않은 경우 재전송하는 일련의 방법
기본 요소: 구문(Syntax), 의미(Semantics), 시간(Timing)

 

※ Routing Protocol (경로 제어 프로토콜)

IGP 자율 시스템 내부 라우팅에 사용됨.
-RIP(Routing Information Protocol): 거리 벡터 라우팅 프로토콜. Bellan-Ford 알고리즘 사용. 소규모 동종 자율 시스템에서 효율적임. 최대 홉(Hop) 수를 15로 제한함.
-OSPF(Open Shortest Path First Protocol): 다익스트라 알고리즘 사용. 대규모 네트워크에서 사용. 링크 상태를 실시간으로 반영하여 최단 경로로 라우팅 지원.
EGP 자율 시스템 간의 라우팅에 사용됨.
BGP EGP의 단점 보완.
처음 연결될 때는 전체 라우팅 테이블을 교환하고 이후에는 변화된 정보만 교환.

 

※ 형상 관리 도구
: CVS, Git, SVN(Subversion)

 

※ 서브넷 계산

참고 영상: https://youtu.be/Z9YbIdIH84w?si=aHQs-juvpW1eGe66

 

※ Unix/Linux 파일 접근 권한

8진수를 나타내는 법: chmod 777 파일명

chmod User
사용자
Group
그룹
Other
기타
파일명
  R W X R W X R W X  
  4 2 1 4 2 1 4 2 1  

R = Read 읽기 4
W = Write 쓰기 2
X = eXecute 실행 1

각 권한을 부여하려면 숫자를 더하면 됨.
읽기, 쓰기 권한을 줌: 4+2 = 6
실행 권한만 줌: 1

chmod 761 file.txt : user에게 읽기, 쓰기, 실행 권한을, Group에게 읽기, 쓰기 권한을, Other에게 쓰기 권한을 줌.

*기호를 사용할 경우
u(user), g(group), o(other), a(all)
+추가, -제거, =지정
r(읽기), w(쓰기), x(실행)
chmod go-w file.txt : group과 other에 file.txt 쓰기 권한 제거
chmod g+w, o-x file.txt : group에게 file.txt 쓰기 권한 부여, other에게 file.txt 실행 권한 삭제
chmod a=rw file.txt : 모든 사용자에게 file.txt 읽기, 쓰기 권한 부여

반응형

댓글