728x90
본 내용은는 2024년 1회 시험 기준 3개년 문제들을 바탕으로 준비된 정보들입니다.
💡 소프트웨어 공학 용어
✅ 객체 지향 설계 원칙
SOLID
SRP (Single Responsibility Principle) 단일 책임의 원칙 |
하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙 객체 지향 프로그래밍 5원칙 중 나머지 4원칙의 기초 원칙 |
OCP (Open Close Principle) 개방 폐쇄의 원칙 |
SW 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙 |
LSP (Liskov Substitution Principle) 리스코프 치환 원칙 |
서브 타임(상속 받은 하위 클래스)은 어디든 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 원칙 |
ISP (Interface Segregation Principle) 인터페이스 분리 원칙 |
한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말하야 한다는 원칙 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다는 원칙 |
DIP (Dependency Inversion Principle) 의존성 역전의 원칙 |
실제 사용관계는 바뀌지 않으며, 추상을 매개로 메세지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙 |
✅ 결합도와 응집도
결합도는 낮을수록 응집도는 높을수록 이상적인 모듈화입니다.
결합도는 모듈과 모듈간의 상호 의존 정도이고, 응집도는 모듈 내부의 기능적인 집중 정도를 의미
자료 결합도 (Data Coupling) |
모듈 간 인터페이스 전달되는 파라미터를 통해서만 모듈 간 상호 작용이 일어나는 겨우 |
스탬프 결합도 (Stamp Coupling) |
모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐 등이 전달되는 경우 |
제어 결합도 (Control Coupling) |
단순 처리 해야할 대상인 값만 전달되는게 아니라 어떻게 처리해야 한다는 제어 요소(DCD, Flag) 등이 전달되는 경우 |
외부 결합도 (External Coupling) |
어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우 |
공통 결합도 (Common Coupling) |
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용 하는 경우 |
내용 결합도 (Content Coupling) |
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우 |
우연적 응집도 (Coincidental Cohesion) |
모듈 내부의 각 구성 요소들이 연관이 없을 경우 |
논리적 응집도 (Logical Cohesion) |
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
시간적 응집도 (Temporal Cohesion) |
연관된 기능이라기보다 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 |
절차적 응집도 (Procedural Cohesion) |
모듈이 다수 관련된 기능 가질 때, 모듈 안 구성요소들이 그 기능을 순차적으로 수행할 경우 |
교환적 응집도 (Communication Cohesion) |
동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우 |
순차적 응집도 (Sqquential Cohesion) |
모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동에서 사용할 경우 |
기능적 응집도 (Functional Cohesion) |
모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우 |
✅ RAID
Redundant Array of Independent Disks ; 복수 배열 독립 디스크
하나의 대형 저장장치 대신 다수의 저용량 저장장치를 배열로 구성하는 기술
유형 | 설명 |
RAID 0 | 패리티(오류 검출 기능)가 없고 중복 없는 스트라이핑된 세트로 구성되는 방식 (적어도 2개 디스크 필요) |
RAID 1 | 패리티가 없는 미러링 된 세트로 구성되는 방식 (적어도 2개 디스크 필요) 디스크 2개에 동일 데이터가 저장되고, 제공해야 할 논리 디스크 크기의 2배 공간을 필요로 하므로 비용 측면에서 단점이 있음 |
RAID 2 | 오류정정부호(ECC)를 기록하는 전용의 하드 디스크 이용해 안정성 확보하는 방식 비트 레벨의 스트라이핑과 해밍코드 패리티 사용하여 하나의 멤버 디스크가 고장나도 ECC를 이용해 정상적으로 작동할 수 있지만, 추가적인 연산이 필요하여 입출력 속도가 매우 늦음 |
RAID 3 | 데이터는 바이트 단위로 쪼개져서 모든 디스크에 스트라이핑된 세트로 구성되고, 패리티 정보는 별도의 전용 디스크에 저장되는 방식 (적어도 3개 디스크 필요) 1개 드라이브 고장 허용, 순차적 쓰기/읽기 성능은 우수하지만 문제 해결이 어려워 잘 사용되지 않음 |
RAID 4 | 데이터는 블록 단위로 쪼개져서 모든 디스크에 스트라이핑된 세트로 구성되고, 패리티 정보는 별도의 전용 디스크에 저장되는 방식 (적어도 3개 디스크 필요) 읽기 성능은 좋지만 쓰기 성능이 나쁨 |
RAID 5 | 패리티가 배분되는 스트라이핑된 세트로 구성된 방식 (적어도 3개 디스크 필요) 모든 디스크는 나뉘어 저장되지만 항상 균등하지 않고 패리티 정보도 나뉘어 저장 |
RAID 6 | 패리티가 배분되는 스트라이핑된 세트로 구성된 방식 (적어도 4개 디스크 필요) 각 디스크에 패리티 정보가 2번 독립적으로 분산되어 저장 |
✅ V 모델
애플리케이션 테스트와 SW 개발 단계를 연결하여 표현한 것
테스트 종류 | 테스트 방법 | 테스트 내용 | 테스트 목적 |
단위 테스트 | 구조 기반 테스트 | 화이트 박스 테스트 | 제어 흐름, 조건 결정 |
명세 기반 테스트 | 블랙 박스 테스트 | 동등 분할, 경곗값 분석 | |
통합 테스트 | 모듈 간 또는 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계 | ||
시스템 테스트 | 기능적 요구사항 | 명세서 기반의 블랙박스 테스트 시행 | |
비기능적 요구사항 | 성능, 회복, 보안, 구조적 요소에 대한 화이트 박스 테스트 시행 |
||
인수 테스트 | 계약 상 요구사항이 만족하였는지 확인하기 위한 테스트 단계 | ||
알파 테스트 | 선택된 사용자가 개발자 환경에서 통제된 상태로 테스트 수행 | ||
베타 테스트 | 실제 환경에서 일정 수의 사용자에게 대상 SW 사용 피드백을 받는 테스트 수행 | ||
회귀 테스트 | 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정 때문에 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법 |
✅ 기능적 / 비기능적
구분 | 기능적 요구 사항 | 비기능적 요구 사항 |
개념 | 시스템이 제공하는 기능, 서비스에 대한 요구 사항 |
시스템 수행 기능 이외에 사항, 시스템 구축 제약사항에 관한 요구사항 |
도출 방법 | 특정 입력, 상황에 대한 시스템 반응 | 품질 속성 관련 시스템이 갖춰야 할 사향 시스템이 준수해야 할 제한 조건 |
특성 | 기능성 , 완전성, 일관성 | 신뢰성, 사용성, 효율성, 이식성, 보안성 및 품질 관련 요구/제한 사항 |
사례 | 온라인 홈페이지에서 쇼핑카트에 주문하고자 하는 품목을 저장할 수 있는 장바구니 기능을 제공해야 함 |
특정 함수의 호출 시간은 3초를 넘지 말아야 함 시스템은 하루 24시간 가동되어야 하며 가동률 99.5%를 만족해야 함 시스템 운영 중 패치 및 업그레이드를 할 수 있어야 함 |
✅ 프로세스 상태 전이도
프로세스 상태 | 설명 |
생성 (Create) 상태 | 사용자에 의해 프로세스 생성된 상태 |
준비 (Ready) 상태 | CPU 할당 받을 수 있는 상태 준비 리스트(Ready list) 각각 우선순위 부여해 프로세스가 다음 순서에 CPU 할당받음 |
실행 (Running) 상태 | 프로세스가 CPU를 할당받아 동작 중 |
대기 (Waiting) 상태 | 프로세스 실행 중 입출력 처리 등으로 인해 CPU 양도하고 입출력 처리가 완료까지 대기 리스트(우선순위 존재하지 않음) 에서 기다리는 상태 |
완료 (Complete) 상태 | 프로세스가 CPU를 할당받아 주어진 시간 내 완전히 수행을 종료한 상태 |
✅ UX, UI
UX | 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험을 의미 사람의 감정이나 경험을 나타내는 개념 |
|
UI | 사용자 인터페이스, CLI가 대표적인 예시 | |
CLI (Command Line Interface) | 정적인 텍스트 기반 인터페이스 | |
GUI (Graphic Line Interface) | 그래픽 반응 기반 인터페이스 | |
NUI (Natural Line Interface) | 신체 부위를 이용하는 사용자 인터페이스 (터치, 음성 포함) | |
OUI (Organic User Interface) | 유기적 상호 작용 기반 인터페이스 (현실에 존재하는 모든 사물) |
✅ 프로세스 스케줄링
유형 | 스케줄링 종류 | 설명 |
선점형 | 라운드 로빈 | 같은 크기의 CPU 할당(시간 할당량), 프로세스 할당된 시간 내 처리 완료 못하면 준비 큐 리스트 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 기법 |
SRT | 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 시간이 가장 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄링 기법 비선점 방식의 스케줄링 기법에 선점 방식을 도입한 기법 |
|
다단계 큐 | 작업들을 여러 종류 그룹으로 분할, 여러 개 큐를 이용하여 상위 단계의 작업에 의한 하위 단계 작업이 선점 |
|
다단계 피드백 큐 |
입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량 부여 |
|
비선점형 | 우선순위 | 우선순위에 따라 할당 |
기한부 | 작업들이 명시된 시간이나 기한 내에 완료 | |
FCFS | 프로세스가 대기 큐에 도착한 순서에 따라 할당 | |
SJF | 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법 CPU 요구시간이 긴 작업과 짧은 작업 간의 불평등이 심해 '기아 현상' 발생 |
|
HRN | 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 |
✅ 형상 관리 도구 별 특징
방식 | 도구 | 설명 |
클라이언트 서버 방식 |
CVS (Concurrent Versions System) |
가장 오래된 형상 관리 도구 중 하나로 중앙 집중형 서버 저장소를 두고 있음 서버와 클라이언트로 구분되어 있고, 클라이언트가 접속해 버전 관리를 실행함 파일 단위로 변경 사항 관리가 가능하고,다수 인원이 동시에 범용적 운영 체제로 접근 가능 |
SVN (Subversion) |
중앙 집중형 클라이언트-서버 방식으로 운영 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있도록 도와주는 도구 |
|
공유 폴더 방식 | RCS (Revision Control System) |
소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상을 관리하는 도구 |
분산 저장소 방식 |
Git | 속도에 중점을 둔 분산형 버전 관리 시스템, 대형 프로젝트에서 효과적이고 유용함 |
Bitkeeper | 중앙 통제 방식으로 대규모 프로젝트에 빠른 속도를 내도록 효과적이고 유용함 | |
Clear Case | 복수 서버, 복수 클라이언트 구조, 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음 |
✅ 럼바우 데이터 모델링
그래픽 표기법을 이용하여 소프트웨어 구성 요소를 모델링하는 방법론
모델링 | 설명 |
객체 모델링, 정보 모델링 (Object / Information Modeling) |
시스템에서 요구하는 객체를 찾고 객체 간의 관계를 정의하여 E-R 다이어그램을 만드는 과정까지의 모델링 |
동적 모델링 (Dynamic Modeling) |
시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링 상태 다이어그램을 활용하여 표현 |
기능 모델링 (Functional Modeling) |
프로세스의 자료 흐름을 중심으로 처리 과정을 표현하는 모델링 자료 흐름도 (DFD)를 활용하여 표현 |
✅ 테스트 하네스 구성요소
구성 요소 | 설명 |
테스트 드라이버 | 상향식 통합 시험을 위해 모듈 테스트 수행 후 결과를 도출하는 시험용 모듈 |
테스트 스텁 | 하향식 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시 제공되는 시험용 모듈 |
테스트 슈트 | 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스 집합 |
테스트 케이스 | 입력 값, 실행 조건, 기대 결과 등의 집합 |
테스트 시나리오 | 애플리케이션의 테스트 되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서 하나의 단일 테스트 시나리오가 하나 또는 여러 개의 TC를 포함할 수 있음 |
테스트 스크립트 | 자동화된 테스트 실행 절차에 대한 명세 |
목 오브젝트 | 사용자 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위를 수행하는 객체 |
✅ 개별 테스트 케이스 항목
항목 | 설명 |
테스트 ID 작성 | TC를 고유하게 식별할 ID 작성 |
테스트 목적 작성 | 테스트 시 고려해야 할 중점 사항, TC 목적 작성 |
테스트할 기능 | 애플리케이션의 테스트할 기능을 간략히 작성 |
테스트 데이터 (= 입력 데이터) |
테스트 실행 시 입력할 데이터(입력 값, 선택 버튼, 체크리스트 값)를 작성 |
예상 결과 (= 기대 결과) |
테스트 실행 후 기대되는 결과 데이터 (출력 데이터, 결과 화면, 기대 동작 등)를 작성 |
테스트 환경 | 테스트 시 사용할 물리적, 논리적 테스트 환경, 사용할 데이터, 결과 기록 서버 등 내용 작성 |
테스트 조건 | 테스트 간 종속성, 테스트 수행 전 실행되어야 할 고려 사항 등을 작성 |
성공 / 실패 기준 | 테스트를 거친 애플리케이션 기능의 성공과 실패를 판단하는 조건을 명확히 작성 |
기타 요소 | 사용자의 테스트 요구사항 중 특별히 고려해야 할 내용 간략히 기술 |
✅ 테스트 오라클
테스트 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교하는 기법
유형 | 설명 |
참 (True) 오라클 | 모든 입력 값에 대해 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클 |
샘플링 (Sampling) 오라클 | 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클 |
휴리스틱 (Heuristic) 오라클 | 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클 |
일관성 검사 (Consistent) 오라클 | 애플리케이션이 변경이 있을 때, 수행 전 / 후 결괏값이 동일한지 확인하는 오라클 |
💡 데이터베이스 용어
✅ 스키마 3계층
유형 | 설명 |
외부 스키마 (External Schema) |
사용자나 개발자의 관점에서 필요로 하는 DB의 논리적 구조 사용자 뷰를 나타내며 서브 스키마로 불림 |
개념 스키마 (Conceptual Schema) |
DB의 전체적인 논리적 구조 전체적인 뷰를 나타내며, 개체 간의 관계, 제약 조건, 접근 권한, 무결성, 보안에 대해 정의 |
내부 스키마 (Internal Schema) |
저장 스키마를 나타내며, 물리적 저장 장치의 관점에서 보는 DB 구조 실제 DB에 저장될 레코드의 물리적 구조를 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드 물리적 순서 등 표현 |
✅ DB 언어 종류
명령어 종류 | 명령어 | 설명 |
DML (데이터 조작어) (Data Manipulation Lang) |
SELECT | DB에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 (RETRIEVE) |
INSERT UPDATE DELETE |
DB 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어들 (데이터 삽입, 수정, 삭제) |
|
DDL (데이터 정의어) (Data Definition Lang) |
CREATE ALTER DROP RENAME TRUNCATE |
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들 |
DCL (데이터 제어어) (Data Control Lang) |
GRANT REVOKE |
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어들 |
TCL (트랜잭션 제어어) (Transaction Control Lang) |
COMMIT ROLLBACK SAVEPOINT |
논리적인 작업의 단위를 묶어 DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어들 |
✅ DB 테이블 용어
용어 | 설명 |
카디널리티 | Tuple의 개수 |
도메인 | Attribute에서 나타날 수 있는 값들의 집합 |
디그리 | Attribute의 수 |
✅ DB Key 종류
키 종류 | 설명 |
슈퍼 키 (Super Key) |
유일성을 만족하는 키. 예로 {학번 + 이름}, {주민번호 + 학번} |
복합 키 (Composite Key) |
2개 이상 속성(attribute)를 사용한 키 |
후보 키 (Candidate Key) |
유일성과 최소성을 만족하는 키. 기본키가 될 수 있는 후보라 후보키라고 불림. 예로 주민번호, 학번 등 |
기본 키 (Primary Key) |
후보 키에서 선택된 키. NULL값은 들어갈 수 없으며, 기본키로 선택된 속성은 동일 값이 가능함 |
대체 키 (Surrogate Key) |
후보 키 중 기본기로 선택되지 않은 키 |
외래 키 (Foreign Key) |
어떤 테이블(Relation) 간 기본 키(Primary Key)를 참조하는 속성. 테이블들 간 관계를 나타내기 위해 사용 |
✅ 무결성 제약 조건
조건 | 설명 |
도메인 제약 조건 (Domain Constraint) |
각 Attribute 값 반드시 원자값이어야 함 Attribute 값의 디폴드 값, 가능한 값들의 범위 등을 지정할 수 있음 |
키 제약 조건 (Key Constraint) |
키 Attribute에 중복된 값이 존재해서는 안됨 (기본키가 아님) |
엔티티 무결성 제약 조건 (Entity Integrity Constraint) |
엔티티는 데이터 집합 (사원, 부서, 고객, 상품 ... ) 릴레이션의 기본 키를 구성하는 어떤 Attribute도 Null 값을 가질 수 없음 대체 키에는 적용 X |
참조 무결성 제약 조건 (Referential Integrity Constraint) |
두 릴레이션의 연관된 튜플들 사이의 일관성을 유지하는데 사용됨 릴레이션 R2의 외래키가 릴레이션 R1의 기본키를 참조할 때, 아래 조건 중 하나가 성립되면 만족됨 1) 외래 키의 값은 R1의 어떤 튜플의 기본 키 값과 같다 2) 외래 키가 자신을 포함한 릴레이션 기본 키를 구성하고 있지 않으면 Null |
무결성 제약 조건 | 역할 |
NOT NULL | NULL 값 허용하지 않음 |
UNIQUE | 중복된 값 허용하지 않음, 항상 유일한 값을 갖도록 한다. |
PRIMARY KEY | NULL을 허용하지 않고 중복된 값을 허용하지 않는다. NOT NULL 조건 + UNIQUE 조건 |
FOREIGN KEY | 참조되는 테이블의 칼럼 값이 존재하면 허용한다. |
CHECK | 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만 허용 |
참조 무결성 제약조건 만족을 위해 제공하는 옵션
1️⃣ restricted (제한) : 위배를 야기한 연산 단순히 거절
2️⃣ cascade (연쇄) : 참조되는 릴레이션과 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제
3️⃣ Nullify (널값) : 참조되는 릴레이션에 튜플 삭제하고 참조하는 릴레이션에 이 튜플 참조하는 외래 키에 Null 삽입
4️⃣ Default : Null 대신 디폴트 값을 넣음
✅ 정규화
종류 | 설명 |
제 1 정규화 | 같은 성격과 내용의 칼럼이 연속적으로 나타나는 칼럼이 존재할 때 해당 컬럼을 제거하고 기본 테이블의 PK를 추가해 새로운 테이블을 생성하고, 기존 테이블과 1:N 관계를 형성 |
제 2 정규화 | PK 여러 키로 구성된 복합 키 (Composite Primary Key)로 구성된 경우가 대상이 됨 복합 키 전체에 의존하지 않고 일부분에만 종속되는 속성들이 존재할 경우 즉, 부분적 함수 종속 관계일 경우 이를 분리하는 것이다 |
제 3 정규화 | 테이블의 키가 아닌 컬럼들은 기본 키에 의존해야 하는데 겉으로는 그런 것처럼 보이지만 실제로는 기본 키가 아닌 다른 일반 컬럼에 의존하는 컬럼들이 있을 수 있다. 이를 이전적 함수 종속 관계일 경우이다. 제 3 정규화는 PK에 의존하지 않고 일반 컬럼에 의존하는 컬럼들을 분리한다 |
✅ 역 정규화
논리적 정규화를 통해 만든 표를 개발적 측면에서 성능이나 편의성을 위해 되돌아가는 작업
💡 네트워크, 보안 용어
✅ 개발 보안 3대 요소
3대 요소 | 설명 |
기밀성 (Confidentiality) |
인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 |
무결성 (Integrity) |
정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 |
가용성 (Availability) |
권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성 |
✅ AJAX
JavaScript를 사용해 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환,조작 위한 웹 기술
- Javascript와 XML을 통해 비동기식으로 웹페이지 일부 콘텐츠만 리로드 해오는 방식입니다.
- HTML만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용 합니다.
- 사용자 PC에서 실행되는 리치 인터넷 애플리케이션(RIA) 기술 중 하나입니다.
- 구글 맵(Google Map)이나 구글 서제스트(Google Suggest) 같은 기능이 대표적 예입니다.
✅ NAT
IPv4의 IP 주소 부족 문제를 해결할 수 있고, 보안 강화 목적으로 사용합니다.
사설 네트워크에 속한 여러개의 호스트를 하나의 공인 IP 주소로 바꾸어주는 네트워크 주소 변환 기술
즉, private IP를 사용하고 있는 컴퓨터가 사설 바깥쪽 public IP에 해당되는 외부세계에 접속할 수 있습니다.
✅ SSH
인증, 암호화, 압축, 무결성을 제공하고 기본 포트는 22번을 사용합니다.
공개 키 방식의 암호방식을 사용해 원격지 시스템에 접근하여 암호화된 메시지를 전송할 수 있는 시스템
전송되는 데이터는 암호화 되어 Telnet보다 강력한 보안을 제공하는 원격 접속 프로토콜입니다.
키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 합니다.
서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 셀 서비스 등을 수행합니다.
✅ SSO
Single Sign On
커버로스에서 사용되는 기술, 한 번의 인증 과정에 여러 컴퓨터 상 자원을 이용할 수 있도록 해주는 인증 기술
✅ AAA (3A)
유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고 신뢰성 있는 인증, 권한 검증, 계정관리 기능을
체계적으로 제공하는 정보보호 기술
인증 (Authentication) | 접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증 |
권한 부여 (Authorization) | 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용 |
계정 관리 (Accounting) | 리소스 사용에 대한 정보를 수집하고 관리하는 서비스 |
✅ 스푸핑
외부 악의적 네트워크 침입자가 임의로 웹사이트를 구성하여 일반 사용자들의 방문을 유도해
TCP/IP의 구조적 결함을 이용하여 사용자의 시스템 권한을 획득한 뒤 정보를 빼가는 방법
✅ VPN
Virtual Private Network
공중망과 사설망의 중간 단계로 공중망을 통해 송신단에서 데이터를 암호화하고, 수신단에서 복호화하는 구조
인터넷 상 두 지점 간에 가상의 터널을 만들어 통신을 안전하게 전송하는 기술
인터넷 망 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 전용망을 사용하는 효과를 가지는 보안 솔루션
SSL/SSH VPN | Application (L4 ~ L7) |
4계층에서 SW적으로 동작하므로 별도 장치가 필요없고 가격이 저렴 |
IPSec VPN | Network (L3) |
3계층에서 IP 헤더를 조작해야 하므로 별도 하드웨어 장치가 필요, 보안성 뛰어남 |
PPTP (Point-to-Point Tunnel Protocol) |
DataLink (L2) |
Microsoft에서 개발한 프로토콜, IP, IPX 페이로드를 암호화하고, IP 헤더로 캡슐화 하여 전송하는 프로토콜 RAS(원격접근서비스)에 기반, RC4 알고리즘으로 기밀성을 제공, 하나의 터널에 하나의 연결만을 지원하여 1대1 통신만 가능 (양방향 tunnel 형성) |
L2F (Layer2 Forwarding) |
Cisco에서 개발한 프로토콜, 하나의 터널에 여러 개 연결을 지원하여 다자간 통신이 가능한 프로토콜, TCP가 아닌 UDP를 사용하는 특징이 있음 |
|
L2TP (Layer2 Tunneling Protocol) |
Microsoft와 Cisco에서 지원하고 있어 호환성이 뛰어난 프로토콜 UDP 포트가 사용되고 터널링에 대한 인증을 수행 L2F + PPTP 결합한 형태로 기밀성을 제공하지 않아 IPSec과 함께 사용 |
✅ IPSec
인터넷 프로토콜 IP를 사용하는 네트워크에서 보안성을 제공하기 위한 프로토콜
- 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 프로토콜
- 데이터의 기밀성, 무결성, 인증 등 보안적 요구사항을 충족시키기 위한 프로토콜
- 가상 사설망(VPN)에서 사용
- Header와 Payload를 암호화하고, 인증하는 과정을 거치며 데이터를 안전하게 전송
인증 헤더 (AH ; Authentication Header) |
데이터 송신자의 인증을 허용하는 인증 헤더 프로토콜 데이터 보존성과 IP 패킷 인증을 통해 메시지 인증, 무결성 검증 제공 시퀀스 넘버를 통해 Replay Attack에 대응 |
암호화 (ESP ; Encapsulating Security Payload) |
송신자의 인증 및 데이터 암호화를 함께 지원하는 프로토콜 메시지 인증, 무결성 검증, 암호화를 통해 기밀성 제공 |
✅ IPC
Inter-Process Communication
프로세스 간 통신 기술
메시지 큐 (Message Queueing) |
메시지(또는 패킷) 단위로 동작하여 프로세스 간 통신함 |
공유 메모리 (Shared Memory) |
한 프로세스 일부분을 다른 프로세스와 공유 |
소켓 (Socket) |
클라이언트와 서버 프로세스 둘 사이에 통신 가능하게 함 |
세마포어 (Semaphores) |
프로세스 사이의 동기를 맞추는 기능을 제공함 |
파이프 (Pipe & named Pipe) |
Pipe 라 불리는 선입 선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행 |
✅ EAI
Enterprise Application Integration
기업 내 운영되는 서로 다른 플랫폼 및 어플리케이션 간 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션
구축 유형 | 설명 |
포인트 투 포인트 (Point-to-Point) |
가장 기초적인 애플리케이션 통합 방법으로 1:1 단순 통합 방법 장점으로 솔루션 구매 없이 개발자 간 소통을 통해서도 통합이 가능 |
허브 앤 스모크 (Hub & Smoke) |
단일한 접점의 허브 시스템을 통해 데이터를 전송하는 중앙 집중식 방식 단, 허브 장애 시 전체 장애 발생 |
메시지 버스 (Message Bus) |
애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식 뛰어난 확장성과 대용량 데이터 처리 가능 |
하이브리드 (Hybrid) |
그룹 내는 허브 앤 스모크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식. 그룹 내 환경에 맞는 작업 가능 |
더보기
1️⃣ ESB, Enterprise Service Bus
기업 내 운영되는 서로 다른 플랫폼 및 어플리케이션 간을 하나의 시스템으로 관리 운영할 수 있도록
서비스 중심의 통합을 지향하는 아키텍쳐
- 미들웨어를 이용하여 서비스 중심으로 서비스를 지원하기 위한 관련 시스템과 유기적 연계 (SOA 토대)
- 느슨한 결합(Loosely Coupled) 방식으로 지원
- 각 시스템을 BUS를 통해 연결하므로 뛰어난 확장성, 유연성, 신속성 제공
- 네트워크에 의존적인 문제
✅ 에드 혹 네트워크
Ad-hoc Network
노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크
- 재난 현장과 같이 별도 고정된 유선망 구축이 어려운 경우 모바일 호스트만을 이용해 구성한 네트워크
- 무선 인터페이스를 통해 서로 통신하고 멀티 홉 라우팅 기능에 의해
- 무선 인터페이스가 가지는 통신 거리상의 제약을 극복하며, 노드들의 이동이 자유롭게 때문에
- 네트워크 토폴로지가 동적으로 변화되는 특징이 있음
- 완전 독립형이 될 수도 있고 인터넷 게이트웨이를 거쳐 인터넷과 같은 기반 네트워크와 연동될 수 있음
✅ 템퍼 프루핑
SW, 시스템을 외부에서 악의적인 조작으로부터 보호하는 보안 기술로
위변조와 같은 이상 조작을 검출하고, 이상 감지 시 프로그램을 오작동하게 만드는 기술
구분 | 주요 기술 | 설명 |
템퍼 프루핑 생성 기술 | 해시 함수 (Hash Function) |
일정한 크기 문자열 생성해 무결성 검증할 수 있는 함수 |
워터 마크 (Watermark) |
멀티 미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입해 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술 |
|
핑거 프린트 (Fingerprint) |
디지털 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제 시 워터마크를 추출, 원소유자를 증명할 수 있는 콘텐츠 보호 기술 |
|
외부 공격에 대한 방어 기술 | 소프트웨어 원본 비교 | SW 원본에 대한 메시지 다이제스트 알고리즘을 비교하여 변조를 찾아내는 기술 |
프로그램 체킹 | 프로그램 체킹을 수행하면서 중간의 산출물 검증을 통해 변조를 방지하는 기술 |
|
실행 코드 난독화 (Obfuscation) |
실행 코드를 알아보기 힘든 형태로 난독화 하여 처리하는 기술 |
✅ 클라우드 유형
SaaS (Software as s Service) |
사용자가 필요로 하는 '소프트웨어'를 인터넷 상에서 이용하는 클라우드 서비스로 제공 |
Paas (Platform as a Service) |
인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게하는 플랫폼을 클라우드 서비스로 제공 |
IaaS (Infrastructure as a Service) |
서버, 스토리지 같은 시스템 자원을 클라우드 서비스로 제공 |
✅ ISMS
정보보호 관리체계 ; Information Security Management System
정보보호를 위한 체계적이고 지속적인 접근 방법을 제공하는 경영 체제
- 정보보호를 위한 체계적이고 지속적인 접근 방법을 제공하는 경영 체제
- 국제 표준인 ISO/IEC 27001 기반으로 구축
- 정보 보호를 위한 정책, 절차, 기술, 인력 등을 포함
✅ TKIP
임시 무결성 프로토콜 ; Temporal Key Integrity Protocol
무선 네트워크에서 사용되는 암호화 프로토콜
- WEP의 보안 취약점을 보완
- 패킷마다 임시 키를 생성
- 현재는 보안성 취약하다는 이유로 더 이상 권장되지 않음
- 대신 AES 암호화 프로토콜을 사용
✅ SIEM
Security Information and Event Management
다양한 보안 장비, 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후
정보 간의 연관성을 분석하여 위협 상황을 인지하고 침해 사고에 신속하게 대응하는 보안 관제 솔루션
더보기
1️⃣ SEM, Security Event Management
SEM, Security Event Management : 보안 이벤트를 수집, 관련 정보를 통합하여 보안 위협을 탐지하고 대응하는 솔루션
2️⃣ ESM, Enterprise Security Management
SEM과 SIEM을 포함한다.
ESM, Enterprise Security Management
기업의 전체적인 보안 상태를 관리하고, 위협을 탐지하고 대응하기 위한 종합적인 보안 관리 솔루션
✅ WSDL
Web Service Description Language
웹서비스 유형 중 하나로 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술
- 웹서비스의 구체적인 내용이 기술되어 서비스 제공 장소
- 서비스 메시지 포맷, 프로토콜 등이 기술
더보기
1️⃣ SOAP, Simple Object Access Protocol
HTTP, HTTPS, SMTP 등을 사용하여 XML 기반 메시지를 네트워크 상태에서 교환하는 프로토콜
2️⃣ UDDI, Universal Description, Discovery Integration
WSDL을 등록하고 검색하기 위한 저장소로 공개적 접근, 검색이 가능한 레지스트리이자 표준