정보처리기사

[정보처리기사] 소프트웨어 구축 (2)

hminor 2023. 7. 21. 13:18

강의를 들으면서 헷갈리는 것만 정리하기

아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리

1회차

  • MVC 모델 계층
    • 프로젠테이션 계층: 뷰, UI
    • 제어 계층: 로직 처리
    • 비즈니스 로직 계층: 실제 업무 처리
    • 퍼시스턴트 계층: 데이터 처리, DB 연결
    • 도메인 모델 계층: 각 계층 사이에 전달되는 실질적인 비즈니스 객체
  • ORM 매핑 기술 비교
    • SQL Mapper
    • OR Mapping(=ORM)
  • 시큐어 코딩 가이드 종류(입보시에코캡아)
    • 입력데이터 검증 및 표현
      • 보안 약점 종류
        • SQL Injection, XSS, 자원 삽입 등
    • 보안 기능
      • 보안 약점 종류
        • 부적절한 인가, 취약한 암호화 알고리즘, PWD 평문 저장 등
    • 시간 및 상태
      • 보안 약점 종류
        • 종료되지 않은 반복문 또는 재귀 함수, 경쟁 조건 등
    • 에러처리
      • 보안 약점 종류
        • 오류 메시지 정보 노출, 부적절한 예외 처리 등
    • 코드 오류
      • 보안 약점 종류
        • 널 포인트 역참조, 부적절한 자원 해제, 초기화되지 않은 변수 사용 등
    • 캡슐화
      • 보안 약점 종류
        • 잘못된 세션에 의한 정보 노출, 잘못된 접근 지정자 등
    • API 오용
      • 보안 약점 종류
        • DNS에 의존한 보안 결정, 취약한 API 사용
  • 배치 프로그램
    • 개념
      • 데이터를 일괄적으로 모아서 처리하는 대량의 작업을 처리
    • 배치 프로그램의 필수 요소
      • 대용량 데이터
      • 자동화
      • 견고함
      • 안정성
      • 성능
  • EAI(Enterprise Application Integration)
    • 개념
      • 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
    • EAI 구축유형
      • Point to Point
      • Hub & Spoke
      • Message Bus (ESB 방식)
      • Hybrid
  • 인터페이스 연계 기술 - Web Service
    • WSDL
      • 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술
    • UDDI
      • 인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 목록을 등록하기 위한, XML 기반의 규격
    • SOAP
      • 실제 통신하는 프로토콜
      • 즉, HTTP, HTTPS, SMTP 와 같이 뚫려있는 포트를 사용해 XML 기반의 메시지를 네트워크상에서 교환하는 형태의 프로토콜
  • 인터페이스 전송 데이터 - YAML
    • 직렬화 언어
  • 인터페이스 구현 - SOAP 보안 프로토콜
    • SAML(인증/권한관리)
    • XKMS(키관리)
    • XACML(접근제어)
  • 인터페이스 구현 - REST 구성요소
    • 자원, URI
    • 행위, Method
    • 표현: 어떻게 생긴 자원을 넣을 건지(JSON, XML 등)
  • 인터페이스 구현 검증 도구 종류
    • xUnit: 다양한 언어를 지원하는 단위 테스트 프레임 워크
    • STAF: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
    • FitNesse: 웹 기반 테스트 프레임워크
    • NTAF: FitNesse + STAF 로 네이버의 테스트 자동화 프레임워크
    • Selenium: 웹 애플리케이션 테스트 프레임워크
    • watir(Web Application Testing in Ruby): Ruby를 사용하는 애플리케이션 테스트 프레임워크
  • 인터페이스 구현 감시 도구
    • 개념
      • APM(Application Performance Management)
    • 종류
      • Scouter(스카우터)
      • Jennifer(제니퍼)
      • NMon
      • Zabbix
  • 객체지향
    • 객체지향 구성요소(클객메메인속)
      • 클래스
      • 객체
      • 메서드
      • 메시지
      • 인스턴스
      • 속성
    • 객체지향 특징(캡상다추정)
      • 캡슐화
      • 상속
      • 다형성
        • 오버로딩
        • 오버라이딩
      • 추상적
      • 정보은닉
    • 객체지향 설계원칙(Solid)
      • Single Responsbility Principle(단일 책임의 원칙)
        • 한 클래스는 하나의 책임만을 가져야 한다.
      • Open Closed Principle(개방 폐쇄의 원칙)
        • 확장에는 열려있고 수정에는 닫혀있어야 한다.
      • Liskov Substitution Principle(리스코프 치환의 법칙)
        • 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다.
      • Interface Segregation Principle(인터페이스 분리의 법칙)
        • 사용하지 않는 인터페이스면 구현하지 말아야 한다.
      • Dependency Inversion Principle(의존성 역전의 법칙)
        • 의존 관계시 잦은 변화가 있는건 피하고, 변화가 거의 없는 것에 의존하자.
  • 디자인 패턴 - 행위 패턴(행 메인이 템옵 스테 비커 스트 메체)
    • 메디에이터
    • 인터프리터
    • 이터레이터
    • 템플릿 메서드
    • 옵저버
    • 스테이트
    • 비지트
    • 커뮤니케이션
    • 스트레잇지
    • 메멘토
    • 체인 오브 리스펀스빌리티
  • 소프트웨어 테스트의 필요송
    • 오류 발견 관점
    • 오류 예방관점
    • 품질 향상 관점
  • 테스트 오라클
    • 참 오라크: 모든 테스트 케이스의 기대 결과를 확인
    • 샘플링 오라크: 특정한 몇 개의 입력 값에 대해서만 기대하는 결과를 제공하는 오라클
    • 휴리스틱 오라크
    • 일관성 검사 오라클
  • 기초 경로 검사
    • McCabe 계산식은 만들어지는 면 개수 + 1
  • 소프트웨어 테스트 기법 - 테스트 목적
    • 회복 테스트
      • 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트
    • 안전 테스트
      • 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트
    • 강도 테스트(부하 테스트)
      • 과부하 시에도 시스템이 정상적으로 작동하는지 테스트
    • 성능 테스트
    • 구조 테스트
    • 회귀 테스트
      • 변경 또는 수정된 코드로 인해 다른 기능이 잘 작동하는지 테스트
    • 병행 테스트
      • 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트
    • A/B 테스트
      • 새롭게 개선한게 실질적으로 효과가 있는지 테스트
    • 스모크 테스트
      • 테스트 환경을 테스트
  • 소프트웨어 테스트 기법 - 테스트 종류
    • 명세 기반 테스트
    • 구조 기반 테스트
    • 경험 기반 테스트
  • 테스트 커버리지 유형 및 종류
    • 유형
      • 기능 기반 커버리지
      • 라인 커버리지
      • 코드 커버리지
      • 구문 커버리지
      • 조건 커버리지: 개별 조건식에서 true, false가 모두 만족해야한다는 것
      • 결정 커버리지: 결정 포인트에서 true, false가 만족해야하는 것
  • 목 오브젝트
    • 사용자의 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위를 수행하는 객체
  • 통합 테스트 수행 방법의 분류
    • 점증적 방식
      • 하향식 통합 테스트: 스텁
      • 상향식 통합 테스트 : 드라이버
    • 비 점증적 방식: 빅뱅 테스트
  • 애플리케이션 성능 분석 도구
    • JMeter: HTTP,FTP등 다양한 프로토콜을 지원하는 부하 테스트 도구
    • LoadUI: 웹 서비스의 로드 테스트
    • OpenSTA
      • HTTP, HTTPS 포르토콜에 대한 부하 테스트 및 생산품 모니터링 도구
  • 인스펙션 과정
    • 계획 → 사전교육 → 준비 → 인스펙션 회의 → 수정 → 후속조치
  • 소스코드 품질 분석 도구
    • 정적 분석 도구
      • PMD
      • checkstyle
      • SonarQube
      • cppcheck
      • ccm
      • cobertura
    • 동적 분석 도구
      • Avalanche
      • Valgrind
  • 클린코드 작성 원칙(가단의중추)
    • 가독성
    • 단순성
    • 의존성 배제
    • 중복 제거
    • 추상화
  • 제품 품질 국제 표준
    • ISO/IEC 소프트웨어 품질 특성
      • ISO/IEC 9126(기신사효유이)
        • 기능성
        • 신뢰상
        • 사용성
        • 효율성
        • 유지보수성
        • 이식성
      • ISO/IEC 14598 (반재공객)
        • 반복성
        • 재현성
        • 공정성
        • 객관성
      • ISO/IEC 12119: 테스트를 더한 것
      • ISO/IEC 25000: 모두 더한 것
  • 프로세스 품질 국제 표준
    • ISO/IEC 12207(기지조)
      • 기본 생명주기 프로세스
      • 지원 생명주기 프로세스
      • 조직 생명주기 프로세스
    • ISO/IEC 15504(SPICE) - 영국
      • 불안정
      • 수행
      • 관리
      • 확립: 표준 프로세스의 사용
      • 예측: 정략적 관리
      • 최적화
    • CMM
      • 초기
      • 반복
      • 정의
      • 관리
      • 최적화
    • CMMi
      • 초기
      • 관리
      • 정의
      • 정략적 관리
      • 최적화
  • 서비스 관리 국제 표준
    • ISO/IEC 20000
      • 고객에게 제공하는 IT서비스의 수준을 객관적으로 평가
  • DRM의 권리 표현 기술
    • XrML 기술이 대표적
  • DRM 저작권 보호 기술
    • 워터마크
    • 핑거 프린팅
      • 저작권 보호 + 구매자 정보

2회차

  • 서버 프로그램 구현
    • MVC 모델의 계층
      • 프레젠테이션 계층: 사용자 인터페이스
      • 제어 계층: 로직 처리
      • 비즈니스 로직 계층: 업무 처리 방법 구현
      • 퍼시스턴스 계층: 데이터 처리, DB 연결
      • 도메인 모델 계층: 각 계층 사이에 전달되는 실질적인 비즈니스 객체
    • DBMS 접속 기술
      • Socket 통신
      • Vender API
      • JDBC
      • ODBC
    • ORM(Object Relational Mapping)
      • 개념
        • 객체와 관계형 DB의 데이터를 자동으로 매핑해주는 것
      • 종류
        • SQL Mapping
        • OR Mapping
    • OWASP
      • 개념
        • 오픈소스 웹 애플리케이션 보안 프로젝트
    • 시큐어코딩 가이드(입보시에코캡아)
      • 입력데이터 검증 및 표현
        • SQL Injection, XSS, 자원 삽입, 명령 삽입
      • 보안 기능
        • 취약한 암호화 알고리즘 사용, 패스워드, 평문 저장, 부적절한 인가
      • 시간 및 표현
        • 종료되지 않는 반복문 또는 재귀 함수
      • 에러처리
        • 오류 메시지 정보 노출, 부적절한 예외 처리, 오류 상황 대응 부재
      • 코드 오류
        • 널 포인트 역참조, 부적절한 자원 해제, 초기화되지 않은 변수 사용
      • 캡슐화
        • 잘못된 접근 지정자, 시스템 정보 노출
      • API 오용
        • 취약한 API 사용, DNS에 의존한 보안 결정
  • 배치 프로그램
    • 개념
      • 데이터를 일괄적으로 모아서 처리하는 대량의 작업을 처리
    • 배치 프로그램의 필수 요소
      • 대용량 데이터
      • 견고함
      • 안정성
      • 성능
      • 자동화
    • 스케줄 관리 종류
      • Crontab(분, 시, 일, 월, 요일)
      • Quartz Job Scheduler (초, 분, 시, 일, 월, 요일)
      • Spring Batch
  • 인터페이스 시스템
    • 개념
      • 서로 다른 시스템, 장치 사이에서 정보다 신호를 주고받을수 있도록 도움을 주는 시스템
    • 인터페이스 시스템 구성
      • 송신 시스템
      • 중계 시스템
      • 수신 시스템
  • 연계 시스템 분류와 데이터 식별
    • 송수신 데이터 식별
      • 송수신 전문 구성
        • 전문 공통부
        • 전문 개별부
        • 전문 종료부
  • 내.외부 모듈 연계 방식
    • EAI(Enterprise Application Integration)
      • 개념
        • 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
      • EAI 구축 유형
        • Point to Point
        • Hub & Spoke
        • Message Bus(ESB 방식)
          • 버스를 통해 이기종 간의 애플리케이션을 유연하게 통합하는 핵심 플랫폼
        • Hybrid
  • 인터페이스 연계 기술
    • Link: DB에서 제공하는 DB Link
    • DB Connection
      • DB Connection Pool을 생성하고 연계 프로그램에서 해당 DB Connection Pool명을 이용
    • JDBC
    • API/OpenAPI
    • Web Server
      • SOAP
        • 실제 통신 프로토콜
        • HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크상에서 교환하는 형태의 프로토콜
        • SOAP 보안 프로토콜
          • SAML: 인증, 권한 관리
          • XKMS: 키 관리
          • XACML: 접근 제어
      • UDDI
        • 인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 목록을 등록하기 위한 XML 기반의 규격
      • WSDL
        • 웹 서비스 기술 언어 또는 기술된 정의 파일의 총칭으로 XML로 기술
    • HyperLink
    • Socket
  • 인터페이스 전송 데이터
    • XML: 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어
    • JSON
    • YAML: 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어
    • CSV
  • 인터페이스 구현 검증 도구
    • xUnit: 다양한 언어
    • STAF(Software Testing Automation Framework): 서비스 호출 및 컴포넌트 재사용
    • Fitness: 웹 기반 테스트케이스 설계
    • NTAF: 네이버 테스트 자동화 프레임워크
    • Selenium: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
    • watir: ruby
  • 인터페이스 구현 감시 도구
    • APM(Application Performance Management)를 사용해 동작상태를 감시
    • 종류
      • Scouter
      • Jennifer
  • 객체지향 설계원칙(SOLID)
    • 단일 책임의 원칙
    • 개방 폐쇄의 원칙
    • 리스코프 치환의 법칙
    • 인터페이스 분리의 법칙
    • 의존성 역전의 법칙: 자주 변하는 것에 의존하기 보단 자주 변하지 않는 것에 의존해라
  • 디자인 패턴
    • 생성
      • 빌 프로 팩 앱 싱
    • 구조
      • 브데 퍼플 프록 컴 어
    • 행위
      • 메디에이터
      • 인터프리터
      • 이터레이터
      • 템플릿 메서드
      • 옵저버
      • 스테이트
      • 비지터
      • 커뮤니케이션
      • 스트레잇지
      • 메멘토
      • 체인 오브 메서드
  • 소프트웨어 테스트
    • 필요성
      • 오류 발견
      • 오류 예방
      • 품질 향상
    • 테스트 오라클 - 일관성 검사 오라클
      • 애플리케이션 변경이 있을때, 수행 전과 수행 후의 결과 값이 동일한지 확인하는 오라클
    • 소프트웨어 테스트 기법
      • 기초 경로 검사(Macabe): 만들어지는 면 + 1
    • 테스트 기법
      • 블랙박스 테스트
        • 동등 분할 기법: 입력값에 초점
        • 경곗값 분석 기법
        • 원인 효과 그래프 검사
          • 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
        • 오류 예측 검사: 과거의 경험이나 테스터의 감각적으로 테스트하는 기법
        • 비교 검사: 여러 버전의 동일한 테스트 자료로 검사후 비교하는 기법
  • 테스트 목적
    • 회복 테스트: 고의로 실패를 유도 후 정상적으로 복귀하는지 테스트
    • 성능 테스트: 시스템의 응답처리 시간, 처리량, 반응속도를 테스트
    • 강도 테스트: 과부하시에도 작동되는지 검사하는 테스트
    • 안전 테스트: 불법적인 SW가 접근하여 시스템을 파괴하지 못하도록 미리 점검(보안)
    • 구조 테스트: 시스템의 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트
    • 회귀 테스트(Regression)
      • 변경 또는 수정된 코드에 대해 새로운 결함이 발견되는지 한번 더 체크
    • 병행 테스트(Parallel)
      • 기존 시스템과 변경된 시스템에 동일한 데이터를 넣고 함께 테스트
    • A/B 테스트: 실제로 변경한게 효과가 있는지 테스트
    • 스모크 테스트: 테스트 환경을 테스트
  • 테스트 커버리지
    • 유형
      • 기능 기반 커버리지
      • 라인 커버리지
      • 코드 커버리지
  • 결함관리 도구
    • 결함관리 프로세스
      • 에러 발견
      • 에러 등록
      • 에러 분석
      • 결함 확정
      • 결함 할당
      • 결함 조치
      • 결함 조치 검토 및 승인
  • 테스트 자동화 도구
    • 테스트 장치 구성요소
      • 테스트 슈트: 테스트 케이스의 집합
      • 목 오브젝트: 사용자의 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위를 수행하는 객체
  • 성능 분석 도구
    • JMeter: HTTP, FTP 등 다양한 프로토콜을 지원하는 부하 테스트 도구
    • LoadUI: 웹 서비스 로드 테스트
    • OpenSTA: HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구
  • 모니터링 도구
    • Scouter: 단일 뷰 통합/실시간 모니터링
    • NMon: 리눅스 모니터링
    • Zabbix: 웹기반 서버, 서비스, 애플리케이션 모니터링 도구
    • Jennifer: 응답시간, 반환시간, 자원 활용률 등을 모니터링
  • 정적 분석 도구
    • CppCheck
    • CheckStyle
    • ccm
    • cobertura
    • SonarQube
    • PMD
  • 동적 분석 도구
    • Avalanche
    • Valgrind
  • 클린 코드 작성 원칙(가단의중추)
    • 가독성
    • 단순성
    • 의존성 배제
    • 중복성 최소화
    • 추상화
  • 유지보수의 구분
    • 수정 보수: 테스트 단계에서 미처 발견하지 못한 잠재적 오류를 찾아 수정
    • 적응 보수: 운영체제, 하드웨어와 같은 프로그램 환경변화에 맞추어 유지보수
    • 향상 보수: 기존 기능과 다른 새로운 기능을 추가하거나 기존 기능을 개선
    • 예방 보수: 장래에 유지 보수성 또는 신뢰성을 보장하기 위해 선제적으로 하는 유지보수
  • 제품 품질 국제 표준
    • ISO/IEC9126(기신사효유이)
      • 기능성
      • 신뢰성
      • 사용성
      • 효율성
      • 유지보수성
      • 이식성
    • ISO/IEC14598(반재공객)
      • 반복성
      • 재사용성
      • 공정성
      • 객관성
    • ISO/IEC12119: 테스트를 포함
    • ISO/IEC25000: 통합
  • 프로세스 품질 국제 표준
    • ISO/IEC 12207 구성
      • 기본 생명주기 프로세스: 획득, 공급, 개발, 유지보수 등
      • 조직 생명주기 프로세스: 문서화, 형상관리, 품질보증 검증 등
      • 지원 생명주기 프로세스: 관리, 기반구조, 개선, 교육 훈련
    • CMM
      • 초기
      • 반복
      • 정의
      • 관리
      • 최적화
    • CMMI
      • 초기
      • 반복
      • 정의
      • 정량적 관리
      • 최적화
    • SPICE
      • 불안정
      • 수행
      • 관리
      • 확립: 표준 프로세스 사용
      • 예측: 정량적 이해
      • 최적화: 지속적인 개선
  • DRM
    • 권리표현 기술: XrML
    • 권리 표현 종류
      • Render Permission: 컨텐츠 이용
      • Transport Permission: 컨텐츠 양도
      • Derivative Permission: 추출, 변형 권리

3회차

  • 서버 프로그램 구현
    • MVC 모델의 계층
      • 프레젠테이션 계층
        • 사용자 인터페이스
      • 제어 계층
        • 어떤 요청이 들어왔을 때 어떤 로직이 처리해야 하는지를 결정
      • 비즈니스 로직 계층
        • 실제 업무 처리
      • 퍼시스턴트 계층
        • 데이터 처리
      • 도메인 모델 계층
        • 각 계층 사이에 전달되는 실질적인 비즈니스 객체
  • DBMS 접속 기술
    • Socket
    • Vender API
    • JDBC
    • ODBC
  • ORM(Object Relational Mapping)
    • SQL Mapper
    • OR Mapping(=ORM)
  • 시큐어 코딩 가이드
    • 입력 데이터 검증 및 표현
    • 보안 기능
    • 시간 및 표현
    • 에러 처리
    • 코드 오류
    • 캡슐화
    • API 오용
  • 인터페이스 연계 기술
    • Link
      • 데이터베이스에 제공하는 DB Link 객체를 이용
    • DB Connection
      • DB Connection Pool
    • JDBC
      • 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
    • API/OpenAPI
      • 송신 시스템의 애플리케이션 프로그래밍 인터페이스 프로그램
    • Web Server
      • SOAP, UDDI, WSDL
    • Hyper Link
    • Socket
  • 인터페이스 전송 데이터 - YAML
    • 직렬화 언어
  • 인터페이스 구현
    • SOAP 보안 프로토콜
      • SAML(인증/권한관리)
      • XKML(키관리)
      • XACML(접근제어)
  • 인터페이스 보안 기능 적용
    • 애플리케이션 영역
    • 네트워크 영역
      • IPSec
        • AH: 인증, 무결성
        • ESP: 인증, 무결성, 기밀성
        • IKE: 키교환
      • SSL
      • S-HTTP
    • 데이터베이스 영역
  • 인터페이스 구현 검증 도구
    • xUnit: 다양한 언어를 지원하는 단위 테스트 프레임워크
    • STAF: 컴포넌트 재사용
    • Fitness: 웹 기반 테스케이스
    • NTAF: STAF + Fitness, 네이버
    • Selenium: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
    • watir: Ruby
  • 인터페이스 구현 감시 도구
    • APM을 사용해 동작상태 감시
    • Scouter
    • Jennifer
  • 테스트 목적(헷갈리는 것만)
    • A/B 테스트: 변경된 것이 실질적으로 효과가 있는지 테스트
    • 스모크 테스트: 테스트 환경 기반을 테스트
  • 애플리케이션 성능 분석 도구
    • JMeter
      • HTTP, FTP등 다양한 프로토콜을 지원하는 부하 테스트 도구
    • LoadUI
      • 웹 서비스의 로드 테스트
    • OpenSTA
      • HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구
  • 애플리케이션 성능 분석 - 모니터링 도구
    • Scouter
      • 단일 뷰 통합/실시간 모니터링
    • NMon
      • 리눅스 서버 자원에 대한 모니터링 도구
    • Zabbix
      • 웹 기반 서버, 서비스, 애플리케이션 모니터링 도구
    • Jennifer
      • 애플리케이션에서 서버로 유입되는 트랜잭션 수량, 처리시간, 응답시간, 자원 활용률 등을 모니터링
  • 소스 코드 품질 분석 도구
    • 정적 분석 도구
      • CheckStyle
      • PMD
      • CppCheck
      • Cobertura
      • SonarQube
      • ccm
    • 동적 분석 도구
      • Avalanche
      • Valgrind
  • 클린 코드 작성 원칙
    • 가독성
    • 단순성
    • 의존성 배제
    • 중복 제거
    • 추상화
  • 유지보수 구분
    • 수정 보수: 미처발견하지 못한걸 수정하며 유지보수
    • 적응 보수: 환경변화에 맞추기 위한 유지보수
    • 향상 보수: 새로우 기능 추가 및 기존 기능 개선
    • 예방 보수: 장래의 유지보수성을 보장하기 위해 선제적으로 유지보수
  • 제품 품질 국제 표준
    • ISO/IEC 9126(기신사효유이)
    • ISO/IEC 14598(반재공객 )
      • 반복성
      • 재현성
      • 공정성
      • 객관성
    • ISO/IEC 12119: 테스트
    • ISO/IEC 25000: 통합
  • 프로세스 품질 국제 표준
    • ISO/IEC 12207
      • 생명주기 프로세스(기조지)
        • 기본 생명주기 프로세스
        • 조직 생명주기 프로세스
        • 지원 생명주기 프로세스
    • CMM
      • 초기
      • 반복
      • 정의
      • 관리
      • 최적화
    • CMMi
      • 초기
      • 관리
      • 정의
      • 정량적관리
      • 최적화
    • SPICE (ISO/IEC 15504)
      • 불안정
      • 수행
      • 관리
      • 확립
      • 예층
      • 최적화
  • 서비스 관리 국제 표준
    • ISO/IEC 20000
      • IT 서비스의 수준을 객관적으로 평가
  • DRM
    • 권리 표현 기술: XrML 사용