[Engineer Information Processing] 5. 정보 시스템 구축 관리
정보처리기사를 취득하기 위해 공부하는 과정에 작성한 ‘정보 시스템 구축 관리’ 관련 정리이다.
소프트웨어 개발 생명 주기
프로젝트 관리 도구
CPM(임계 경로법) : 프로젝트 완성에 필요한 작업을 나열해 작업 소요 기간 예측- 작업을 표시하는 노드와 전후 의존 관계를 표시하는 간선으로 구성
- 프로젝트 중간 점검을 뜻하는 박스 노드에 예상 완료 시간 표시
- 박스 노드 도달 이전 작업이 완료되야 다음 작업 진행
- 간트 차트 : 각 작업들의 일정을 막대로 표시하는 시간선 차트
WBS(작업 분해) : 프로젝트 작업을 계층적으로 분해 및 구조화
소프트웨어 개발 방법론
- 소프트웨어 개발 방법론 : 소프트웨어 개발 생명주기에 소프트웨어 공학 원리를 적용
- 구조적 방법론 : 정형화된 분석 절차에 따라 구조적으로 사용자 요구 파악
- 정보 공학 방법론 : 정보 시스템 개발의 관리 절차 체계화 (구조적 방법론의 거시적 관점 부재에 등장)
- 컴포넌트 기반 개발 방법론 (
CBD) : 재사용 가능한 컴포넌트를 조합해 어플리케이션을 개발CBD특징 : 점진적 개발, 컴포넌트 설계서 사용, 재사용 가능, 높은 확장성
- 소프트웨어 재사용 : 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발 및 유지에 사용
- 소프트웨어 재사용 접근 : 합성 중심 (블록 구성), 생성 중심 (템플릿·프레임워크 등 패턴 사용)
비용 산정 모델
- 비용 산정 모델 : 프로젝트 특성 및 요구사항을 고려해 소프트웨어 개발 비용 산정
- 델파이 기법 : 산정 요원 및 조정에 의해 단계별로 전문가들의 견해를 조정자가 조정해 최종 결정
LOC기법 : 소프트웨어 각 기능 구현 시 작성될 원시 코드 라인 수로 예측치 추정COCOMO기법 : 소스 코드 규모에 따른 비용을 예측해Man-Month로 나타냄COCOMO모형 종류 :Basic COCOMO(프로젝트 크기를 코드 라인 수로 측정),Intermediate COCOMO(개발자 경험 수준, 신뢰성 요구사항을 고려해 보정 계수 적용),Detailed COCOMOCOCOMO개발 유형 : 단순형 (5만 라인 이하), 중간형 (30만 라인 이하), 임배디드형 (30만 라인 이상)
Putnam모델 : 소프트웨어 개발 생명 주기 내 노력 분포 예측 (크기, 생산성, 기술 요소)- 기능 점수 : 시스템 구현 기술에 의존적이고 개발자에 식별된 기능 기반해 시스템 크기 측정
- 기능 점수 비용 산정 요소 : 코드 라인 수, 데이터 파일 수, 문서 수, 입력 유형 수, 보고서 수
소프트웨어 개발 표준
ISO/IEC 25000: 소프트웨어 품질 평가 및 절차 모델ISO/IEC 9126과ISO/IEC 14598통합2501n: 품질 모형,2503n: 품질 측정
SPICE,ISO/IEC 15504: 소프트웨어 프로세스 평가 및 개선ISO/IEC 12207개선SPICE모델 범주 : 고객-공급자 프로세스, 공학 프로세스, 지원 프로세스, 관리 프로세스, 조직 프로세스SPICE모델 레벨 : 레벨5, 최적 / 레벨4, 예측 / 레벨3, 확립 / 레벨2, 관리 / 레벨1, 수행 / 레벨0, 불완전
CMM: 조직 업무 능력 평가 기준을 세우기 위한 능력 성숙도 모델CMM모델 레벨 : 레벨5, 최적 / 레벨4, 관리 / 레벨3, 정의 / 레벨2, 반복 / 레벨1, 초보
테일러링과 프레임워크
- 테일러링 : 기존 개발 방법론을 프로젝트 상황 (요구사항 및 조건)에 맞게 수정해 개발 프로세스 최적화
- 테일러링 절차 : 프로젝트 특정 정의 → 표준 프로세스 선정·검증 → 상위 레벨 커스터마이징 → 세부 커스터마이징 → 문서화
- 소프트웨어 프레임워크 : 비슷한 유형의 응용 프로그램을 위해 아키턱처, 산출물의 통합된 집합
- 라이브러리 : 단순 활용될 수 있는 도구들의 집합 (차이점? : 프레임워크는 전체적인 흐름을 자체적으로 가짐)
- 소프트웨어 개발 프레임워크 : 소프트웨어 개발을 돕는 재사용 가능한 클래스·패턴의 집합
- 소프트웨어 개발 프레임워크 장점 : 개발 용이, 시스템 복잡도의 감소, 이식성, 품질 보증, 운영 용이, 개발 코드 간소화, 변경 용이성, 설계 및 코드의 재사용성 증가
신기술 용어
네트워크, 소프트웨어, 하드웨어 관련 신기술
중복 출제된 내용만 정리
- 프로토콜 관련
RIP: 최단 경로 탐색,Bellman-Ford, 벡터 라우팅 프로토콜MQTT:IBM, 대역폭 제한,TCP/IP,IoT
- 모바일 관련
Mesh: 무선 랜 한계, 대규모 디바이스 네트워크 생성 최적화, 차세대 이동 통신
- 하드웨어 관련
- 고가용성 솔루션 (
HACMP) : 공유 디스크, 클러스터링 - 직접 연결 저장 장치 (
DAS) : 호스트 버스 어댑터, 네트워크 디바이스 없이 직접 연결
- 고가용성 솔루션 (
소프트웨어 개발 보안
소프트웨어 개발 보안 개요
- 시큐어
OS: 컴퓨터 운영체제에 보안 기능을 추가- 시큐어
OS접근 통제 종류 : 강제적, 임의적, 역할 기반
- 시큐어
- 스택 가드 : 메모리 상에 프로그램 복귀 주소와 변수 사이에 특정 값 (카나리)를 저장했다가, 그 값이 변경되면 오버플로우 상태로 가정해 프로그램 실행 중단
소프트웨어 개발 보안 구축 및 방법론
- 정보 보안 3대 요소 : 기밀성 (인가 사용자만 접근), 무결성 (인가 방법으로만 수정), 기용성 (인가 사용자 업무 수행 유지)
시큐어 코딩 가이드
- 입력 데이터 검증 및 표현의 보안 약점 종류 :
SQL Injection, 자원 삽입, 크로스 사이트 스크립트 (XSS) - 보안 기능의 보안 약점 종류 : 하드 코드된 비밀번호
암호화 알고리즘
- 암호 알고리즘 : 평문을 암호문으로 (암호화), 암호문을 평문으로 (복호화) 바꿀 때 암호 키를 통해 사용되는 알고리즘
- 공개 키 : 암호 키와 해독 키가 다름 (비대칭 키 암호화), 쉬운 키 분배, 느린 속도, 복잡한 알고리즘,
RSA - 비밀 키 : 암호 키와 해독 키가 같음 (대칭 키 암호화), 어려운 키 분배, 빠른 속도, 쉬운 알고리즘,
DES/AES - 해시 암호화 : 임의 길이의 메시지를 입력하면 고정 길이의 출력값으로 변환 (디지털 서명에 활용 → 데이터 무결성 제공)
- 해시 3저항성 : 역상 저항성, 제2 역상 저항성, 충돌 저항성
서버 인증과 접근 통제
서버 인증 및 서버 통제 개요
- 사용자 인증 : 지식 기반 인증 (
ID/PW), 소유 기반 인증 (토큰), 생체 기반 인증, 다중 인증 - 접근 통제 : 시스템 자원 이용에 대한 불법적인 접근 방지
- 접근 통제 요소 →
AAA(인증 권한 검증 계정 관리) - 강제적 접근 통제 : 중앙에서 정보 수집 및 분류하여 보안 레벨 결정
- 임의적 접근 통제 : 정보 소유자가 보안 레벨 및 접근 제어 설정
- 역할 기반 접근 통제 : 사람이 아닌 직책에 대해 권한을 부여
- 접근 통제 요소 →
- 벨 라파둘라 모델 (
BLP) : 정보의 기밀성에 따라 상하 관계가 구분된 정보의 보호를 위해 자신의 권한보다 낮은 수분의 문서만을 읽을 수 있게 함 (다중 마스터 복제 방식 기반, 데이터 복제·분산 처리에 효과적)
보안 솔루션과 보안 아키텍처
IDS(침입 탐지 시스템) : 외부 침입 공격에 대해 탐지하는 네트워크 보안 시스템- 침입 탐지 기법 : 오용 탐지, 이상 탐지,
IPSec(IP Security) : 통신 세션의 각IP패킷을 암호화하고 인증하는 인터넷 프로토콜- 가상 사설망 : 이용자가 공중망에 사설망을 구축해 전용망을 사용하는 듯한 효과를 가짐
공격 유형
서비스 공격 유형
- 스머프 공격 : 공격 대상 주소에 근원지로 대량의
ICMP응답 패킷을 전송해 서비스 거부 유발 Ping of Death: 비정상적인ICMP패킷으로 시스템 성능 저하Ping플러딩 :Ping테스트로 공격자가 공격 대상 컴퓨터 확인DDos: 여러 대의 공격자를 분산 배치 및 동시에 서비스 거부 공격TCP세션 하이재킹 : 서버와 클라이언트가TCP로 통신할 때,RST패킷을 보내 세션을 끊고 세션을 탈취- 피싱 : 가짜 웹사이트로 개인 정보를 탈취
- 랜섬웨어 : 시스템을 잠그거나 데이터를 암호화해 이를 인질로 금전 요구
- 키 로거 : 키보드 움직임을 탐지해 개인정보 탈취
APT(지능적 지속 위협) : 다양한 보안 위협을 만드렁 정보 유츌- 백도어 : 프로그램이나 손상된 시스템에 허가되지 않은 접근을 가능하게 정상적인 보안 절차를 우회
Tripwire: 크래커가 백도어를 만들거나, 설정 파일을 변경했을 때 분석하는 도구
Switch Jamming스위치 허브의 기능을 방해해 스위치를 더미 허브처럼 작동시킴
공격 탐지 및 방지
Honeypot: 침입자를 속여 실제 공격당하는 것처럼 보여주어 크래커 추적 및 공격 기법 정보 수집DPI: 전 계층 프로토콜과 패킷 내부 컨텐츠를 파악하는 패킷 분석 기술HSM: 암호화 키를 생성 및 저장하는 전용 하드웨어 장치TCP Wrapper: 외부 컴퓨터가 접속되면 접속 인가 여불를 점검해 접속 허용HSM: 네트워크를 제어부, 데이터 전달부로 분리해 네트워크를 제어 및 관리