[1] 소프트웨어 개발 방법론
구조적 방법론(70년대) > 정보공학 방법론(80년대) > 객체 지향 방법론(90년대) > 컴포넌트 기반 방법론(00년대) > 애자일 방법론(00년대) > 제품 계열 방법론(10년대)
- 소프트웨어 개발 방법론 - 애자일 방법
- 고객의 요구사항 변화에 유연하게 대응
- 일정한 주기를 반복하면서 개발
- 폭포수 방법 - 각 단계의 결과가 완전히 확인된 후 다음 단계 진행
[2] 비용산정
: 소프트웨어 개발에 필요한 기능과 규모를 기반으로 소요되는 인원, 기간, 자원 등을 통해 비용 예측
- 비용산정기법
- 하향식: 과거 경험을 바탕
- 전문가 판단: 경험 많은 두명 이상의 전문가 의뢰
- 델파이: 주관적 편견 보완을 위해 많은 전문가의 의견 종합
- 상향식: 소요 시간을 구하고 인력까지 계산
- LOC기법: 예측치를 이용
- 개발 단계별 노력 기법: 생명주기의 각 단계별로 산정
- 수학적 산정 기법: 개발 비용 산정의 자동화를 목표!
- COCOMO: 보헴이 제안, LOC에 의한 비용산정 기법, 소프트웨어의 복잡도나 규모에 따라 분류
- 조직형(Organic Mode) : 5만 라인 이하
- 반분리형(Semi-Detached Mode) : 30만 라인 이하
- 내장형(Embedded Mode) : 30만 라인 이상
- Putnam: 푸트남이 제안, 소프트웨어 생명 주기의 전 과정에 사용될 노력의 분포를 가정(생명 주기 예측 모형)
- 자동화 추정 도구: SLIM
- Rayleigh-Norden 곡선의 노력 분포도를 이용한 프로젝트 비용 산정기법
- FP(기능점수 모형): 알브레히트가 제안, 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하여 기능 점수 산출해서 영향도 비교
- 자동화 추정 도구: ESTIMACS
- COCOMO: 보헴이 제안, LOC에 의한 비용산정 기법, 소프트웨어의 복잡도나 규모에 따라 분류
- 하향식: 과거 경험을 바탕
[3] 일정 계획: 프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 소작업에 분배하며, 소작업의 순서와 일정을 정함
- 일정 계획의 순서: 프로젝트 규모 추정 > 소단위 작업 분해(WBS) > PERT/CPM 네트워크로 표현 > 간트차트로 표현
- WBS(Work Breakdown Structure, 작업 분해 구조도): 프로젝트를 여러개의 작은 소단위로 분해하여 계층구조로 표현
- PERT/CPM: 프로젝트의 지연을 방지하고 계획대로 진행되도록 일정을 계획, 적은 비용으로 빠른 기간에 플젝 완성하기 위한 방법
- PERT(Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술): 소요 기간 예측이 어려울때, 낙관치/기대치/비관치로 나누어 예측
- CPM(Critical Path Method, 임계 경로 기법): 작업 시간이 정확하게 주어졌을때
- 임계 경로: 여러 경로 중 시간이 가장 많이 걸리는 경로
- 간트차트: 프로젝트의 시작과 종료 일정에 대해 막대 도표를 이용한 일정표
[4] 소프트웨어 보안
- 보안 3요소
- 기밀성: 인가된 사용자만 정보 자산에 접근
- 무결성: 적절한 권한을 가진 사용자에 의해 인가된 방법으로만 정보를 변경
- 가용성: 정보 자산에 대해 적절한 시간 또는 시점에 접근 가능
- 인증, 부인방지
- 보안 방법론
- Seven Touchpoints: 실무적으로 검증된 개발 보안 방법론, 공통 위험 요소를 파악하고 이해하며 보안 설계, 모든 소프트웨어 산출물에 대해 철저하고 객관적인 위험 분석 및 테스트를 거쳐 안전한 소프트 웨어를 만드는 방법
- Secure OS(Secure Operation System, 보안 운영체제): 기존 운영체제의 커널에 보안 기능을 추가한 보안 운영체제
- 보안 구현 도구(보안 취약점 도구)
- Nmap(Network mapper): 고든 라이온이 작성한 보안 스캐너로, 서버 관리자가 시스템 자체 스캔을 통해 자신이 운영하는 서버에 자신도 모르는 다른 포트가 열려있는지 등을 확인하는 도구
[5] 소프트웨어 취약점
- 자원에 대한 허가되지 않은 접근을 시도하려는 공격자에게 열린문을 제공할 수 있는 약점
- 버퍼 오버플로: 메모리 버퍼의 경계값을 넘어서 메모리값을 읽거나 저장
- 사이트 간 스크립팅(XSS): 검증되지 않은 외부 입력값에 의해 사용자 브라우저에서 악의적인 스크립트가 실행될 수 있는 보안 약점
- FTP 바운스 공격: FTP 프로토콜 구조의 허점을 이용한 공격, 전송 목적지 주소를 임의로 지정해 임의의 목적지로 메시지나 자료를 전송
- 실행 프로세스 권한 설정, 운영체제의 접근 제한, 운영체제의 정보 수집 제한
[6] 암호 알고리즘
- 암호화: 평문을 암호문으로 변환
- 복호화: 암호문을 평문으로 변환
- 양방향(암호화, 복호화 모두 가능)
- 대칭키(개인키, 비공개키): 암호화 키와 복호화 키가 같은 대칭키, 키를 공개하지 않고 동일한 키 사용, 알고리즘 단순, 속도 빠름, 분배 문제로 인한 보안 수준 낮음
- Stream 방식, Block 방식(DES:56bit를 이용하여 64bit 암호화 및 복호화, ARIA, AES:DES 보완, 128,192,256bit를 이용하여 128bit의 평문을 암호화 및 복호화)
- 비대칭키(공개키): 암호화 키와 복호화 키가 다른 비대칭키 암호화 기법, 키 하나만을 공개하고 서로 다른 키 사용, 보안 수준 높음, 알고리즘이 복잡하고 속도 느림
- RSA(소인수분해 결과를 알면 간단히 구해지는 사실에 바탕을 둠), ECC
- 대칭키(개인키, 비공개키): 암호화 키와 복호화 키가 같은 대칭키, 키를 공개하지 않고 동일한 키 사용, 알고리즘 단순, 속도 빠름, 분배 문제로 인한 보안 수준 낮음
- 단방향(평문을 암호화 하는 것은 가능, 암호문을 평문으로 복호화는 불가능)
- HASH: 임의 길이의 입력 데이터를 받아 고정된 길이의 출력값으로 변환
- 양방향(암호화, 복호화 모두 가능)
[7] 보안 솔루션
- 외부로부터 불법적인 침입을 막는 기술이나 시스템 또는 장비
- IDS (Intrusion Detection System, 침입 탐지 시스템): 정보 시스템의 보안을 위협하는 침입 행위가 발생할 경우 이를 탐지 및 적극 대응하기 위한 보안 시스템
- 이상 탐지 기법(Anomaly Detection): 비정상적인 행위나 자원의 사용 탐지
- 오용 탐지 기법(Misuse Detection): 미리 입력해 둔 공격 패턴이 있는지 탐지
- 웹방화벽 WAF(Web Application FIrewall): 일반 방화벽이 탐지하지 못하는 웹 기반 공격 방어
- 네트워크 접근 제어 NAC(Network Access Contorl): 사전에 인가받지 않은 사용자나 보안 체계를 갖추지 않은 정보 기기의 네트워크 접속 차단
- 가상 사설망 VPN(Virtual Private Network): 인터넷망과 같은 공중망을 사설망처럼 이용해 회선 비용을 크게 절감할 수 있는 기업 통신 서비스
- SEIM: 다양한 보안 장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보들 간의 연관성을 분석하여 위협상황을 인지하고, 침해 사고에 신속하게 대응
[8] 신기술 및 트렌드 정보
- 사물인터넷 IoT(Internet of Things): 사물을 네트워크로 연결해 정보를 공유하는 기술
- 가상랜 VLAN(Virtual Local Area Network): 논리적으로 LAN을 구성
- 피코넷(Piconet): 여러 개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
- 스마트그리드(Smart Grid): 전기 및 정보통신 기술을 활용하여 전력망을 지능화, 고도화
- 메시 네트워크(Mesh Netwoek): 기존 무선 랜의 한계 극복을 위해 등장한 다대다 디바이스 간 통신을 지원
- MQTT(Message Queuing Telemetry Transport): 푸시 기술 기반의 경량 메시지 전송 프로토콜
- 징(Zing): 키오스크에 갖다 대면 원하는 데이터를 바로 가져오는 기술
- 디지털 트윈: 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델
- 소프트웨어 정의 스토리지(Software Defined Storage): 소프트웨어를 이용하여 전체 스토리지 자원을 관리하는 데이터 저장 장치 체계
- 싱글 사인 온(Single Sign On): 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근 권한도 얻는 시스템
- 매시업(Mashup): 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어를 만드는 기술
- 스크래피(Scrapy): Python 기반의 웹 크롤링 프레임워크
- 도커(Docker): 컨테이너를 사용하여 응용 프로그램의 배포를 자동화하는 오픈 소스 엔진
- 엔 스크린(NScreen): 하나의 콘텐츠를 PC, TV, 휴대폰 등 여러 단말기에 공유하여 끊김 없이 이용하는 체계
- 하둡(Haddop): 일반 컴퓨터들을 연결하여 하나의 시스템처럼 작동하도록 묶어 다양한 대용량 데이터들을 분산 처리하는 자유 자바 소프트웨어 프레임워크
- 맵리듀스(MapReduce): 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
- 스쿱(Sqoop): 관계형 데이터베이스와 하둡 사이에서 데이터 이관을 지원하는 툴
[9] 보안 관련 신기술 및 트렌드 정보
- 죽음의 핑(Ping of Death): 인터넷 프로토콜 허용 범위인 65536바이트 이상의 큰 패킷을 고의로 전송하여 발생하는 서비스 거부 공격 방법
- 스머핑(Smurfing): IP,ICMP의 특성을 악용하여 고성능 컴퓨터를 이용해 초당 엄청난 양의 접속 신호를 한 사이트에 보내서 상대가 서버에 접속하지 못하게 함
- 랜섬웨어(Ransomware): 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 열지 못하게 한 후 돈을 보내주면 해독용 열쇠 프로그램을 전송해준다며 금품을 요구하는 악성 프로그램
- 애드웨어(Adware): 특정 소프트웨어를 실행할 때 또는 자동으로 활성화되는 광고프로그램, 무분별한 광고 팝업을 뜨게 하는 등의 악용 위험
- LAND: 출발지와 목적지 주소 또는 포트를 통일하게 하여 무한 응답을 발생
- DDoS: 감염된 대량의 숙주 컴퓨터를 이용해 특정 시스템을 마비시키는 사이버 공격법
- 트립와이어(Tripwire): 크래커가 침입하여 백도어를 만들어 놓거나 설정파일을 변경했을 때 분석하는 도구
- 웜 바이러스(Worm Virus): 스스로 복제하는 악성 소프트웨어 컴퓨터 프로그램
- 세션 하이재킹(Session Hijacking): 다른 사람의 세션 상태를 훔치거나 도용하여 액세스하는 해킹 기법
- 이블 트윈 공격(Evil Twin Attack): 소셜 네트워크에서 악의적인 사용자가 지인 또는 특정 유명인으로 가장하여 활동
- 스니핑(Sniffing): 네트워크의 중간에서 남의 패킷 정보를 도청
- 스푸핑(Spoofing): 승인받은 사용자인 것처럼 시스템에 접근하거나 네트워크 상에서 허가된 주소로 가장하여 접근 제어를 우회하는 공격행위
- 스택가드(StackGuard): 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경 되었을 경우 오버플로 사태로 가정하여 프로그램 중단
- OWASP(The Open Application Security Project): 오픈소스 웹 어플리케이션 보안 프로젝트
- 블루재킹(Bluejacking): 블루투스 지원 장치들에게 스팸처럼 자발적인 메시지를 익명으로 퍼트림
- 블루프린팅(Blueprinting): 공격이 가능한 블루투스 장치들을 검색하고 모델을 확인하는 공격
- 스위치 재밍(Switch Jamming): 위조된 MAC 주소를 지속적으로 네트워크로 흘려보내는 스위치 저장 기능을 혼란시켜 더미 허브처럼 작동하도록 하는 공격법
- 워터링 홀(Watering Hole): 웹 사이트를 방문할 때까지 기다리는 공격방법
- 허니팟(HeneyPot): 해커를 잡기 위해 유인하는 시스템
- 심층 패킷 정보 감시 DPI(Deep Packet Inspection): 네트워크를 오가는 패킷 정보를 감시하는 기술
- TCP 래퍼(TCP Wrapper): 어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 그 반대의 경우에는 거부할 수 있는 접근 제어 유틸리티
[10] 프레임워크 & 라이브러리
- 프레임워크: 이미 정해진 코드를 호출해 사용하고 자체적인 흐름을 가짐
- 라이브러리: 사용자 코드에서 호출해서 사용하고 그에 대한 제어를 할 수 있음
[11] 라우터 : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행
'정보처리기사' 카테고리의 다른 글
정보처리기사(실기) - 데이터 저장소 (0) | 2024.04.07 |
---|---|
정보처리기사 - 4과목 (0) | 2024.02.25 |
정보처리기사 - 3과목 (0) | 2024.02.25 |
정보처리기사 - 2과목 (1) | 2024.02.24 |
정보처리기사 - 1과목 (0) | 2024.02.23 |