소프트웨어 재사용, 재공학
소프트웨어 재사용 (Reuse) | 소프트웨어 재공학 (Reengineering) |
이미 나온 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용 실패 위험↓ 생산성↑ 시간과 비용↓ 지식 공유 합성 중심(Composition-Based): 블록 구성 방법 생성중심(Generation): 패턴 구성 방법 |
기존 시스템을 이용해 더 나은 구축 새로운 기능 추가, 위기 해결, 수명 연장, 오류 감소 개발기간↓ - 분석(Analysis): 대상 선정 - 재구성(Restructuring): 코드 재구성, 기능과 외적인 동작은 바뀌지 않음. - 역공학(Reverse Engineering): 설계도 추출 - 이식(Migration): 다른 운영체제나 하드웨어 환경에서 사용할 수 있게 변환 |
CASE
개발 과정을 자동화하는 것.
소프트웨어 생명 주기 전 단계의 연결
다양한 소프트웨어 개발 모형 지원
그래픽 지원
비용 산정 기법
LOC
: 원시 코드 라인 수로 예측
(낙관치 + 4 x 기대치 + 비관치) / 6
수학적 산정 기법 | |
COCOMO 모형 | 개발할 소프트웨어의 규모(LOC)를 예측한 후 비용 산정 방정식에 대입. 중소 규모 프로젝트 비용 추정에 적합. 같은 규모더라도 그 성격에 따라 다르게 산정됨. 비용 산정 결과는 프로젝트 완성에 필요한 노력(Man-Month)으로 나타남. - Organic Mode(조직형): 5만 라인 이하 - Semi-Detached Mode(반분리형): 30만 라인 이하 - Embedded Mode: 30만 라인 이상 |
Putnam 모형 | 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정. Rayleigh-Norden 곡선의 노력 분포도를 기초. 대형 프로젝트의 노력 분포 산정에 이용. *SLiM: 자동화 추정 도구 |
FP(기능 점수) 모형 | 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여해 기능 점수 산출. *ESTIMACS: 자동화 추정 도구 |
PERT
프로그램 평가 및 검토 기술.
소요 기간 예측이 어려운 소프트웨어에 사용
각 단계별 종료 시기 결정
작업 예측치 = (비관치 + 4x기대치 + 낙관치)/6
CMP
= 임계 경로 기법
소요 시간 예측
전 작업이 완료된 후 다음 작업 진행
임계 경로 = 최장 경로
ISO/IEC 12207
표준 소프트웨어 생명주기 프로세스
기본: 획득, 공급, 개발, 운영, 유지 보수
지원: 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결
조직: 관리, 기반 구조, 훈련, 개선
CMMI
조직의 업무 능력, 성숙도 평가 모델
단계 | 프로세스 | 특징 |
초기 (Initial) | X | 능력에 따른 성공 여부 |
관리 (Managed) | 규칙화 | 특정 프로젝트 정의 및 수행 |
정의 (Defined) | 표준화 | 표준으로 업무 수행 |
정량적 관리 (Quantitatively Managed) | 예측 가능 | 정량적으로 관리 및 통제 |
최적화 (Optimizing) | 지속석 개선 | 역량 향상을 위해 지속적인 프로세스 개선 |
프레임워크(Framework)
- 공통적으로 사용되는 구성 요소와 아키텍처를 일반화한 반제품 형태의 소프트웨어 시스템
- 특성: 모듈화(Moduliarity), 재사용성(Reusability), 확장성(Extensibility), 제어의 역흐름(Inversion of Control)
- 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크(.NET)
네트워크 설치 구조
성형(Star, 중앙 집중형) | Point-to-Point 방식으로 회선 연결 |
링형(Ring, 루프형) | 서로 이웃하는 것끼리 연결. 분산 및 집중 제어 모두 가능. |
버스형 | 한 개의 통신 회선에 여러 대의 단말장치 연결 |
계층형(Tree, 분산형) | 중앙 컴퓨터와 일정 지역의 단말장치까지는 하나의 통신 회선으로 연결. 이웃하는 단말장치는 일정 지역 내에 설치된 중간 단말장치로 연결 |
망형(Mesh) | 모든 지점의 컴퓨터와 단말장치를 서로 연결. 모든 노드를 연결하려면 노드가 n개일 때 n(n-1)/2개의 회선 필요. 노드당 n-1개의 포트 필요. |
용어
소프트웨어 관련 용어 | |
Mashup | 웹에서 제공하는 정보 및 서비스를 이용해 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술 |
서비스 지향 아키텍처(SOA) | 기업의 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축 |
Digital Twin | 현실 속의 사물을 소프트웨어로 가상화 |
텐서플로 | 구글의 구글 브레인 팀이 만든 오픈소스 소프트웨어 라이브러리 |
도커 | 컨테이너 기술 자동화 |
Scrapy | Python 웹 크롤링 프레임워크 |
보안 관련 용어 | |
BaaS(서비스형 블록 체인) | 블록체인 앱 개발 환경을 클라우드 기반으로 제공 |
OWASP | 웹 정보 노출, 악성 코드 스크립트, 보안이 취약한 부분을 연구하는 비영리 단체 |
TCP Wrapper | 외부 컴퓨터의 접속 인가 여부를 점검 |
Honeypot | 비정상적인 접근을 탐지하기 위해 설치. 침입자를 속여 실제 공격을 당하는 것처럼 보여줌. |
DPI (Deep Packet Inspection) | OSI 7 Layer 전 계층의 프로토콜과 패킷 내부 콘텐츠를 파악하여 해킹 등을 탐지, 트래픽 조정 |
신기술
네트워크 신기술 | |
IoT | 실세계와 가상 세계의 다양한 사물들을 인터넷을 연결 |
Mesh Network | 차세대 이동통신, 홈네트워킹, 공공 안전 등 특수 목적을 위한 새로운 방식의 네트워크 기술. 대규모 디바이스의 네트워크 생성에 최적화. |
PICONET | 여러 개의 독립된 통신장치가 블루투스나 UWB를 사용하여 통신망을 형성하는 무선 네트워크 기술 |
WDM (Wavelength Division Multiplexing) |
광섬유를 이용한 통신 기술. 파장이 서로 다른 복수의 신호를 보내 여러 대의 단말기가 동신에 통신 회선을 사용할 수 있게 함. |
클라우드 기반 HSM (Cloud-based Hardware Security Module) |
클라우드를 기반으로 암호화 키의 생성/저장/처리 등의 작업을 수행하는 보안기기. 클라우드에 인증서를 저장함. 암호화 키 생성이 하드웨어적으로 구현. |
PaaS-TA | 개방형 클라우드 컴퓨팅 플랫폼 |
Zing | 10cm 이내 거리에서 3.5Gbps 속도의 데이터 전송이 가능한 초고속 근접무선통신(NFC) 키오스크 |
SSO (Single Sign On) | 한 번의 로그인으로 개인이 가입한 모든 사이트를 이용할 수 있게 함. |
Smart Grid | =전력 IT. 전력선을 기반으로 모든 통신, 정보, 관련 인프라를 하나의 시스템으로 통합하여 관리. |
하드웨어 신기술 | |
고가용성 (HA; High Availability) |
장애 발생 시 즉시 다른 시스템으로 대체 가능한 환경을 구축하는 매커니즘 클러스터, 이중화 등 |
RAID (Redundant Array of Inexpensive Disk) | 여러 개의 하드디스크로 디스크 배열을 구성해 데이터 블록들을 서로 다른 디스크에 분산 저장하여 디스크의 속도 향상 |
N-Screen | N개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용할 수 있는 서비스 |
MEMS (Micro-Electro Mechanical Systems) | 초정밀 반도체 제조 기술을 바탕으로 기계 구조를 미세 가공하여 전기기ㅔ적 동작을 할 수 있게 한 초미세 장치 |
TrustZone Technology | 프로세서를 일반 구역과 보호 구역으로 분할 |
Memristor | Memory + Register. 기존의 경험을 기억하는 소자 |
DB 신기술 | |
Hadoop | 오픈소스 기반 분산 컴퓨팅 플랫폼 일반 PC급 컴퓨터로 가상화된 대형 스토리지 형성, 안에 보관된 거대한 데이터 세트를 병렬로 처리. 구글, 야후 |
MapReduce | 대용량 데이터를 분산 처리하기 위한 프로그래밍 모델 연관성 있는 데이터 분류로 묶는 Map 작업 수행 -> 중복 데이터 제거 후 원하는 데이터를 추출하는 Reduce 작업 |
Tajo | 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트. 한국이 주도해서 개발 |
Data Mining | 대량의 데이터 분석, 상호관계 규명, 패턴화 -> 효율적인 데이터 추출 |
OLAP (Online Analytical Processing) |
다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용 *연산: Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing |
신기술은 새로운 기술 계속 추가되는 듯. 세상이 계속 발전하니까😄
교착상태 해결 방법
예방(Prevention): 사전에 제어, 자원 낭비 가장 심함
회피(Avoidance): 적절히 피함. 은행가 알고리즘(Banker's Algorithm)
발견(Detection): 점검해서 발견. 교착상태 발견 알고리즘, 자원 할당 그래프
회복(Recovery): 교착상태를 일으킨 프로세스 종료 혹은 할당된 자원을 선점
보안 요소
3대 보안 요소: 기밀성, 무결성, 가용성
기밀성(Confidentiality) | 인가된 사용자에게만 접근 허용. 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음. |
무결성(Integrity) | 시스템 내 정보는 인가된 사용자만 수정 가능. |
가용성(Availability) | 인가받은 사용자는 언제라도 사용 가능 |
인증(Authentication) | 합법적인 사용자인지 확인하는 모든 행위 |
부인 방지(NonRepudiation) | 송·수진 증거 제공 |
세션 하이재킹
서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격 기법
탐지 방법
- 비동기화 상태 탐지
- ACK Storm 탐지
- 패킷의 유실 탐지
- 예상치 못한 접속의 리셋 탐지
접근 지정자(접근 제어자)
O: 접근 가능
한정자 | 클래스 내부 | 패키지 내부 | 하위 클래스 | 패키지 외부 |
Public | O | O | O | O |
Protected | O | O | O | |
Default | O | O | ||
Private | O |
개인키 암호화 기법
= 단일키 암호화 기법 = 대칭 암호화 기법
키 개수: n(n-1)/2
블록 암호화 방식 | 스트림 암호화 방식 |
한 번에 한 블록 암호화 DES, SEED, AES, ARIA |
평문 길이 스트림 생성. 비트 단위 암호화. LFSR, RC4 |
공개키 암호화 기법
= 비대칭 암호화 기법
공개키는 DB 사용자, 비밀키는 관리자
키 개수: 2n
RSA: 큰 숫자는 소인수분해 하기 어렵다는 걸 이용
침해 공격 관련 용어
DDos(분산 서비스 거부) 공격: 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것.
네트워크 침해 관련 용어 | |
Ping of Death | 패킷 크기를 프로토콜 허용 이상으로 |
SMURFING | 엄청난 양의 데이터를 한 사이트에 |
Smishing | 문자 메시지로 개인신용정보 빼감 |
Phishing | 공기관, 금융기관 사칭 이메일, 문자 |
Ping Flood | 많은 ICMP 메시지를 보내 응답에 시스템 자원을 모두 사용하게 |
Evil Twin Attack | 실제 존재하는 동일 이름의 무선 WiFi 신호를 송출하여 정보 빼냄 |
Switch Jamming | 위조된 MAC 주소를 지속적으로 네트워크로 흘려보내 더미 허브처럼 작동 |
블루투스 관련 공격 | |
BlueBug | 취약한 연결을 이용해 휴대폰 원격 조종 |
BlueSnarf | 장비의 파일에 접근, OPP 사용 |
BluePrinting | 공격 대상이 될 블루투스 장비를 검색하는 활동 |
BlueJacking | 스팸 메시지 보냄 |
정보 보안 침해 관련 용어 | |
Worm | 네트워크로 자신을 복제. 시스템 부하 높임 |
Zero Day Attack | 보안 취약점이 공표되기 전에 공격하는 것. 공격의 신속성을 의미. |
Key Logger Attack | 키보드 움직임 탐지 |
Ransomware | 인터넷 사용자의 컴퓨터에 잠입해 파일 암호화 |
Back Door, Trap Door | 프로그래머가 편의를 위해 보안을 제거한 비밀 통로. *탐지 방법: 무결성 검사, 로그 분석, 열린 포트 확인, SetUID 파일 검사 등 |
IDS(침입 탐지 시스템): 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템. | |
HIDS | NIDS |
시스템 내부 감시 및 분석 OSSEC, md5deep, AIDE, Samhain 등 |
외부로부터의 침입을 감시 및 분석 Snort, Zeek 등 |
VPN: 가상 사설 통신망
SSH(시큐어 셸): 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 응용 프로그램. 보안성이 낮은 네트워크에서도 안전하게 통신. 키를 통한 인증 방법을 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 함. 22번 포트 사용.
'자격증 ⁺₊' 카테고리의 다른 글
정보처리기사 실기 이론 요약 정리 (0) | 2024.07.31 |
---|---|
정보처리기사 2024년 2회 실기 시험 후기 (0) | 2024.07.28 |
정보처리기사 필기 4과목 정리 - 프로그래밍 언어 활용 (0) | 2024.05.22 |
정보처리기사 필기 3과목 정리 - 데이터베이스 구축 (1) | 2024.05.21 |
정보처리기사 필기 2과목 정리 - 소프트웨어 개발 (0) | 2024.05.21 |
댓글