1. 소프트웨어 개발 방법론

소프트웨어 생명주기 모델 (SDLC)

  • 프로세스 단계: 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
  • 모델 종류
    • 폭포수 모델: 단계별 진행, 이전 단계로 돌아가기 어려움
    • 프로토타이핑 모델: 시제품(Prototype) 제작 후 수정·보완
    • 나선형 모델: 위험 분석을 기반으로 반복적 개발
    • 반복적 모델: 일정 단위로 나누어 점진적 개발

소프트웨어 개발 방법론

  • 구조적 방법론: 절차 중심 개발
  • 정보공학 방법론: 데이터 중심 개발
  • 객체지향 방법론: 객체 중심 개발
  • 컴포넌트 기반 개발 (CBD): 재사용 가능한 컴포넌트 활용
  • 애자일 방법론: 변화 대응과 팀 협업 중심
  • 제품 계열 개발 방법론: 임베디드·특정 제품 중심

요구공학 (Requirement Engineering)

  • 개발 프로세스: 요구사항 도출 → 분석 → 명세 → 검증
  • 관리 프로세스: 협상 → 기준선 설정 → 변경 관리 → 검증

2. 프로젝트 관리

비용 산정 모델

  • 하향식: 전문가 판단 (델파이 기법)
  • 상향식: 코드라인수(LOC), Man-Month, COCOMO, Putnam, FP(Function Point)

일정 관리 모델

  • CPM (주공정법): 프로젝트의 중요 경로 관리
  • PERT: 확률적 일정 관리
  • 간트차트: 작업 일정 시각화

위험 관리 (Risk Management)

  • 위험 식별 → 분석 → 계획 → 감시 및 조치
  • 위험 대응 전략
    • 회피(Avoid)
    • 전가(Transfer)
    • 완화(Mitigate)
    • 수용(Accept)

3. 소프트웨어 개발 표준 및 프레임워크

국제 표준

  • ISO/IEC 12207: 소프트웨어 생명주기 프로세스 정의
  • CMMI (Capability Maturity Model Integration)
    • 성숙도 레벨: 초기(1) → 관리(2) → 정의(3) → 정량적 관리(4) → 최적화(5)
  • SPICE (ISO 15504)
    • 수준 모델: 불완전 → 수행 → 관리 → 확립 → 예측 → 최적화

개발 프레임워크

  • 소프트웨어 재사용
    • 합성 중심 (기존 모듈 조합)
    • 생성 중심 (템플릿, 자동 코드 생성)

4. 네트워크 및 시스템 구축

네트워크 구성 및 신기술

  • 네트워크 구조: 버스형, 트리형, 링형, 메시형, 성형
  • 라우팅 프로토콜
    • RIP: 홉 수 15 제한
    • OSPF: 제한 없음
    • BGP: ISP 간 사용

스토리지 및 백업

  • 스토리지 유형
    • DAS: 개별 서버에 직접 연결
    • NAS: 네트워크 기반 공유
    • SAN: 전용 네트워크
  • 백업 방식
    • 전체 백업
    • 차분 백업 (마지막 전체 백업 이후 변경된 데이터)
    • 증분 백업 (가장 최근 백업 이후 변경된 데이터)

5. DB 구축 및 빅데이터 기술

빅데이터 개념 및 기술

  • 3V 요소: 속도(Velocity), 크기(Volume), 다양성(Variety)
  • 빅데이터 저장 및 분석 기술
    • HDFS, HBASE, MapReduce
    • 데이터 가공 (Pig, Hive, Tajo)
    • 분석 및 시각화 (R, Python)

NoSQL 데이터베이스

  • 특징: 스키마 필요 없음, 조인 사용 안 함, 수평 확장 가능
  • 유형
    • 키-값 저장소
    • 컬럼 기반 저장소 (HBASE)
    • 문서 저장소 (MongoDB, JSON 기반)
    • 그래프 DB (Neo4j)

6. 소프트웨어 보안 구축

보안 3대 요소

  • 기밀성 (Confidentiality)
  • 무결성 (Integrity)
  • 가용성 (Availability)

Secure SDLC 및 보안 방법론

  • BSiMM, OpenSAMM, OWASP CLASP, MS SDL

웹 보안 취약점 및 대응

  • XSS (Cross-Site Scripting): 문자 필터링, HTML 태그 제한
  • SQL Injection: 바인딩 방식 사용, 필터링
  • CSRF (Cross-Site Request Forgery): CSRF 토큰 사용, 재인증

암호화 기법

  • 대칭키 암호화: AES, DES
  • 비대칭키 암호화: RSA, ECC
  • 해시 암호화: SHA, MD5 (취약점 존재)

취약점 대응 기법

  • 솔트 키 사용, 키 스트레칭 (n번 반복)

7. 시스템 보안 구축

서비스 공격 유형

  • DoS/DDoS 공격: SYN Flooding, UDP Flooding, Smurf 공격
  • 애플리케이션 공격: HTTP GET Flooding, Slowloris, Rudy 공격

네트워크 보안 위협

  • 패스워드 크래킹
  • IP/ARP 스푸핑
  • 세션 하이재킹

보안 관련 공격 기법

  • 버퍼 오버플로우 (스택, 힙)
  • 포맷 스트링 공격
  • 키로거 공격

인증 및 접근 통제

  • 인증 방식: 지식 기반, 소지 기반, 생체 기반
  • 접근 통제 유형: DAC(신분 기반), MAC(규칙 기반), RBAC(역할 기반)

보안 아키텍처

  • 관리적 보안: 정책 및 규정
  • 물리적 보안: 데이터센터 보호
  • 기술적 보안: 방화벽, IDS/IPS, VPN

8. 보안 솔루션 및 로그 관리

네트워크 보안 솔루션

  • 방화벽 (Firewall)
  • 웹 방화벽 (WAF)
  • 침입 탐지 시스템 (IDS)
  • 침입 방지 시스템 (IPS)
  • 가상사설망 (VPN)

시스템 보안 솔루션

  • 보안 운영체제 (커널 보안 강화)
  • 콘텐츠 유출 방지 (DLP, DRM)

+ Recent posts