정보처리기사 요약 <2>

HY·2025년 4월 19일
1
post-thumbnail

트랜잭션(*ACID)
: 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자. 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.

  • 원자성(Atomicity): 연산 전체가가 모두 정상적으로 실행되거나 취소 되어야 함
  • 일관성(Consistency): 수행 전과 수행 완료 후의 상태가 같아야 함
  • 격리성(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 함
  • 영속성(Durability): 성공이 완료 된 결과는 영속적으로 데이터베이스에 저장

트랜잭션의 상태 변화(*활부완신철)

  • 활동 상태
  • 부분 완료 상태
  • 완료 상태
  • 실패 상태
  • 철회 상태

트랜잭션 제어언어 TCL(*커롤체)

  • 커밋;COMMIT(트랜잭션 확정): 트랜잭션을 메모리에 영구적으로 저장
  • 롤백;ROLLBACK(트랜잭션 취소): 트랜잭션 내역을 저장 무효화시키는 명령어
  • 체크포인트;CHECKHPOINT(저장 시기 결정): 롤백을 위한 시점을 지정하는 명령어

병행제어(일관성) (*로낙타다2)
: 여러 트랜잭션을 수행할 때 , 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법

  • 로킹: 동시 접근하지 못하도록 상호배제 기능을 제공
  • 낙관적 검증: 어떠한 검증도 수행하지 않고 일단 트랜잭션 수행
  • 타임 스탬프 순서: 트랜잭션 실행전에 타임스탬프를 부여하여 시간에 따라 수행
  • 다중버전 동시성 제어: 타임스탬프를 비교하여 직렬가능성이 보장되는 버전 선택
  • 2PC: 데이터베이스 동시성 제어 기술 중 하나, 두 단계로 분리하여 제어

데이터베이스 고립화 수준(격리성)

  • Read Uncommitted
  • Read Committed
  • Repeatable Read
  • Serializable Read
    회복 기법(영속성)
    : 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
  • REDO: 비정상적으로 종료되었을 때 작업을 재작업 하는 기법
  • UNDO: 시작은 있지만 완료에 대한 기록이 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소하는 기법
    회복 기법 종류(*회로체그)
  • 로그기반 회복기법: 지연갱신 회법 / 즉각 갱신 회복 기법
  • 체크 포인트 회복기법: 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 복원
  • 그림자 페이징 회복기법: 트랜잭션 수행시 복제본을 생성하여 장애시 이를 이용해 복구

개발환경 구축의 개념
: 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해가 필요하다.
개발도구와 서버의 선정이 이루어져야 하고, 개발에 사용되는 도구들의 사용 편의성과 성능, 라이선스를 확인한다.

개발도구의 분류(*빌구테형)

  • 빌드 도구: 작성한 코드의 빌드 및 배포 수행
  • 구현 도구: 코드 작성과 디버깅, 수정
  • 형상관리 도구: 산출물에 대한 버전 관리
  • 테스트 도구: 기능 검증과 전체의 품질을 높이기 위함\

하드웨어 개발환경

  • 웹 서버(Web Server): HTTP,HTTPS, 정적 컨텐츠
  • 웹 애플리케이션 서버(WAS;Web Application Server): 동적 컨텐츠
  • 데이터 서버(Database Server)
  • 파일 서버(File Server): HDD, SSD

소프트웨어 개발환경

  • 운영체제
  • 미들웨어
  • DBMS

형상관리 목적
: 프로젝트 생명주기 동안 제품의 무결성과 변경에 대한 추적성을 확보할수 있다.
형상관리의 절차(*식통감기)

  • 형상 식별
  • 형상 통제
  • 형상 감사
  • 형상 기록

소프트웨어 형상관리 도구 유형(*공클분)

  • 공유 폴더 방식(RCS, SCCS)
  • 클라이언트 방식(CVS,SVN): 중앙에 버전 관리 시스템을 항시 동작시킴
  • 분산저장소 방식(Git): 로컬 저장소와 원격 저장소로 분리되어 분산 저장

RCS(Revision Control System)
: 소스 파일의 수정을 한 사람만으로 제한
CVS(Concurrent Versions System)
: 가장 오래된 형상 관리 도구, 중앙 집중형 서버 저장소를 두고 클라이언트가 접속 버전관리
SVN(Subversion)
: 중앙 집중형 클라이언트-서버 방식 CVS 단점 보완
백업 개념
: 중요한 데이터나 정보를 안전하게 보관하기 위한 데이터를 복제하는 기법
백업의 유형(*전차증)

  • 전체 백업
  • 차등 백업: 마지막 전체 백업 이후 변경된 모든 데이터 백업
  • 증분 백업: 정해진 시간을 기준으로 그 이후에 변경된 파일만 백업

재사용

  • 재공학(Re-Engineering): 재활용하는 소프트웨어 재사용 기법
  • 재개발(Re-Development): 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발

모듈
: 그 자체로 하나의 완전한 기능을 수행할수 있는 독립된 실체이다.
독립성이 높은 모듈일수록 다른 모듈에게 영향을 미치지 않고, 독립성은 결합도는 약하고 응집도는 높을수록 높다.

모듈화(Modularization)
: 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 방법

응집도(Cohesion): 모듈 내부 구성요소 간의 연관 정도
(*우논시절통순기)

  • 우연적 응집도(Coincidental Cohesion): 모듈 내부의 각 구성요소가 연관이 없을 경우
  • 논리적 응집도(Logical Cohesion): 유사한 성격을 갖는 요소들이 한 모듈에서 처리될 때
  • 시간적 응집도(Temporal Cohesion): 특정 시간에 처리되어야 하는 활동들을 처리할 때
  • 절차적 응집도(Procedural Cohesion): 다수의 관련 기능을 가질때 기능을 순차적으로 수행
  • 통신적 응집도(Communication Cohesion): 동일한 입출력을 사용하여 다른 기능을 수행
  • 순차적 응집도(Sequential Cohesion): 한 활동으로부터 나온 출력값을 다른 활동이 사용
  • 기능적 응집도(Functional Cohesion): 모든 기능이 단일한 목적을 위해 수행되는 경우

결합도(Coupling): 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
(*내공외제스자)

  • 내용 결합도(Content Coupling): 다른 모듈 내부의 변수와 기능을 다른 모듈에서 사용
  • 공통 결합도(Common Coupling): 모듈 밖 전역변수 참조, 공통 데이터 영역 사용할때
  • 외부 결합도(External Coupling): 외부에서 도입된 데이터를 공유할 경우의 결합도, 외부 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할때
  • 제어 결합도(Control Coupling): 다른 모듈의 내부 논리조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우
  • 스탬프 결합도(Stamp Coupling): 두 모듈이 동일한 자료구조를 조회하는 경우의 결합도
  • 자료 결합도(Data Coupling): 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도, 한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태

모듈 테스트 종류

  • jUnit: 자바 프로그래밍 언어용 단위 테스트 도구
  • CppUnit: C++로 구현한 단위 테스트 도구
  • HttpUnit: 웹 브라우저 없이 웹사이트 테스트를 수행하는 단위 테스트 도구

배치 프로그램: 사용자와의 상호 작용 없이 일련의 작업들을 작업단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리 하는 방법

  • 이벤트 배치: 사전에 정의해 둔 조건 충족 시 자동으로 실행
  • 온디맨드 배치: 사용자의 명시적 요구가 있을 때 마다 실행
  • 정기 배치: 정해진 시점에 정기적으로 실행

배치 스케줄러: 일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

  • 스프링 배치(Spring Batch): 프레임워크의 3대 요소를 모두 사용할수 있는 대용량 처리를 제공
  • 쿼츠 스케줄러(Quartz Scheduler): 스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

크론 표현식
분/시/일/월/요일/명령어

SW 개발 보안의 개념
: 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동을 말한다.

SW 개발 보안의 구성요소(*기무가)

  • 기밀성(Confidentiality): 인가된 사용자에 대해서만 자원 접근이 가능
  • 무결성(Integrity): 인가된 사용자에 대해서만 자원 수정이 가능
  • 가용성(Availability): 인가된 사용자는 권한 범위 내에서 언제든 자원 접근이 가능

SW 개발 보안 용어(*자위취위)

  • 자산
  • 위협
  • 취약점
  • 위험

DoS 공격
: 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 수많은 접속시도, TCP연결을 소진시킨다
DoS 공격의 종류

  • SYN 플러딩: SYN패킷만 보내 다른 사용자가 서버를 사용 불가능하게 함
  • UDP 플러딩: 대량의 UDP패킷을 만들어 ICMP생성하게 해 지속해서 자원을 고갈시킴
  • 스머프/스머핑: 출발지 주소를 공격 대상 IP로 설정하여 ICMP Echo 패킷을 브로드캐스팅
  • 즉음의 핑(PoD;Ping of Death): ICMP패킷을 아주 크게 만들어 버퍼 오버플로우 발생
  • 랜드어택(Land Attack): 출발지 IP와 목적지 IP를 같은 패킷주소로 만듬, 무한루프
  • 티어드롭(Tear Drop): 재조합 과정에서 오류 발생 기능을 마비시킴
  • 봉크: 똑같은 번호로 전송돼서 오류를 일으킴
  • 보잉크: 패킷 시퀀스 번호를 비정상적인 상태로 보내서 부하를 일으킴

DDos 공격
: DoS의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법이다.
DDos의 공격 구성요소(*HAMAD)- Handler(핸들러)

  • Agent(에이전트)
  • Master(마스터)
  • Attacker(공격자)
  • Daemon(데몬 프로그램)

DRDoS 공격
: 공격자는 출발지 IP를 공격대상IP로 위조하여 다수의 반사 서버로 요청정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부가 되는 공격이다.

세션 하이재킹(Session Hijacking)
: 케빈 미트닉이 사용했던 공격 방법 중 하나로 TCP의 세션 관리 취약점을 이용한 공격기법

애플리케이션 공격

  • HTTP GET 플러딩: 과도한 GET메시지를 이용하여 웹 서버의 과부하 유발
  • Slowloris: 웹 서버와 연결상태를 장시간 지속시키고 연결 자원을 모두 소진
  • RUDY Attack: 비정상적으로 크게 설정하여 계속 연결상태를 유지시키는 공격(99999...)
  • Slow Read Attack: TCP윈도 크기를 낮게 설정하여 서버로 전달
  • Hulk Dos: 주소를 지속적으로 변경하면서 다량으로 GET요청을 발생시킴
  • Hash Dos: 해시테이블에서 해시 충돌이 발생하도록

네트워크 공격

  • 스니핑(Sniffing)
    : 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는

  • 네트워크 스내퍼,스니퍼(Scanner,Sniffer)
    : 구성의 취약점을 파악해 공격자가 취약점을 탐색하는 공격 도구

  • 패스워드 크래킹
    : 사전 크래킹/무차별 크래킹/패스워드 하이브리드 공격/레인보우 테이블

  • IP 스푸핑
    : 인증된 IP어드레스로 위조하여 타깃에 전송하는 공격

  • ARP 스푸핑
    : MAC주소를 자신의 MAC주소로 위조, 나가는 패킷을 스니핑

  • ICMP Redirect 공격
    : 메시지를 공격자가 원하는 형태로 만들어 패킷을 스니핑하는 기법

  • 트로이 목마
    : 겉보기에는 정상적이지만 실행하면 악성코드 실행

버퍼 오버플로(Buffer Overflow) 공격
: 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로 인해 프로세스의 흐름을 변경시켜서 악성 코드르 실행시키는 공격기법이다.

  • 스택 버퍼 오버플로: 스택 영역에서 발생
  • 힙 버퍼 오버플로: 동적으로 할당되는 힙 영역에서 발생
  • 버퍼 오버플로 공격 대응 방안
  • 스택가드 활용
  • 스택쉴드 활용
  • ASLR 활용
  • 안전한 함수 활용

백도어(Backdoor)
: 정상적인 인증 절차를 우회하는 기법

서버 인증의 개념
: 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차

인증 기술의 유형(*지소생특)

  • 지식
  • 소지
  • 생체
  • 특징(행위)

서버 접근 통제

  • 주체
  • 객체
  • 접근

서버 접근 통제의 유형

  • DAC(임의적 접근 통제): 신분 기반 접근 통제 정책
  • MAC(강제적 접근 통제): 규칙 기반 접근 통제 정책
  • RBAC(역할 기반 접근 통제): 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한

접근 통제 보호 모델(*벨기비무)

  • 벨-라파듈라 모델(BLP): 미 국방부 지원 보안 모델, 기밀성을 강조, MAC기반
  • 비바 모델: 위 모델의 단점을 보완한 무결성을 보장하는 최초의 모델

3A(Authentication, Authorization, Accounting)

  • 인증: 단말에 대한 식별 및 신분을 검증
  • 권한부여: 어떤 수준의 권한과 서비스를 허용
  • 계정관리: 정보를 수집하고 관리하는 서비스

인증 관련 기술

  • SSO(Single Sign on): 커버로스에서 사용되는 기술, 한번의 인증 여러 커뮤펕 자원 사용
  • 커버로스: MIT 프로젝트에서 개발, 클라이언트/서버 모델에서 동작, 대칭 키 암호기법
  • OAuth: 사용자가 비밀번호를 제공하지 않고 다른 웹사이트나 애플리케이션의 접근 권한을 부여할수 있게 하는 개방형 표준기술

암호 알고리즘 방식

  • 양방향 암호 방식(대칭키, 비대칭키)
  • 일방향 암호 방식(해시 암호 방식)

양방향 암호 방식

  • 대칭 키 암호 방식: 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
    ▶ 블록 암호 방식: DES, AES, SEED
    ▶ 스트림 암호 방식: RC4

  • 비 대칭 키 암호 방식: 공개 키와 개인 키 존재
    ▶ RSA, ECC, ElGamal, 디피-헬만

일방향 암호 방식: 임의 길이의 정보를 입력받아, 고정된 길이의 암호문을 출력하는 암호방식
▶ MAC(Message Authentication Code): 메시지 인증 코드, 무결성과 송신자의 인증 보장
▶ MDC(Modification Detection Code): 키를 사용하지 않는 변경 감지 코드

대칭 키 암호화 알고리즘
DES(Data Encryption Standard)
: 블록 크기는 64bit, 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘
AES(Advanced Encryption Standard)
: 블록 크기는 키 길이에 따라 128/192/256 비트, 라운드 수는 10,12,14 로 구성
SEED
: 한국인터넷진흥원이 개발한 암호화 알고리즘, 블록 크기 키 길이에 따라 128/256 비트
ARIA(Academy, Research Institute, Agency)
: 국가정보원과 산학연구협회가 개발, 블록 크기는 128/192/256
IDEA(International Data Encryption Algorithm)
: DES 대체하기 위해 스위스 연방기술에서 개발
LFSR(Linear Feedback Shift Register)
: 시프트 레지스터의 일종으로 스트림 암호화 알고리즘
Skipjack
: 미 국가안보국에서 개발한 칩에 내장된 블록 알고리즘

비 대칭 키 암호화 알고리즘

  • DH(디피-헬만)
    : 최초의 공개키 알고리즘, 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음
  • RSA(Rivest-Shamir-Adleman)
    : MIT 수학교수가 고안 소인수 분해하는 수학적 알고리즘 이용
  • ECC(Elliptic Curve Cryptography)
    : 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키
  • ELGamal
    : 이산대수의 계산이 어려운 문제를 기본원리로 하고 있으며 RSA와 유사하게 전자서명과 데이터 암 복호화에 함께 사용가능

해시(Hash) 암호화 알고리즘

  • MD5: MD4를 개선한 알고리즘 무결성 검사에 사용
  • SHA-1: NSA에서 미 정부 표준으로 지정되었고 DSA에서 사용
  • SHA-256/384/512: SHA의 한 종류, AES에 대응하도록 출력 길이를 늘인 알고리즘
  • HAS-160: 국내 표준 서명 알고리즘을 위하여 개발된 해시 함수, MD5+SHA1
  • HAVAL: 메시지를 1024비트 블록으로 나누고,,,출력하는 해시 알고리즘

데이터베이스 암호화 기법(*애플티하)

  • API방식
  • Plug-in 방식: 모듈이 디비 서버에 설치된 방식
  • TDE방식: 커널에 자체적으로 암복호화 기능 실행
  • Hybrid방식

안전한 전송을 위한 데이터 암호화 전송

  • PPTP(Point to Point Tunnel Protocol)
    : PPP에 기초하여 두 대의 컴퓨터가 직렬 인터페이스를 이용할 때 사용

  • L2F(Layer 2 Fowarding)
    : 시스코사에서 개발한 프로토콜 하나의 터널에 여러 개의 연결 지원, UDP사용

  • L2TP(Layer 2 Tunneling Protocol)
    : L2F와 PPTP의 결합한 방법 호환성이 뛰어난 프로토콜이다, IPSEC기술과 함께 사용한다.

  • IPSEC(Internet Protocol Security)
    : 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하였다.

  • SSL/TLS(Secure Socket Layer/Transport Layer Security)
    : 전송계층과 응용계층 사이에서 클라이언트와 서버간의 웹 데이터 암호화, 무결성을 보장

  • S-HTTP(Secure Hypertext Transfer Protocol)
    : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나, 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술

SW 개발 보안 적용 사례

  • BSIMM- Open SAMM
  • Seven TouchPoints
  • MS SDL
  • OWASP CLASP

SW 개발 보안 구현
시큐어 코딩 가이드

  • 입력데이터 검증 및 표현
  • 보안 기능
  • 시간 및 상태
  • 에러 처리
  • 코드 오류
  • 캡슐화
  • API오용

입력 데이터 검증 및 표현
: 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들

  • XSS: 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우
  • 사이트 간 요청 위조(CSRF): 자신의 의지와는 무관하게 공격자가 의도한 행위를 할때
  • SQL삽입(Injection): 악의적인 SQL구문을 삽입

XSS(Cross Site Scripting)

  • Stored XSS: 악성 스크립트 포함된 페이지를 읽어 봄과 동시에 악성 스크립트 실행
  • Reflected XSS: 악성 URL을 이메일로 보내 클릭하면 피해자로 공격스트립트가 반사
  • DOM(Document Object Model XSS)

네트워크 보안 솔루션

  • 방화벽(Firewall): 기업 내부,외부 간 트래픽을 모니터링 하여 접근 허용,차단
  • 웹 방화벽(WAF;Web Application Firewall): 웹 애플리케이션 보안에 특화된 장비
  • 네트워크 접근 제어(NAC;Network Access Control)
    : 단말기가 내부 네트워크에 접속을 시도할때 이를 제어하고 통제
  • 침입 탐지 시스템(IDS;Intrusion Detection System)
    : 비인가 사용자에 의한 자원접근과 보안정책 위반 침입을 실시간으로 탐지
  • 침임 방지 시스템(IPS;Intrusion Prevention System)
    : 공격이나 침입을 실시간으로 차단하고 조치를 능동적으로 실시하는 시스템
  • 무선 침입 방지 시스템(WIPS;Wireless Intrusion System)
    : 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단
  • 통합 보안 시스템(UTM;Unified Threat Management)
    : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
  • 가상 사설망(VPN): 공중망에 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 기술
  • SIEM(Security Information and Event Management)
    : 기업에서 생성되는 테라바이트의 데이터와 장비들을 통해 빠르게 위협을 판단 대응하는 관제 솔루션
  • ESM(Enterprise Security Management)
    : 전사적 통합 보안 관리 시스템,서로 다른 기종의 보안 장비들을 통합 관리
    시스템 보안 솔루션
  • 스팸 차단 솔루션
  • 보안 운영체제

콘텐츠 유출 방지 보안 솔루션

  • 보안 USB
  • 데이터 유출 방지(DLP;Data Loss Prevention)
  • 디지털 저작권 관리(DRM;Digital Right Management)

비즈니스 연속성 계획(BCP;Business Continuity Plan)
: 각종 재해, 장애, 재난으로부터 위기관리를 기반으로 재해복구, 업무복구 및 재개, 비상계획을 통해 비즈니스 연속성을 보장하는 체계이다.

  • BIA(Business Impact Analysis): 시간 흐름에 따른 영향도 및 손실평가를 조사하는 분석
  • RTO(Recovery Time Objective): 업무가 복구되어 다시 가동될때까지의 시간
  • RPO(Recovery Point Objective): 복귀되어 다시 정상가동될때 데이터의 손실 허용 시점
  • DRP(Disaster Recovery Plan): 재난으로 운영이 불가능한 경우 재난 복구 계획
  • DRS(Disaster Recovery System): 지속적인 관리체계가 통합된 재해복구센터

DRS의 유형

  • Mirror Site: 재해 발생 시 복구까지의 소요시간 즉시
  • Hot Site: 재해 발생 시 복구까지의 소요시간 4시간 이내
  • Warm Site: 재해 발생 시 복구까지의 소요시간 수일~수주
  • Cold Site: 재해 발생 시 복구까지의 소요시간 수주~수개월

1) 소프트웨어 테스트의 이해

소프트웨어 테스트 개념
: 개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인하고, 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동.

소프트웨어 테스트의 원리
*결완초집 살정오

  • 결함 존재 증명: 테스트는 결함이 존재함
  • 완벽 테스팅은 불가능: 완벽한 테스트가 어려움
  • 초기 집중: 초기에 집중안하면 스노우볼 굴러감
  • 결함 집중: 적은 수의 모듈에서 대다수 결함이 발견된다는 원리
  • 살충제 패러독스: 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함
  • 정황 의존성: 성격에 맞게 테스트를 수행해야 함
  • 오류-부재의 궤변: 요구사항을 충족시키지 못하면 결함 없어도 품질 높다고 볼 수 없음

소프트웨어 테스트 산출물

  • 테스트 계획서
  • 테스트 베이시스
  • 테스트 케이스
  • 테스트 슈트
  • 테스트 시나리오
  • 테스트 스크립트
  • 테스트 결과서

2) 소프트웨어 테스트 유형
프로그램 실행에 따른 분류

  • 정적 테스트: 테스트 대상을 실행하지 않고 구조를 분석하여 논리성을 검증
    ex) 리뷰, 정적 분석

  • 동적 테스트: 소프트웨어를 실행하는 방식으로 테스트를 수행하여 결함을 검출
    ex) 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트
    3) 정적 테스트

  • 리뷰(Review)
    : 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행상황을 점검하기 위한 활동, 전문가가 수행한다.
    *동워인

  • 동료 검토(Peer Review): 동료 2~3명이 진행

  • 인스펙션(Inspection): 다른 전문가 또는 팀이 검사

  • 워크 스루(Walk Throughts): 회의 전에 검토자료를 배포해서 사전 검토

  • 정적 분석(Static Analysis)
    : 자동화된 도구를 이용하여 산출물의 결함을 검출하거나 복잡도를 측정한다.
    (코딩 표준 부합, 코드 복잡도 계산, 자료 흐름 분석 등등...)

4) 동적 테스트

  • 화이트 박스 테스트(구조 기반 테스트)
    : 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트

테스트 커버리지
: 프로그램의 테스트 수행 정도를 나타내는 값
*기라코

  • 기능 기반 커버리지
  • 라인 커버리지
  • 코드 커버리지

화이트 박스 테스트 유형
*구결조 조변다 기제데루

  • 구문 커버리지

  • 결정 커버리지

  • 조건 커버리지

  • 조건/결정 커버리지

  • 변경 조건/결정 커버리지

  • 다중 조건 커버리지

  • 기본 경로 커버리지

  • 제어 흐름 테스트

  • 데이터 흐름 테스트

  • 루프 테스트

  • 블랙 박스 테스트(명세 기반 테스트)
    : 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트
    *동경결상 유분페원비오

  • 동등분할 테스트

  • 경계값 분석 테스트

  • 결정 테이블 테스트

  • 상태 전이 테스트

  • 유스케이스 테스트

  • 분류 트리 테스트

  • 페어와이즈 테스트

  • 원인-결과 그래프 테스트

  • 비교 테스트

  • 오류 추정 테스트

테스트 시각에 따른 분류

  • 검증
  • 확인

테스트 목적에 따른 분류
*회안구 구회병

  • 회복 테스트
  • 안전 테스트
  • 성능 테스트 ----> (부하 테스트, 강도 테스트, 스파이크 테스트, 내구성 테스트)
  • 구조 테스트
  • 회귀 테스트
  • 병행 테스트

5) 테스트 케이스
테스트 케이스
: 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합이다.

6) 테스트 오라클
테스트 오라클
: 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
*참샘휴일

  • 참(True)오라클: 모든 입력값에 대하어 기대하는 결과를 생성, 오류를 모두 검출할수 있음
  • 샘플링(Sampling)오라클: 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
  • 휴리스틱(Heuristic)오라클: 샘플링 오라클을 개선한 것,나머지 값들은 휴리스틱으로 처리
  • 일관성 검사(Consistent)오라클: 변경이 있을 때 전과 후의 결괏값이 동일한지 확인

2-1) 테스트 레벨
테스트 레벨 종류
*단통시인

  • 단위 테스트: 사용자 요구사항에 대한 단위 모듈
  • 통합 테스트: 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계(상향식, 하향식 테스트)
  • 시스템 테스트: 시스템에서 정상적으로 수행되는지를 검증(기능, 비기능 요구사항 테스트)
  • 인수 테스트: 계약상의 요구사항이 만족되었는지 확인하기 위한 단계(알파, 베타 테스트)

애플리케이션 테스트 수행

단위 테스트(Unit Test): 개별적인 모듈을 테스트한다.
수행도구

  • 테스트 드라이버: 필요 테스트를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈, 하위 모둘을 호출하는 상위 모듈의 역할
  • 테스트 스텁: 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈, 상위 모듈에 의해 호출되는 하위 모듈의 역할

통합 테스트: 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 기법

  • 하향식 통합 테스트(스텁)
  • 상향식 통합 테스트(드라이버)
  • 빅뱅 통합 테스트: 모든 모듈 동시 통합,드라이버/스텁 없이 실제 모듈로 테스트
  • 샌드위치 통합 테스트: 상향식+하향식, 큰규모의 통합 테스트, 병렬 테스트 가능

테스트 자동화: 반복적인 테스트 작업을 스크립트 형태로 구현, 쉽고 효율적인 테스트 수행

  • 정적 분석 도구: 애플리케이션을 실행하지 않고 분석하는 도구
  • 성능 테스트 도구: 가상의 사용자, 테스트를 수행함으로써 성능 목표를 달성했는지 확인

테스트 하네스(Test Harness): 시스템 모듈의 테스트를 위해 테스트를 자동화하거나 제어하기 위한 코드 및 도구의 집합

  • 테스트 드라이버
  • 테스트 스텁
  • 테스트 슈트: 테스트 케이스의 집핳
  • 테스트 케이스
  • 테스트 시나리오
  • 테스트 스크립트: 자동화된 테스트 실행 절차에 대한 명세
  • 목 오브젝트: 사용자의 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위 수행

애플리케이션 성능 분석

애플리케이션 성능 측정 지표(*처응경자)

  • 처리량
  • 응답 시간
  • 경과 시간
  • 자원 사용률

배드 코드: 다른 개발자가 로직을 이해하기 어렵게 작성된 코드

  • 스파게티 코드: 작동은 정상, 작동을 파악하기 어려운 코드
  • 외계인 코드: 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드

클린코드(*가단의중추)

  • 가독성
  • 단순성
  • 의존성 최소
  • 중복성 제거
  • 추상화

리팩토링

  • 유지 보수성 향상
  • 유연한 시스템
  • 생산성 향상
  • 품질 향상

소스 코드 품질분석 개념

  • 정적 분석 도구
  • 동적 분석 도구

메모리 관리 기법

  • 반입 기법
  • 배치 기법
  • 할당 기법
  • 교체 기법

배치 기법

  • 최초 적합(First Fit)
  • 최적 적합(Best Fit)
  • 최악 적합(Worst Fit)

할당 기법

  • 연속 할당 기법
  • 분산 할당 기법
    ▶ 페이징 기법: 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재 후 실행
    ▶ 세그먼테이션 기법: 가변적인 크기의 블록으로 나누고 메모리를 할당
    ▶ 페이징/세그먼테이션 기법

교체 기법

  • FIFO(First in First Out): 먼저 들어와 가장 오래 있던 페이지를 교체(선입선출)
  • LRU(Least Recently Used): 가장 오랬동안 사용되지 않은 페이지를 선택하여 교체
  • LFU(Least Frequently Used): 사용된 횟수를 확인하여 가장 적은 페이지 교체
  • OPT(Optiaml Replacement): 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
  • NUR(Not Used Recently): 최근의 사용 여부를 확인하기 위해서 비트 사용
  • SCR(Second Chance Replacement): 페이지마다 참조비트를 두고 FIFO 기법을 이용

메모리 단편화: 분할된 주기억장치에 프로세스를 할당, 반납 과정에서 사용되지 못하고 낭비되는 기억장치가 발생하는 현상

스레싱: 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리 시간 보다 페이지 교체 시간이 더 많아지는 현상이다
해결방안

  • 워킹 세트: 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주
  • 페이지 부재 빈도(PFP): 페이지 부재율의 상한과 하한을 정해서 예측하고 조절하는 기법

지역성(Locality)
: 프로세스가 실행되는 동안 주기억 장치를 참조할 때 일부 페이지만 집중적으로 참조

  • 시간 지역성
  • 공간 지역성
  • 순차 지역성

프로세스: CPU에 의해 처리되는 프로그램
(*생준 실대완)

  • 생성(Create)상태
  • 준비(Ready)상태
  • 실행(Running)상태
  • 대기(Waiting)상태
  • 완료(Complete)상태

프로세스 스케줄링

  • 선점형 스케줄링: 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU점유
    ▶ SRT: 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
    ▶ 다단계 큐(MLQ): 여러 종류 그룹으로 분할
    ▶ 다단계피드백 큐(MLFQ): FCFS와 RR스케줄링 기법을 혼합한 방식
    ▶ RR(라운드로빈): 같은 시간을 할당 그후 처리 못하면 준비 큐 리스트의 뒤로 보냄
  • 비선점형 스케줄링: 한 프로세스가 CPU할당 받으면 다른 프로세스는 끝날때까지 기다림.
    ▶ 우선순위: 프로세스 별로 우선순위가 주어지고, 우선수위에 따라 CPU할당
    ▶ 기한부: 요청에 명시된 시간 내 처리를 보장하는 기법
    ▶ HRN(Highest response Ratio Next): 대기 중인 프로세스 중 현재 응답률이 가장 높은것을 선택하는 기법 (우선순위 = (대기시간+서비스시간)/서비스시간 )
    ▶ FCFS: 준비 큐에 도착한 순서에 따라 CPU를 할당하는 스케줄링 기법
    ▶ SJF: 모든 프로세스에 대해 같은 크기의 시간 할당, 처리 못하면 준비 큐 리스트 가장 뒤로 보냄

프로세스 관리 – 교착상태
교착상태: 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태이다.
발생 조건

  • 상호 배제
  • 점유와 대기
  • 비선점
  • 환형 대기

해결 방법

  • 예방
  • 회피
  • 발견
  • 복구

디스크 스케줄링(Disk Scheduling)
: 사용할 데이터가 디스크상의 여러 곳에 저장되어 있을 경우, 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정하는 기법이다.

  • FCFS: 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 디스크
  • SSTF:탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법
  • SCAN: 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청을 서비스, 끝까지 이동한 후 역방향의 요청사항을 서비스하는 기법
  • C-SCAN: 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색 거리를 갖는 요청을 서비스
  • LOOK: SCAN을 기초로 사용하는 기법, 진행방향으로 더 이상의 요청이 없으면 역방향으로
  • N-STEP: SCAN을 기초로하고 진행 도중 도착한 요청들은 한꺼번에 모아서 다음의 반대 진행 방향으로 진행 할때 서비스하는 기법
  • SLTF: 섹터 큐잉, 회전 지연시간 최적화를 위해 구현된 기법

네트워크: 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라

OSI 7계층(*물데네전세표응)

  • 물리 계층: 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호로 변환
  • 데이터링크 계층: 인접 시스템 간 데이터 전송, 전송 오류 제어
  • 네트워크 계층: 단말기 간 데이터 전송을 위한 최적화된 경로 제공
  • 전송 계층: 프로세스 간의 연결, 신뢰성 있는 통신 보장
  • 세션 계층: 송수신간의 논리적인 연결
  • 표현 계층: 데이터 형식 설정, 부호교환, 암복호화
  • 응용 계층: 사용자와 네트워크 간 응용서비스 연결

통신망

  • 근거리 통신망(LAN)

  • 무선랜 통신망(WLAN)

  • 원거리 통신망(WAN) (*전회패)
    : 전용 회선 방식/회선 교환 방식/패킷 교환 방식

  • 전송 매체 접속 제어(MAC)
    : CSMA/CD(충돌탐지), CSMA/CA(충돌회피)

네트워크 장비

  • 1계층 장비: 허브, 리피터
  • 2계층 장비: 브리지, L2스위치, NIC, 스위칭 허브
    *스위치 장비의 주요 기술요소: VLAN, STP
  • 3계층 장비: 라우터, 게이트웨이, L3스위치, 유무선 인터넷 공유기, 망(백본)스위칭 허브
  • 4계층 장비: L4스위치

프로토콜(Protocol): 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약, 기술적 은어

프로토콜의 기본 3요소(*구의타)

  • 구문(Syntax)
  • 의미 (Semantic)
  • 타이밍(Timing)

네트워크 프로토콜: 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.

데이터 링크 계층(2계층)
: 회선제어, 흐름제어, 오류제어 기능을 수행하는 계층

  • HDLC(High-level Data Link Control): 점대점 방식, 다중방식 통신에 사용, ISO에서 표준화한 동기식 비트 중심 프로토콜
  • PPP(Point-to-Point Protocol): 두 통신 노드 간의 직접적인 연결을 위해 일반적으로 사용
  • 프레임 릴레이: 처리를 간략화하여 데이터 처리속도의 향상 및 전송지연 감소시킨 고속기술
  • ATM(Asynchronous Transfer Mode): 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술

*HDLC
프레임 구조

  • 플래그
  • 주소부
  • 제어부
  • 정보부
  • FCS

HDLC 동작 모드

  • NRM(정규 응답 모드): 점대점이나 멀티포인트 불균형 링크 구성에 사용
  • ARM(비동기 응답 모드): 보조국도 전송 개시할 필요가 있는 특수한 경우에반 사용
  • ABM(비동기 균형 모드): 균형 링크 구성에 사용, 각국이 주국이자 보조국으로 서로 대등

데이터 링크 계층의 오류 제어

  • 전진(순방향 오류 제어)
    : FEC방식으로 데이터 전송과정에서 발생한 오류를 검출하여 재전송없이 스스로 수정
    ▶ 해밍코드 방식
    ▶ 상승코드(부호) 방식
  • 후진(역방향 오류 제어)
    : BEC방식으로 데이터 전송과정에서 오류가 발생하면 송신측에 재전송을 요구하는 방식
    ▶ 패리티 검사: 7~8개의 비트에 패리티 비트 추가
    ▶ CRC(순환잉여 검사): 다항식을 통해 산출된 값을 통해 오류를 검사하는 방식
    ▶ 블록합 검사: 이차원 패리티 검사 방식
    ▶ 자동반복 요청 방식(ARQ): 신뢰성 있는 데이터 전달, 재전송 기반 에러제어 방식
    (Stop-and-Wait ARQ 방식/GO-back-N ARQ 방식/Selective Repeat ARQ방식)

네트워크 계층(3계층)
: 다양한 길이의 패킷을 네트워크들을 통해 전달, 서비스 품질을 위한 수단을 제공

네트워크 계층 프로토콜

  • IP: 송수신 간의 패킷 단위, 통신 프로토콜
  • ARP: IP네트워크상에서 IP주소를 MAC주소(물리주소)로 변환하는 프로토콜
  • RARP: IP호스트가 MAC주소는 알지만 IP주소는 모를 때 IP주소를 요청하는 역순주소결정
  • ICMP: 전송 오류가 발생하는 경우에 오류정보를 전송하는 목적으로 사용하는 프로토콜
  • IGMP: 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는데 사용함
  • 라우팅 프로토콜: 데이터 전송을 위해 여러 경로중 최적의 경로를 설정해주는 프로토콜
  • NAT: 사설 네트워크에 속한 IP를 공인 IP주소로 바꿔주는 네트워크 주소 변환 기술

IPv4: 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층의 프로토콜이다.

주소체계

  • A클래스: 0~127(0)
  • B클래스: 128~192(10)
  • C클래스: 192~223(110)
  • D클래스
  • E클래스

서브네팅: IP주소 고갈문제를 해결하기 위해 원본 네트워크를 여러 개의 네트워크로 분리
(네트워크 ID + 호스트 ID)

  • FLSM 방식: 서브넷의 길이를 고정적으로 사용
  • VLSM 방식: 서브넷의 길이를 가변적을 사용

IPv4에서 IPv6으로 전환 방법

  • 듀얼 스택
  • 터널링
  • 주소 변환(게이트웨이 관점)

IP통신 방식

  • 멀티캐스트 프로토콜(=멀티 캐스트 라우팅 프로토콜 + IGMP)
  • 유니캐스트 프로토콜
  • 브로드캐스트 프로토콜
  • 애니캐스트 프로토콜

라우팅 프로토콜
: 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해준다

  • 내부 라우팅 프로토콜(IGP): RIP,IGRP,OSPF,EIGRP
  • 외부 라우팅 프로토콜(EGP): BGP....

RIP(Routing Information Protocol): 거리벡터 알고리즘에 기초하여 개발된 프로토콜
특징

  • 벨만-포드 알고리즘 사용
  • 15홉 제한
  • UDP사용
  • 30초마다 정보공유

OSPF(Open Shortest Path First): 규모가 크고 복잡한 TCP/IP에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크상태 알고리즘을 적용하여 최단 경로를 찾는 프로토콜
특징

  • 다익스트라 알고리즘 사용
  • 라우팅 메트릭 지정
  • AS분할 사용
  • 홉 카운트 무제한
  • 멀티캐스팅 지원

BGP(Border Gateway Protocol): AS간에 경로 정보를 교환하기 위한 프로토콜
특징

  • ISP사업자들 상호 간에 주로 사용되는 라우팅 프로토콜
  • 라우팅 비용이 많이 들고 라우팅 테이블의 크기가 커서 메모리 사용량이 많다.

라우팅 알고리즘

  • 거리 벡터 알고리즘: 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 알고리즘, 벨만-포드 알고리즘 사용
  • 링크 상태 알고리즘: 모든 라우터에 전달하여 최단 경로 트리르 구성하는 알고리즘, 다익스트라 알고리즘 사용

전송 계층(4계층)
: 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간으 ㅣ사용자들에게 신뢰성 있는 데이터를 전달하는 계층

  • TCP(Transmission Control Protocol): 프로그램 간에 일련의 옥텟을 안정적으로 교환
    특징
    ▶ 신뢰성 보장
    ▶ 연결 지향적 특징
    ▶ 흐름 제어
    ▶ 혼잡 제어
  • UDP(User Datagram Protocol): 데이터그램 서비스를 제공하는 전송 계층의 프로토콜
    특징
    ▶ 비신뢰성
    ▶ 순서화되지 않은 데이터그램 서비스 제공
    ▶ 실시간 응용 및 멀티캐스팅 가능
    ▶ 단순 헤더

세션 계층(5계층): 응용 프로그램 간의 대화를 유지하기 위한 구조를 제공하고, 이를 처리하기 위해 프로세스 들의 논리적인 연결을 담당하는 계층

  • RPC(Remote Procedure Call): 원격 프로시저 호출, 코딩 없이 다른 주소 공간에서 실행
  • NetBIOS: 응용계층의 프로그램에게 API를 제공하여 상호 통신 가능하게 함

표현 계층(6계층)
: 애플리케이션이 다루는 정보를 통신에 알맞은 형태로 만들거나, 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할을 담당하는 계층

  • JPEG: 이미지를 위해 만들어진 표준 규격
  • MPEG: 멀티미디어를 위해 만들어진 표준 규격

응용 계층(7계층)
: 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 역할을 담당

  • HTTP: 텍스트 기반의 통신규약, 하이퍼텍스트를 빠르게 교환
  • FTP: 파일을 전송하기 위한 프로토콜
  • SMTP: 인터넷에서 이메일을 보내기위해 이용되는 프로토콜
  • POP3: 원격 서버로부터 TCP/IP연결을 통해 이메일을 가져오는 프로토콜(동기화X)
  • IMAP: 원격 서버로부터 TCP/IP연결을 통해 이메일을 가져오는 프로토콜(동기화O)
  • Telnet: 인터넷이나 로컬에서 네트워크 연결에 사용되는 프로토콜
  • SSH: Telnet 보다 강력한 보안을 제공하는 원격접속 프로토콜(인증,암호화,압축,무결성)
  • SNMP: TCP/IP의 네트워크 관리 프로토콜
  • DNS: 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꿔거나 반대의 변환 수행
  • DHCP: IP관리를 쉽게 하기 위한 프로토콜
  • HTTPS: HTTP의 보안이 강화된 프로토콜, SSL/TLS 프로토콜을 통해 암호화
    패킷 교환 방식(Packet Switching)
    : 컴퓨터 네트워크와 통신의 방식 중 하나로 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식
  • X.25: 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 전달하는 프로토콜w가상회선 방식: 논리적인 통신 경로를 미리 설정하는 방식(연결형)

애드 혹 네트워크(Ad-hoc Network)
: 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크

네트워크 설치 구조

  • 버스형 구조: 하나의 네트워크 회선에 여러 대의 노드가 멀티포인트로 연결된 구조
  • 트리형 구조: 각 노드가 계층적으로 연결되어 있는 구성 형태 나뭇가지 구조
  • 링형 구조: 모든 노드가 하나의 링에 순차적으로 연결되는 형태
  • 성형 구조(Star): 각 단말 노드가 허브라는 네트워크 장비에 점 대 점으로 연결되어 있는 구성 형태이다.

다중화기(MultiFlexer)
: 하나의 회선을 통해 일정한 시간이나 주파수로 나누어서 전송하게 하는 장비

  • FDM(주파수 분할 다중화): 하나의 주파수 대역폭을 다수의 작은 대역폭으로 분할, 전송
  • TDM(시간 분할 다중화): 회선의 대역폭을 일정 시간으로 분할하여 전송
  • CDM(코드 분할 다중화): 다수의 사용자가 서로 다른 코드를 사용함 동일한 주파수로 다수 접속해서 전송

개발 인프라 구축
: 소프트웨어 개발 프로세스를 지원하고 향상시키기 위해 필요한 기반이나 환경을 구축하는 과정

  • 온프레미스 방식: 인트라넷망만을 활용하여 개발환경 구축
  • 클라우드 방식: 회사들의 서비스를 임대하여 개발환경을 구축
  • 하이브리드 방식: 위 두개 방식을 혼용하는 방식

개발환경 인프라 구축 장비
스토리지 시스템

  • DAS: 호스트 버스 어댑터에 직접 연결하는 스토리지
  • NAS: 서버와 저장 장치를 네트워크로 연결하여 구성하는 스토리지
  • SAN: 서버와 스토리지를 저장 전용 네트워크로 상호 구성하여 관리하는 스토리지
    RAID
  • RAID 0: 패리티가 없는 스트라이핑된 세트로 구성되는 방식
  • RAID 1: 피리티가 없는 미러링된 세트로 구성되는 방식

가상화의 종류

  • 플랫폼 가상화
  • 리소스 가상화

가상화 기술요소

  • 컴퓨팅 가상화
  • 스토리지 가상화
  • I/O 가상화
  • 컨테이너
  • 분산처리 기술
  • 네트워크 가상화

클라우드 컴퓨팅
: 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술

  • 사설 클라우드
  • 공용 클라우드
  • 하이브리드 클라우드

클라우드 서비스 유형

  • 인프라형 서비스(IaaS): 시스템 자원을 클라우드로 제공하는 서비스
  • 플랫폼형 서비스(PaaS): 애플리케이션을 개발,실행,관리할수 있는 플랫폼을 제공
  • 소프트웨어형 서비스(Saas): 소프트웨어 관련 데이터는 중앙에 호스팅 되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스

디지털 저작권 관리(DRM; Digital Right Management)
: 암호화 기술을 이용하여 허가되지 않은 사용자로부터 디지털 콘테츠를 안전하게 보호

템퍼 프루핑(Tamper-Proofing)
: 소프트웨어, 시스템을 외부에서의 악의적인 조작으로부터 보호하는 보안기술

  • 해시함수
  • 워터마크
  • 핑거프린트
  • 소프트웨어 원본 비교
  • 프로그램 체킹
  • 실행코드 난독화
profile
Action over stagnation

0개의 댓글