1. 꼭 알아야 할 키워드 = _____(밑줄)2. # = 두음 암기 or 한 칸 띄어 쓴 건 산출물3. 시나공 + 수제비 정리 (페이지 참고)4. “Ctrl+F” 탐색 → 제목 활용하기 eq oac(□,1) 소프트웨어 개발 방법론 ★★p.696, 5-4#구정 객컴 에제1) 구조적 방법론- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리중심의 방법론▶ 타당성 검토 → 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수 단계#분설구테유2) 정보공학 방법론- 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data) 중심의 방법론 → 대규모 정보 시스템 구축 적합3) 객체지향 방법론 ★- 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론▶ 구성 요소: 객체(Object), 클래스(Class), 메시지(Message), 메서드(Method) 등▶ 기본 원칙: 캡슐화, 상속성, 다형성, 추상화, 정보 은닉 → #캡상다추정4) 컴포넌트 기반(CBD; Component Based Design) 방법론- 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론- 컴포넌트 및 소프트웨어의 재사용이 가능하여 시간과 노력을 절감할 수 있음- 새로운 기능 추가가 쉬운 확장성- 개발 기간 단축으로 인한 생산성 향상5) 애자일(Agile) 방법론 ★- 애자일은 ‘민첩한’, ‘기민한’이라는 의미로, 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론# XP(eXtreme Programming), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crystal) 등#엑스칸크6) 제품 계열 방법론- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발LAN; LocalArea Network)- 비교적 가까운 거리에 있는 컴퓨터, 프린터, 테이프 등과 같은 자원을 연결하여 구성하며 주로 자원 공유의 목적으로 사용- 사이트 간의 거리가 짧아 데이터의 전송 속도가 빠르고, 에러 발생율이 낮음# 주로 버스형, 링형 구조 사용원거리 통신망(WAN; WideArea Network)- 대륙과 대륙 같이 멀리 떨어진 사이트들을 연결하여 구성- 사이트 간의 거리가 멀기 때문에 통신 속도가 느리고, 에러 발생율이 높음 eq oac(□,8) 스위치 ★★p.735, 5-261) 스위치(Switch) 분류스위치특징L2 스위치- OSI 2계층(Da)에 속하는 장비- 일반적으로 부르는 스위치는 L2 스위치를 의미- MAC 주소를 기반으로 프레임(Frame)을 전송- 동일 네트워크 간의 연결만 가능L3 스위치- OSI 3계층(Ne)에 속하는 장비- L2 스위치에 라우터 기능이 추가된 것- IP 주소를 기반으로 패킷(Packet)을 전송- 서로 다른 네트워크 간의 연결이 가능L4 스위치- OSI 4계층(T)에 속하는 장비- 로드밸런서(Load Balancer)가 달린 L3 스위치- IP 주소 및 TCP/UDP를 기반으로 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드밸런싱 기능을 제공L7 스위치- OSI 7계층(A)에 속하는 장비- IP 주소 및 TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱함2) 스위칭 방식▶ Store and Forwarding: 데이터를 모두 받은 후 스위칭하는 방식▶ Cut-through: 데이터의 목적지 주소만을 확인한 후 바로 스위칭하는 방식▶ Fragment Free: 위의 두 가지 방식의 장점을 결합한 방식3) 백본 스위치(Backbone Switch) ★- 여러 네트워크들을 연결할 때 중추적 역할을 하는 네트워크를 백본(Backbone)이라 하고, 백본에서 스위칭 역할을 하는 장비를 백본 스위치라고 함- 백본 스위치는 모든 패킷이 지나가는 네트워크의 중심에 배치함- 주TU-T에서 개발하고 있는 유선망 기반의 차세대 통신망으로, 하나의 망이 인터넷처럼 모든 정보와 서비스를 패킷으로 압축하여 전송SDN(Software Defined Networking,소프트웨어 정의 네트워킹) ★▶ 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크NFC(Near Field Communication, 근거리 무선 통신) ★▶ 고주파(HF; High Frequency)를 이용한 근거리 무선 통신 기술- 아주 가까운 거리에서 양방향 통신을 지원하는 RFID(Radio Frequency Identification) 기술의 일종UWB(Ultra WideBand, 초광대역)▶ 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술PICONET(피코넷) ★★▶ 여러 개의 독립된 통신장치가 UWB 통신 기술 또는 블루투스 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술WBAN(Wireless Body Area Network)▶ Wearable 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술GIS (Geographic Information System, 지리 정보 시스템)▶ 지리적인 자료를 위성을 이용해 모든 사물의 위치 정보를 제공해주는 시스템USN(Ubiquitous Sensor Network, 유비쿼터스 센서 네트워크) ★▶ 필요한 모든 곳에 RFID 태그를 부착하고 사물의 인식 정보는 물론 주변의 환경정보까지 탐지하여 이를 네트워크에 연결해 정보를 관리하는 것SON (Self Organizing Network,자동 구성 네트워크)▶ 주변 상황에 맞추어 스스로 망을 구성하는 네트워크Ad-hoc Network(애드 혹 네트워크) ★▶ 재난 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 구성한 네트워크Network Slicing(네트워크 슬라이싱) ★▶ 5G 네트워크를 구현하는 중요한 핵심 기술로, 하나의 물리적인 는 것* 세션: 서버와 클라이언트의 연결※ 보안 약점: 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출입력 데이터검증 및 표현입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩하는 것 ★※ 보안 약점: SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS; Cross-Site Scripting), 운영체제 명령어 삽입, 위험한 형식 파일 업로드, 신뢰되지 않는 URL 주소로 자동접속 연결보안 기능인증, 접근제어, 기밀성, 암호화 등의 기능 ★※ 보안 약점: 적절한 인증 없는 중요기능 허용, 부적절한 인가, 중요한 자원에 대한 잘못된 권한 설정, 취약한 암호화 알고리즘 사용, 중요정보 평문 저장 및 전송, 하드코드 된 암호화 키 사용 ★시간및 상태동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 시스템이 원활히 동작되도록 코딩하는 것 ★※ 보안 약점: TOCTOU(Time of Check Time of Use) 경쟁 조건,종료되지 않는 반복문 또는 재귀함수에러처리소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 에러로 인해 발생할 수 있는 문제들을 예방하는 것※ 보안 약점: 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재, 부적절한 예외처리코드 오류개발자들이 코딩 중 실수하기 쉬운 타입 변환, 자원의 반환 등을 고려하며 코딩하는 것 ★※ 보안 약점: 널 포인터(Null Pointer) 역참조, 부적절한 자원 해제, 해제된 자원 사용, 초기화되지 않은 변수 사용캡슐화데이터(속성)와 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것※ 보안 약점: 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드, 시스템 데이터 정보 노출 등API 오용API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 고려하여 코딩하는 것※ 보안 약점: 취약한 API 사용, DNS lookup에 의존한 보안 결정#세입보시 에코캡아굴, 음성, 정맥 등5) 특징 기반 인증▶ 행위 기반 인증(Something You Do): 사용자의 행동 정보를 이용해 인증 수행# 서명, 동작▶ 위치 기반 인증(Somewhere You Are): 인증을 시도하는 위치의 적절성 확인# 콜백, GPS나 IP 주소를 이용한 위치 기반 인증 eq oac(□,23) 로그 분석 ★p.813, 5-941) 로그(Log)의 개념- 시스템 사용에 대한 모든 내역을 기록해 놓은 것으로, 이러한 로그 정보를 이용하면 시스템 침해 사고 발생 시 해킹 흔적이나 공격 기법을 파악할 수 있음2) 리눅스(LINUX)의 주요 로그 파일 ★로그파일명데몬내용커널 로그/dev/consolekernel커널에 관련된 내용을 관리자에게 알리기 위해 파일로 저장하지 않고 지정된 장치에 표시 ★부팅 로그/var/log/boot.logboot부팅 시 나타나는 메시지들을 기록크론 로그/var/log/croncrond작업 스케줄러의 작업 내역 기록시스템 로그/var/log/messagessyslogd커널에서 실시간으로 보내오는 메시지들 기록 ★보안 로그/var/log/securexinetd시스템의 접속에 대한 로그 기록FTP 로그/var/log/xferlogftpdFTP로 접속하는 사용자에 대한 로그 기록메일 로그/var/log/maillogsendmailpopper송, 수신 메일에 대한 로그 기록3) Windows 로그- Windows 시스템에서는 이벤트 로그 형식으로 시스템의 로그를 관리함- Windows의 이벤트 뷰어를 이용하여 이벤트 로그를 확인함4) Windows 이벤트 뷰어의 로그- 응용 프로그램 로그, 보안 로그, 시스템 로그, Setup 로그, Forwarded Events 로그#응보시SF eq oac(□,24) 추가 정리, 수제비 및 기출문제 ★★★1) 오픈플로우(Openflow) ★ __ 5-20- 네트워크 장치의 컨트롤 플레인(Control Plane)과 데이터 플레인(Data Plane) 간의 연계 및 제어를 담당하는 개방형 법
1. 꼭 알아야 할 키워드 = _____(밑줄)2. # = 두음 암기 or 한 칸 띄어 쓴 건 산출물3. 시나공 + 수제비 정리 (페이지 참고)4. “Ctrl+F” 탐색 → 제목 활용하기 eq oac(□,1) 데이터베이스 설계 ★★p.2981) 데이터베이스 설계 시 고려사항- 무결성, 일관성, 회복, 보안, 효율성, 데이터베이스 확장2) 데이터베이스 설계 순서 ★★ __ 20년 1, 2회 기출문제순서설명요구 조건 분석요구 조건 명세서 작성개념적 설계(정보 모델링, 개념화)독립적인 개념 스키마 모델링, 트랜잭션 모델링# E-R 다이어그램 모델 ★논리적 설계(데이터 모델링)목표 DBMS에 맞는(종속적인) 논리 스키마 설계# 트랜잭션 인터페이스 설계, 테이블 설계(RDB),논리적 데이터베이스 구조로 매핑(Mapping),스키마의 평가 및 정제 ★물리적 설계(데이터 구조화)목표 DBMS에 맞는(종속적인) 물리적 구조의 데이터로 변환# 저장 레코드, 접근 경로 설계 ★구현목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성,트랜잭션 작성#요개논물구 eq oac(□,2) 데이터 모델 ★★p.302, 3-591) 데이터 모델의 구성 요소- 개체(Entity): 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체- 속성(Attribute): 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당- 관계(Relationship): 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미#개속관2) 개념적 데이터 모델- 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정# E-R(Entity-Relation) 모델3) 논리적 데이터 모델 __ 3-62- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정- 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미# 관계 모델, 계층 모선택적(Optional) U > R’의 우선순위 적용- 테이블, 프로세스에 C, R, U, D가 모두 없는 경우- 테이블에 C 또는 R이 없는 경우 (프로세스는 하나만 있어도 돌아감) eq oac(□,17) 인덱스(Index) ★p.375, 2-15, 3-381) 인덱스의 개념 및 선정기준, 고려사항- 데이터 레코드를 빠르게 접근하기 위해 쌍으로 구성된 데이터 구조▶ 인덱스 컬럼 선정 ★-인덱스 컬럼의 분포도(Selectivity)가 10~15% 이내인 “컬럼”-가능한 한 수정이 빈번하지 않는 “컬럼”-ORDER BY, GROUP BY, UNION이 빈번한 “컬럼”-분포도가 좋은 컬럼은 단독 인덱스로 생성-인덱스들이 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성▶ 설계 시 고려사항 ★-새로 추가되는 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음-지나치게 많은 인덱스는 오버헤드(Overhead) 발생-넓은 범위 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생시킴-인덱스만의 추가적인 저장 공간이 필요-인덱스와 테이블 데이터의 저장 공간이 분리되도록 설계2) 인덱스 종류- 클러스터드 인덱스(Clustered Index) / 넌클러스터드 인덱스(Non-Clustered Index)- 트리 기반 인덱스: 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것- 비트맵 인덱스: 인덱스 컬럼의 데이터를 Bit 값인 0, 1로 변환해 인덱스 키 사용- 함수 기반 인덱스: 컬럼에 특정 함수나 수식을 적용해 산출된 값을 사용하는 것- 비트맵 조인 인덱스: 다수의 조인된 객체로 구성된 인덱스- 도메인 인덱스: 개발자가 필요한 인덱스를 직접 만들어 사용하는 것 (확장형 인덱스) eq oac(□,18) 뷰(View) ★★p.380, 2-16, 3-36, 3-551) 뷰의 개요 및 특징- 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블로 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같음- 가상 테이블이기 때문에 물리적으로 구현되면 나머지 다른 DB가 서비스를 제공→ 두 DB 모두 처리를 하기 때문에 처리율이 높지만 구성 방법 및 설정이 복잡함4) 서버 클러스터링(Server Clustering)- 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술▶ 고가용성 클러스터링: 하나의 서버에 장애 발생 → 다른 서버가 대신 처리▶ 병렬 처리 클러스터링: 하나의 작업을 여러 개의 서버에 분산해 처리 eq oac(□,22) 데이터베이스 보안 / 스토리지 ★★p.397~407, 3-791) 데이터베이스 보안의 개요- 데이터베이스 일부분 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술- 데이터베이스 사용자들은 일반적으로 서로 다른 객체에 대해 다른 접근 권리 또는 권한을 가짐2) 암호화(Encryption)▶ 암호화(Encryption) 과정-암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정# 개인키 암호 방식(대칭키), 공개키 암호 방식(비대칭키)▶ 복호화(Decryption) 과정-암호문을 원래의 평문으로 바꾸는 과정3) 암호화 방식방식특징종류개인키 암호 방식(Private Key Encryption, 비밀키 암호 방식, 대칭키)동일한 키로 데이터를 암호화하고 복호화 함,비밀키는 DB 사용 권한이 있는 사용자만 나눠 가짐DES, AES, SEED, ARIA공개키 암호방식(Public Key Encryption, 비대칭키)데이터를 암호화할 때 사용하는 키(공개키)는 DB 사용자에게 공개하고, 복호화할 때의 키(비밀키)는 관리자가 관리하는 방법RSA (Rivest Shamir Adleman)Diffie Hellman Algorithm4) 접근통제 __ 5-86- 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것- 접근통제 3요소: 접근통제 정책, 접근통제 보안모델, 접근통제 메커니즘#정보커▶ 임의 접근통제(DAC; Discretionary Access Control)-데이터에 접근하는 사용자의 신원에 따라 접근 권한맞는 튜플의 내용 갱신(변경)→ UPDATE 테이블명 SET 속성명=데이터 [WHERE 조건];▶ DCL(Data Control Language, 데이터 제어어) __ 3-15, 20년 1, 2, 3회 기출문제-데이터의 무결성, 보안, 회복, 병행수행 제어 ★ 등을 정의하는 데 사용되는 언어-데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용명령어기능COMMIT명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고,데이터베이스 조작 작업이 정상적으로 완료됐음을 알려주는 명령어ROLLBACK아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고,데이터베이스를 이전 상태로 되돌리는 명령어*SAVEPOINT: 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어GRANT데이터베이스 사용자에게 사용 권한 부여→ GRANT 권한 리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];*WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한REVOKE데이터베이스 사용자의 사용 권한 취소→ REVOKE [GRANT OPTION FOR] 권한 리스트 ON 개체 FROM 사용자 [CASCADE];*GRANT OPTION FOR: 다른 사용자에게 권한을 부여할 수 있는 권한을 취소ex) GRANT UPDATE ON 고객(테이블) TO 홍길동 WITH GRANT OPTION;ex) REVOKE GRANT OPTION FOR UPDATE ON 고객(테이블) FROM 홍길동 CASCADE;2) SELECT __ p.444~453 ★ __ 20년 1, 2, 3회 기출문제▶ WHERE절: 검색할 조건을 기술▶ ORDER BY절: 특정 속성을 기준으로 정렬해 검색할 때 사용# ASC(오름차순), DESC(내림차순) – 따로 설정이 없을 때는 기본적으로 ASC 사용▶ GROUP BY절: 특정 속성을 기준으로 그룹화해 검색할 때 사용, 일반적으로 그룹 함수와 함께 사용▶ HAVING절: GROUP BY와 함께 사용되며, N트리거 BODY;END;* 동작시기 옵션: AFTER(테이블이 변경된 후 트리거 실행), BEFORE(변경되기 전 실행)* NEW | OLD: NEW(추가되거나 수정에 참여할 테이블), OLD(수정되거나 삭제 전 테이블)* FOR EACH ROW: 각 튜플마다 트리거 적용▶ DROP TRIGGER 트리거명;3) 사용자 정의 함수 __ 3-5#디비컨SER- 프로시저와 유사하게 SQL을 사용해 일련의 작업을 연속적으로 처리- 종료 시 예약어 RETURN을 사용해 처리 결과를 단일값으로 반환- DML문(SELECT, INSERT, DELETE, UPDATE)의 호출에 의해 실행됨- RETURN을 통해 값을 반환해, 출력(OUT) 파라미터가 없음- INSERT, DELETE, UPDATE로 테이블 조작은 할 수 없고, SELECT로 조회만 할 수 있음- 프로시저를 호출해 사용할 수 없음 ★구분프로시저사용자 정의 함수반환값없거나 1개 이상 가능1개(단일값)파라미터입, 출력 가능(IN, OUT)입력만 가능(IN)사용 가능 명령문DML, DCLSELECT호출프로시저, 사용자 정의 함수사용자 정의 함수사용 방법실행문DML에 포함해서 사용DECLARE(필수): 사용자 정의 함수의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부BEGIN(필수): 사용자 정의 함수의 시작을 의미, 실행부CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨SQL: SELECT문이 삽입되어 데이터 관리를 위한 작업 수행 ★EXCEPTION: BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리RETURN(필수): 호출 프로그램에 반활할 값이나 변수를 정의 ★END(필수): 사용자 정의 함수의 종료를 의미, BEGIN/END는 함께 다님→ CREATE [OR REPLACE] FUNCTION 사용자 정의 함수명(파라미터) [지역변수 선언]BEGIN사용자 정의 함수 BODY;RETURN 반환값;END; eq oac(□,26) DMBS 접속 기술 ★p.4891) 웹 응용
8. 디지털 저작권 관리 __ p.200, 2-51- 디지털 콘텐츠의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술1) 디지털 저작권 관리(DRM; Digital Right Management)의 흐름 ★- 콘텐츠 제공자(Contents Provider): 콘텐츠를 제공하는 저작권자 콘텐츠 분배자(Contents Provider): 암호화된 콘텐츠를 유통하는 곳이나 사람 콘텐츠 소비자(Customer): 콘텐츠를 구매해서 사용하는 주체- 패키저(Packager): 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램- 클리어링 하우스(Clearing House): 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제관리 등 을 수행하는 곳- DRM 컨트롤러(DRM Controller): 배포된 콘텐츠의 이용 권한을 통제하는 프로그램- 보안 컨테이너(Security Container): 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치#콘패클컨보2) 디지털 저작권 관리의 기술 요소 2-110- 암호화(Encryption): 콘텐츠 및 라이선스를 암호화하고 전자서명을 할 수 있는 기술- 키 관리(Key Management): 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술- 식별 기술(Identification): 콘텐츠에 대한 식별 체계 표현 기술- 저작권 표현(Right Expression): 라이선스의 내용 표현 기술- 암호화 파일 생성(Packager): 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술- 정책 관리(Policy Management): 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술- 크랙 방지(Tamper Resistance): 크랙에 의한 콘텐츠 사용 방지 기술- 인증(Authentication): 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술#암키식저 파정크인
1. 꼭 알아야 할 키워드 = _____(밑줄)2. # = 두음 암기 or 한 칸 띄어 쓴 건 산출물3. 시나공 + 수제비 정리 (페이지 참고)4. “Ctrl+F” 탐색 → 제목 활용하기 eq oac(□,1) 개발 환경 구축 ★★p.534, 4-21) 개발 환경 구축의 개요- 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 하드웨어 및 소프트웨어 장비를 구축하는 것- 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품들을 최종적으로 결정하여 구축함2) 하드웨어 환경 ★- 사용자와의 인터페이스 역할을 하는 클라이언트(Client)와 클라이언트와 통신하여 서비스를 제공하는 서버(Server)로 구성됨- 클라이언트: PC, 스마트폰 등- 서버: 웹 서버, 웹 애플리케이션 서버(WAS), 데이터베이스 서버, 파일 서버 등▶ 웹 서버(Web Server) __ 4-96- 클라이언트로부터 직접 요청을 받아 처리하는 서버로, 저용량의 정적 파일들을 제공# Apache HTTP Server, Microsoft Internet Service, Google Web Server 등▶ 웹 애플리케이션 서버(WAS; Web Application Server) ★- 정적인 콘텐츠를 처리하는 웹 서버(Web Server)와 반대됨- 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어(=소프트웨어)- 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공# Apache Tomcat, IBM WebSphere, Oracle WebLogic, JEUS, JBoss, Jetty, Resin 등등▶ 데이터베이스 서버(Database Server) __ 4-98- 데이터베이스와 이를 관리하는 DBMS를 운영하는 서버# MySQL Server, IBM WebSphere, Oracle WebLogic 등▶ 파일 서버(File Server)- 데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버# AWS S3 위치, 시간 등을 추적할 수 있어야 함성능다른 응용 프로그램(애플리케이션)의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료돼야 함#대자견안성2) 배치 스케줄러(Batch Scheduler), 잡 스케줄러(Job Scheduler)- 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구▶ 스프링 배치(Spring Batch): Spring 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능들을 모두 사용할 수 있는 오픈 소스 프레임워크# 주요 구성 요소: Job, Job Launcher, Job Repository, Step▶ 쿼츠(Quartz): Spring 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리# 주요 구성 요소: Job, Job Detail, Trigger, Scheduler eq oac(□,5) 패키지 소프트웨어 ★p.544, 4-1011) 패키지 소프트웨어(Package Software)의 개요- 기업에서 일반적으로 사용하는 여러 기능들을 통합하여 제공하는 소프트웨어- 기업에서 패키지 소프트웨어를 구입해 기업 환경에 적합하게 커스터마이징 후 사용- 기능 요구사항을 70% 이상 충족시키는 패키지 소프트웨어 사용2) 패키지 소프트웨어 vs 전용 개발 소프트웨어패키지 소프트웨어전용 개발 소프트웨어기능요구사항70% 이상 충족시키는 패키지 소프트웨어모든 기능 요구사항 반영 가능안정성품질이 검증됐고, 업계 표준 준용개발자의 역량에 따라 달라짐라이선스판매자회사생산성개발을 위한 인력과 시간 절약 가능개발을 위한 인력과 시간 필요호환성보장 안됨설계 단계부터 고려하며 개발해서 호환성 좋음유지보수결함 발생 시 즉시 대응 어려움결함 발생 시 즉시 대응 가능 eq oac(□,6) 데이터 타입 ★★p.552, 4-24, 20년 3회 기출문제- 변수(Variable)에 저장될 데이터의 형식을 나타내는 것으로, 변수에 값을 저장하기 전에 문자형, 정수형, 실수형재하는 방법▶ 예상 반입(Anticipatory Fetch): 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법3) 배치(Placement) 전략 __ 20년 3회 기출문제- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에(Where) 위치시킬 것인지를 결정하는 전략▶ 최초 적합(First Fit): 빈 영역 중에서 첫 번째 분할 영역에 배치▶ 최적 적합(Best Fit): 빈 영역 중에서 단편화를 가정 작게 남기는 분할 영역에 배치▶ 최악 적합(Worst Fit): 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치#최적악4) 교체(Replacement) 전략 __ 4-46- 이미 사용되고 있는 영역 중에서 어느(Who) 영역을 교체할지 결정하는 전략# FIFO, LRU, LFU, NUR, OPT, SCR5) 주기억장치 할당(Allocation)의 개념 ★- 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게(How) 할당할지 정함▶ 연속 할당 기법: 프로그램을 주기억장치에 연속으로 할당하는 기법# 단일 분할 할당 기법: 오버레이, 스와핑# 다중 분할 할당 기법: 고정(정적) 분할 할당 기법, 가변(동적) 분할 할당 기법▶ 분산 할당 기법: 프로그램을 특정 단위의 조각으로 나누어 할당하는 기법# 페이징(Paging) 기법 / 세그먼테이션(Segmentation) 기법#연단다 분페세6) 가상기억장치의 개요 ★- 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법- 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용- 주기억장치의 이용률과 다중 프로그래밍 효율을 높일 수 있음- 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업 필요- 블록 단위로 나누어 사용하므로 연속 할당 방식의 단편화 해결 가능7) 페이징(Paging) 기법 ★- 가상기억장치에 보관되어 있는 프로그은 프로세서 스케줄러에 의해 수행됨# 문맥 교환(Context Switching): 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것 ★7) 스케줄링의 목적- 공정성: 모든 프로세스에 공정하게 할당- 처리량 증가: 단위 시간당 프로세스 처리량 증가- CPU 이용률 증가: CPU 낭비 시간 줄이고, 사용되는 시간 비율 증가- 우선순위 제도: 우선순위가 높은 프로세스 먼저 실행- 오버헤드 최소화: 오버헤드 최소화- 응답시간(Response Time, 반응 시간) 최소화: 작업 지시 및 반응 시작 시간 최소화- 반환 시간(Turn Around Time) 최소화: 제출한 시간부터 실행 완료 시간 최소화- 대기 시간 최소화: 준비상태 큐에서 대기하는 시간 최소화- 균형 있는 자원의 사용: 메모리, 입, 출력장치 등의 자원을 균형 있게 사용- 무한 연기 회피: 자원을 사용하기 위해 무한정 연기되는 상태 회피→ CPU이용률, 처리율, 반환 시간, 대기 시간, 응답 시간 ★8) 프로세스 스케줄링의 기법 ★ __ 4-54▶ 선점(Preemptive) 스케줄링: 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 선점할 수 있는 기법- 우선순위가 높은 프로세스 빠르게 처리 가능- 빠른 응답 시간을 요구하는 대화식 시분할 시스템(Time Sharing System)에 사용됨- 많은 오버헤드 발생- 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록 필요# Round Robin, SRT(Shortest Remaining Time), MLQ(Multi-Level Queue), MFQ#RTMF▶ 비선점(Non-Preemptive) 스케줄링: 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 선점할 수 없는 기법- CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU 사용- 모든 프로세스에 대한 요구를 공정하게 처리 가능- 프로세스 응답 시간의 예측 용이- 일괄 처리 방식에 적합- 중요Source Port, Destination Port, Length, Checksum, Data#소데랭체데RTCP(Real-TimeControlProtocol)- 패킷의 전송 품질을 제어하기 위한 제어 프로토콜- 세션에 참여한 각 참여자들에게 주기적으로 제어 정보 전송 ★- 데이터 패킷과 제어 패킷의 다중화(Multiplexing) 제공 ★→ 하위 프로토콜- 최소한의 제어와 인증 기능만을 제공하고 항상 32비트의 경계로 끝남5) 인터넷 계층의 주요 프로토콜 ★ __ 20년 1, 2회 기출문제IP(Internet Protocol)- 전송할 데이터에 주소를 지정하고, 경로 설정 기능을 함- 비연결형인 데이터그램 방식을 사용해 신뢰성 보장 XICMP(Internet ControlMessage Protocol)IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 하며, 헤더는 8Byte로 구성됨IGMP(Internet GroupManagement Protocol)멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨ARP(Address ResolutionProtocol)호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꿈# IP 주소 → MAC 주소 ★RARP(Reverse AddressResolution Protocol)ARP와 반대로 물리적 주소(MAC Address)를 IP 주소로 변환하는 기능을 함# MAC 주소 → IP 주소 ★6) 네트워크 액세스 계층의 주요 프로토콜 ★Ethernet(IEEE 802.3)CSMA/CD 방식의 LANIEEE 802LAN을 위한 표준 프로토콜HDLC비트 위주의 데이터 링크 제어 프로토콜X.25패킷 교환망을 통한DTE와 DCE 간의 인터페이스를 제공하는 프로토콜RS-232C공중 전화 교환망(PSTN)을 통한DTE와 DCE 간의 인터페이스를 제공하는 프로토콜 eq oac(□,24) 추가 정리, 수제비 접근자
1. 소프트웨어 생명 주기, SDLC(Software Development Life Cycle) ★★p.22, 5-3, 20년 1, 2, 3, 4회 기출문제1) 폭포수 모형(Waterfall Model) ★ - 가장 오래되고 가장 폭넓게 사용된 고전적 생명 주기 모형- 한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형- 단계별 정의 및 산출물이 명확- 개발 중간에 요구사항의 변경이 용이하지 않음- 타당성검토 → 계획 → 요구 분석 → 설계 → 구현(코딩) → 테스트(검사) 유지보수#분설구테유2) 프로토타입 모형(Prototype Model, 원형 모형) ★- 견본(시제)품을 만들어 최종 결과물을 예측하는 모형- 인터페이스 중점을 두어 개발- 개발 중간에 요구사항의 변경이 용이3) 나선형 모형(Spiral Model, 점진적 모형) ★ __ 20년 1,2,3회 기출문제- 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형- 점진적 개발 과정 반복으로 요구사항 추가 가능- 정밀하고 유지보수 과정 필요 없음- 계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가#계위개고4) 애자일 모형(Agile Model) ★★ __ 20년 1,2,3회 기출문제- 애자일은 민첩함, 기민함 의미- 변화에 유연하게 대응- 일정한 주기(Iteration, Sprint)를 반복하면서 개발과정 진행- 절차와 도구보다 고객(개인)과의 소통에 초점을 맞춤ex) XP(eXtreme Programming), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crystal), 린(LEAN)#엑스칸크린+ 기능중심 개발2. 스크럼(Scrum) 기법 ★p.26, 1-14- 팀원 스스로가 스크럼 팀 구성- 개발 작업에 관한 모든 것을 스스로 해결해야 함- 스프린트는 2 ~ 4주 정도의 기간으로 진행