빙응의 공부 블로그

[정처기] 실기 요점 정리 1~6장 본문

정처기

[정처기] 실기 요점 정리 1~6장

빙응이 2024. 4. 19. 18:20

📝1장 요구사항 확인

소프트웨어생명주기 : 소프트웨어를 개발하기 위한 과정을 단계별로 나눈 것

  1. 폭포수 모형 : 고전적 생명 주기 모형
  2. 프로토타입 모형 : 견본품 제작을 통해 최종작품 예상하는 것
  3. 나선형 모형 : 계획수립 - 위험분석-개발및검증-고객평가(반복)
  4. 애자일 모형 :
    1. Scrum : 팀이 중심이 되어 개발 효율성을 높임
      1. 스프린트계획회의 - 스프린트 -일일스크럼회의 -스프린트 검토 회의- 스프린트 회고
    2. XP  핵심가치 : 의사소통/단순성/용기/존중/피드백
      1. 실천 방법 : Pair Programming, Collective Ownership, TDD, Whole Team, Continuous integragion

소프트웨어 공학: 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문

요구사항의 유형 : 기능 요구사항/ 비기능 요구사항/사용자 요구사항/ 시스템 요구사항 

요구사항개발 프로세스 : 도출 - 분석 - 명세-확인

요구공학: 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문

요구사항명세기법

  1. 정형명세기법 : 수학적기호
  2. 비정형명세기법 : 서술/ 다이어 그램

요구사항분석 : 요구사항을 이해하고 문서화하는 활동

  1. 구조적 분석 기법 : DFD / DD/ 소단위명세서/ 개체 관계도/ 상태 전이도
  2. 자료흐름도 : 프로세스/자료흐름/ 자료저장소/ 단말 
  3. 자료 사전 : = / + / () / [] / {} / * *

요구사항분석용 CASE : 요구사항 자동 분석 및 명세서 기술 개발 도구 

  1. SADT : Souft Tech 사에서 개발 / 블록 다이어그램 채택
  2. SREM : TRW 사에서 개발 / 실시간 처리 소프트웨어 시스템에 사용
  3. PSL/PSA : 미시간 대학에서 개발
  4. TAGS : 통합 자동화 도구

HIPO : 시스템 실행과정을 입력/처리/출력의 기능으로 표현한 하향식 기법(가시적 도표/ 총체적 도표/ 세부적 도표)

UML : 의사소통을 위한 객체지향 모델링 언어 / OMG 표준 지정/ 구성요소 : 사물, 관계, 다이어그램

  1. 사물 : 구조사물/ 행동사물/ 그룹사물/ 주해사물 
  2. 관계
    1. 연관관계
    2. 집합관계
    3. 포함관계
    4. 일반화관계
    5. 의존관계
    6. 실체화관계
  3. 다이어그램 
    1. 구조적 다이어그램
      1. 클래스 다이어그램 : 클래스 속성, 클래스 관계 표현
      2. 객체 다이어그램 : 객체 사이의 관계 표현/ 럼바우 모델의 객체 모델링에 서용
      3. 컴포넌트 다이어그램 : 인터페이스 표현 / 구현 단계
      4. 배치 다이어그램 : 물리적 위치 표현/ 구현 단계
      5. 패키지 다이어그램 : 그룹화한 패키지 관계 표현
    2. 행위 다이어그램
      1.  유스케이스 다이어그램 : 사용자의 요구 분석/ 기능 모델링
      2. 시퀀스 다이어그램 : 주고받는 메시지 표현
      3. 커뮤니케이션 다이어그램 : 객체간의 연관관계 표현
      4. 상태 다이어그램 : 상태 변화 표현 / 럼바우 동적 모델링에 사용
      5. 활동 다이어그램 : 처리 흐름 순서 표현
      6. 상호작용 다이어그램 : 제어 흐름 표현
  4. 스테레오 타입 : include/ extends/ interface / exception / constructor <<>>

소프트웨어개발방법론 : 소프트웨어 개발, 유지보수에 필요한 각종 기법 및 도구를 정리하여 표준화한 것

  1. 구조적 방법론 : 타당성검토 - 계획 - 요구사항 - 설계 - 구현 - 시험 - 운영/유지보수
  2. 정보공학 방법론 : 계획,분석,설계,구축에 정형화된 기법들을 통합하는 자료 중심의 방법론
  3. 객체지향 방법론
    1. 구성요소 : 객체/ 클래스 메시지
    2. 기본원칙 : 캡슐화 / 정보은닉 / 추상화 / 상속성 / 다형성
  4. 컴포넌트기반  방법론 : 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법론

소프트웨어재사용 : 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것

소프트웨어재공학 : 기존 시스템에 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것

비용산정기법

  1. 하향식 비용 산정
    1. 전문가 감정 기법 : 2명 이상의 전문가에게 비용 산정의뢰 
    2. 델파이 기법 : 많은 전문가와 1명의 중재자를 통해 비용 산정
  2. 상향식 비용 산정
    1. LOC : 코드 라인 수의 비관치, 낙관치, 기대치를 측정
    2. Effort Per Task : 각 기능에 필요한 노력을 단계별로 산정
    3. 수학적 산정기법
      1. COCOMO : 보헴이 개발/ 개발 유형 : Organic, Semi-Detached, Embedded
      2. Putname : 전 과정 동안에 사용될 노력 분포를 예측
      3. 기능 점수 : 알브레히트, 기능을 증대시키는 요인별로 산정

프로젝트 일정 계획

  1. WBS : 계측적 업무 구조표
  2. PERT : 전체 작업의 상호 관계를 표시하는 네트워크
  3. CPM : 작업에 필요한 소요 시간을 예측
  4. 간트차트 : 작업 일정을 막대 도표로 표시 

소프트웨어 개발 표준 

  1. ISO/IEC 12207 : ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
  2. CMMI : 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
    1. 초기 / 관리 / 정의/ 정략적 관리 / 최적화
  3. SPICE : 소프트웨어 품질 및 생산성 향상을 위한 프로세스 평가 및 개선하는 국제 표준
    1. 불완전 / 수행/ 관리 / 확립 / 예측 / 최적화

소프트웨어 개발 프레임워크 : 소프트웨어 개발에 사용되는 구성요소와 아키텍처를 일반화, 반제품화

  1. 종류 : 스프링, 전자정부, 닷넷
  2. 특성 : 모듈화 / 제어의 역전/ 재사용성/ 확장성

📝2장 데이터입출력 구현

데이터베이스 개요

  1. DBMS : 사용자 요구에 따라 데이터베이스를 관리하는 소프트웨어 / 기능 : 정의, 조작, 제어
  2. 데이터의 독립성 : 논리적 독립성 / 물리적 독립성
  3. 스키마 : 데이터베이스 구조와 제약조건에 관한 전반적인 명세를 기술한 것 
    1. 외부 스키마 : 데이터베이스의 논리적 구조를 정의한 것 ( 사용자 사용 입장)
    2. 개념 스키마 : 데이터를 통합한 조직 전체의 데이터베이스
    3. 내부 스키마 : 물리적 저장장치 입장에서 본 데이터베이스 구조

데이터베이스 설계 순서 : 요구조건 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현 

  1. 개념적 설계 : 현실 세계에 대한 인식을 추상적인 개념으로 표현하는 과정 / 트랜잭션 모델링 / E-R 다이어그램
  2. 논리적 설계 : 특정 DBMS를 지원하는 논리적 자료 구조로 변환하는 과정 / 트랜잭션 인터페이스
  3. 물리적 설계 : 물리적 구조의 데이터로 변환하는 과정

데이터 모델 : 현실 세계의 정보들을 체계적으로 표현한 개념적 모형

데이터 모델 구성요소 : 개체 / 속성 / 관계

  1. 개체 : 개념이나 정보 단위 같은 현실 세계의 대상
  2. 속성 : 데이터베이스를 구성하는 가장 작은 논리 단위 
  3. 관계 : 개체와 개체 사이의 논리적 연결

데이터 모델 표시 요소 : 구조 / 연산 / 제약조건 

E - R 모델 : 현실 세계의 무질서한 데이터를 논리 데이터로 표현하기 위한 방법

관계형데이터베이스 : 2차원 표를 이용하여 데이터 상호관계를 정의하는 데이터베이스

  1. 튜플 == 카디널리티 
  2. 속성 == 디그리
  3. 도메인 : 같은 타입의 원자값들의 집합

관계형데이터베이스의 키 

  1. 후보키 Candidate Key : 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합 / 유일성 + 최소성
  2. 기본키 Primary Key : 후보키 중에서 특별히 선정된 주키/ 중복과 null 불가
  3. 대체키 Alternate Key : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
  4. 슈퍼키 Super Key : 유일성을 보장하며 최소성을 보장하지 않는다.
  5. 외래키 Foreign Key : 다른 릴레이션의 기본키를 참조하는 속성들의 집합 

무결성 : 데이터베이스에 저장된 데이터 값과 현실 세계의 실제 값이 일치하는 정확성을 의미

  • 종류  : 개체 무결성/ 참조 무결성/ 도메인 무결성/ 사용자 정의 무결성

관계대수 : 언하는 정보를 검색하기 위한 절차적인 언어 

  1. 순수관계연산자
    1. Select : 선택 조건 / 튜플
    2. Project : 새로운 릴레이션
    3. Join : 교차곱
    4. Division : 선택 속성 제외 속성 구하는 연산 
  2. 일반집합 연산자
    1. 합집합 UNION
    2. 교집합 INTERSECTION
    3. 차집합 DIFFERENCE
    4. 교차곱 CARTESIANPRODUCT

관계해석 : 관계 데이터를 연산을 표현하는 방법으로 비절차적이다 / 종류 : 튜플 , 도메인

이상(Anomaly) : 테이블의 중복이 발생하여 이로 인해 발생하는 문제(삽입, 삭제, 갱신)

정규화: 테이블 속성들의 상호 종속 관계를 이용하여 테이블을 무손실 분해하는 과정

  1. 1정규화 : 도메인 원자값
  2. 2정규화 : 부분적 함수 종속 제거 
  3. 3정규화 : 이행적 함수 종속 제거 
  4. BCNF : 결정자이면서 후보키가 아닌것 제거
  5. 4정규화 : 다치 종속 제거
  6. 5정규화 : 조인 종속 제거

함수적 종속 종류 : 완전(Full)/ 부분(Partial), 이행적(Transitive)

반정규화 : 정규화된 데이터 모델을 통합, 중복, 분리를 통해 정규화 원칙을 일부러 위배하는 행위

트랜잭션 : 논리적 기능을 수행하기 위한 작업의 단위

  1. 원자성 Atomicity : 데이터베이스에 모두 반영되거나 모두 취소되어야함 
  2. 일관성 : Consistency : 언제나 일관성 잇는 데이터베이스 상태여야 함 
  3. 독립성 : Isolation : 트랜잭션 실행 중에 다른 트랜잭션 연산이 끼어들 수 없다.
  4. 지속성 : Durability : 성공된 트랜잭션 결과는 영구 반영

인덱스 : 데이터 레코드를 빠르게 접근하기 위해 <키값, 포인터> 쌍으로 구성되는 데이터 구조 

  1. 트리 기반 인덱스 
  2. 비트맵 인덱스
  3. 함수 기반 인덱스
  4. 클러스터드인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬 
  5. 넌클러스터드인덱스 : 인덱스 키 값만 정렬되어 있고 데이터는 정렬되어 있지 않음

뷰 : 하나 이상의 기본테이블로부터 유도된 가상 테이블 

클러스터 : 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 방법

파티션 : 대용량의 테이블이나 인덱스를 파티션 단위로 나누는 것

  1. 범위 분할 : 열의 값을 기준으로 분할
  2. 해시 분할 : 해시 함수 적용 값에 따라 분할
  3. 조합 분할

분산데이터베이스의 목표 : 위치 투명성/ 장애 투명성 / 중복 투명성/ 병행 투명성 

데이터베이스 이중화 : 동일한 데이터를 복제하여 관리

  1. Eager기법 : 이중화된 데이터를 모두 즉시 갱신
  2. Lazy기법 

클러스터링 : 두 대 이상의 서브를 하나의 서버처럼 운영하는 기술 / 고가용성 클러스터링

  1. RTO : 비상사태 시점부터 복구되어 가동될 대 까지의 소요 시간
  2. RPO : 비상사태 시점부터 데이터를 복구할 수 있는 기준점

접근통제 3요소 : 접근통제 정책 / 접근통제 매커니즘 / 접근통제 보안모델

접근통제 기술 

  1. 임의접근통제DAC : 사용자의 신원에 따라 접근 권한 부여
  2. 강제접근통제MAC : 주체와 객체의 등급 비교 권한 부여
  3. 역할기반접근통제RBAC : 사용자 역할에 따라 접근 부여 

스토리지 : 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

  1. DAS : 전용 케이블로 직접 연결
  2. NAS : 네트워크를 통해 연결
  3. SAN : 전용 네트워크를 별도 구성

📝3장 통합구현

통합구현 : 송수신 모듈과 중계 모듈 간의 연계를 구현하는 것 

XML : 특수한 목적을 갖는 마크업 언어를 만드는데 사용하는 다목적 마크업언어 

SOAP : 네트워크 상에서 HTTP/HTTPS/SMTP를 이용하여 XML을 교환하기 위한 통신 규약

RESTful : HTTP 자원을 관리하는 데 사용되는 웹 서비스 API 집합

WSDL : 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한  언어

UDDI : 전 세계의 비즈니스 업체 목록에 자신의 정보를 등록하기 위한 XML 기반 규격 

 

📝4장 서버 프로그램 구현

소프트웨어아키텍처 : 소프트웨어 구성하는 요소들 간의 관계를 표현하는 시스템 구조

협약에 의한 설계 : 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것(선행조건-결과조건-불변조건)

아키텍처패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 

  1. 레이어패턴 : 스템을 계층으로 구분하여 구성하는 패턴 
  2. 클라이언트 서버 패턴
  3. 파이프 필터 패턴 
  4. MVC 패턴
  5. 마스터 슬레이브 패턴
  6. 피어투피어 패턴 : 피어 컴포너늩가 클라이언트 ,서버 둘다 수행

객체지향 : 각 요소들을 객체로 만든 후 객체들을 조립하여 소프트웨어를 개발하는 기법

객체지향 구성 요소 : 객체/ 클래스/ 메시지

객체지향 특징 : 캡슐화 / 상속 / 다형성/ 연관성

객체지향분석 OOA : 사용자 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 것

  1. Rumbaugh(럼바우) : 객체모델 - 동적모델 - 기능 모델
    1. 객체 모델링 - 정보모델링이라 불림 / 객체 다이어그램 사용
    2. 동적 모델링 - 상태 다이어그램 사용
    3. 기능 모델링 - 자료 흐름도 사용 
  2. Booch : 미시적, 거시적 개발 프로세스 사용
  3. Jacobson : 유스케이스 사용
  4. Coad와 Yourdon : E-R 다이어그램 사용

객체지향 설계 원칙 SOLID : 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜야 할 원칙

  1. 단일책임원칙(SRP) : 단하나의 책임
  2. 개방폐쇠원칙(OCP) : 코드 변경 없이 기능 추가
  3. 리스코프치환법칙(LSP) : 부모클래스 기능을 자식클래스로 사용 가능
  4. 인터페이스분리원칙(ISP) : 자신 외 인터페이스와 의존관계 X
  5. 의존역전원칙(DIP) : 추상 클래스에 의존 

결합도 : 모듈 간에 상호 의존 정도/ 낮으면 좋음

  1. 내용 결합도 (Content Coupling) : 내부 기능 및 내부 자료 직접 참조
  2. 공통 결합도 (Common Coupling) : 공유되는 공통 데이터 영역 사용
  3. 외부 결합도 (External Coupling) : 외부의 다른 모듈에서 참조
  4. 제어 결합도 (Control Coupling) : 논리적 흐름을 제어하기 위해 제어 신호 전달
  5. 스탬프 결합도 (Stamp Coupling) : 배열이나 레코드 등 자료 구조 전달
  6. 자료 결합도 (Data Coupling) : 자료 요소로만 구성될 때 

응집도 : 모듈의 내부 요소들이 서로 관련되어있는 정도/ 강하면 좋음

  1. 기능적응집도 (Functional Cohesion) : 기능 요소들이 단일 문제와 관련
  2. 순차적응집도 (Sequential Cohesion) : 출력데이터를 다음 입력데이터로 사용
  3. 교환적응집도 (Communication Cohesion) : 동일한 입출력 사용
  4. 절차적응집도 (Procedural Cohesion) : 기능을 순차적을 수행
  5. 시간적응집도 (Temporl Cohesion)
  6. 논리적응집도 (Logical Cohesion) : 유사한 성격을 모음\
  7. 우연적응집도 (Coincidental Conhesion) 

IPC : 통신 방식을 구현하기 위해 사용되는 프로그래밍 인터페이스 집합

  1. Shared Memory 
  2. Socket
  3. Semaphores
  4. Pipes & named pipes
  5. Message Queueing

코드 : 자료의 분류, 조합, 집계 ,추출을 용이하게 하기위한 기호

코드의 주요기능 : 식별 / 분류 / 배열 / 표준화 / 간소화

  1. 순차 코드
  2. 블록 코드 
  3. 10진 코드
  4. 그룹 분류 코드
  5. 연상 코드
  6. 표의 숫자 코드

디자인패턴 : 모듈간의 관계 및 인터페이스 설계 시 참조할 수 있는 해결 방식 (생성/구조/행위)

생성패턴

  1. 추상팩토리 Abstract Factory : 해결방식 추상적 표현
  2. 빌더 Builder: 인스턴스 건축, 조합
  3. 팩토리 메소드 Factory Method: 서브 클래스 캡슐화 및 가상 생성자 패턴
  4. 프로토타입 Prototype: 복제
  5. 싱글톤 Singleton: 1개의 객체만 참조 

구조패턴 

  1. 어댑터 Adapter : 호환성 변환
  2. 브리지 Bridge : 구현부와 추상층을 분리 
  3. 컴포지트 Composite : 복합 객체와 단일 객체를 모두 다루기 위해 사용 
  4. 데코레이터 Decorator : 객체간의 결합으로 능동적 확장
  5. 퍼싸드 Facade : 서브클래스 상위에 인터페이스 구성
  6. 플라이웨스트 Flyseight : 생성하지 않고 공유
  7. 프록시 Proxy : 객체 사이 연결 인터페이스, 대리자라고도 함 

행위패턴

  1. 책임연쇄 Chain of Responsibility : 객체 고리로 엮어 수행 못하면 다음 객체로 이동
  2. 커맨드 Command : 요청을 로그로 남김
  3. 인터프리터 Interpreter : 언어 문법 표현 정의
  4. 반복자 Iterator : 접근 잦은 객체에 동일 인터페이스 제공
  5. 중재자 Mediator : 복잡한 상호작용을 캡슐화
  6. 메멘토 Memento : 객체의 내부 상태를 객체화하여 특정 위치로 돌아갈 수 잇음
  7. 옵서버 Observer : 객체 상태 변화 전달
  8. 상태 State : 객체 상태에 따라 다르게 처리할 때 사용
  9. 전략 Strategy : 동일 계열 알고리즘 캡슐화
  10. 템플릿 메소드 Template Method : 상위에서 골격을 정의하고 하위 클래스에서 세부 처리 구체화
  11. 방문자 Visitor : 처리 기능을 분리 

통합개발환경 IDE : 개발에 필요한 환경 등 다양한 툴을 하나의 인터페이스로 통합 제공 

배치프로그램 : 여러 작업들을 미리 정해진 순서에 따라 일괄 처리 

 

📝5장 인터페이스 구현

인터페이스 요구사항 검증 : 요구사항이 명세서에 정확하게 기술되었는지 검토하는 기준

요구사항검증방법

  1. 요구사항검토
    1. 동료검토
    2. 워크스루 : 회의전 미리 배포하여 사전 검토 방식
    3. 인스펙션 : 전문가들이 검토
  2. 프로토타이핑
  3. 테스트설계
  4. CASE도구활용

미들웨어 : 운영체제와 응용 프로그램 사이에서 서비스를 제공하는 소프트웨어

  • DB 
  • RPC : 원격 프로시저 호출
  • MOM : 비동기형 메시지 전달
  • TP-Monitor : 트랜잭션 처리, 감시 미들웨어
  • ORB: 코바 표준 스펙 구현
  • WAS : 동적 컨텐츠 처리 

모듈 연계 : 내부 모듈 간 데이터 교환을 위해 관계를 설정하는 것 

  1. EAI : 기업 내 각종 플랫폼 간 상호 연동 기능 
    1. Point-to-Point
    2. Hub & Spoke
    3. Message bus
    4. Hybrid
  2. ESB : 범용 표준 기반의 인터페이스를 제공하는 솔루션
  3. Web Service : 네트워크 정보를 표준화된 서비스 형태로 만들어 공유
    1. SOAP : HTTP, HTTPS, SMTP 등 XML 기반 메시지 교환 프로토콜
    2. UDDI : WSDL을 등록하여 접근
    3. WSDL : 웹 서비스 관련 프로토콜 표준 방법을 기술

JSON : 데이터 객체를 속성과 값의 쌍 형태로 표현하는 개방형 표준 포멧

AJAX : 클라이언트 서버 간에 XML 데이터를 주고받는 비동기 통신 기술 

인터페이스 보안 기능

  1. 네트워크 영역 : 스니핑 예방(IPSec, SSL, S-HTTP)
    1. IPSec : 네트워크 계층에서 데이터 변조 방지, 은닉 기능 제공
    2. SSL : TCP/IP 계층과 애플리케이션 계층사이에 인증, 암호화, 무결성 보장
    3. S-HTTP : 클라이언트 서버 간 메시지 암호화 프로토콜 

데이터 무결성 검사도구(Tripwire, AIDE, Samhain, Claymore, Slipwire, Fcheck)

인터페이스 구현 검증 도구

  1. xUnit : 단위 테스트 프레임워크
  2. STAF : 분산 소프트웨어, 데몬 사용
  3. FitNesse : 웹기반 테스트 프레임워크
  4. NTAF : NAVER의 테스트 자동화 프레임워크
  5. Seleninm : 웹 애플리케이션 테스트 프레임워크
  6. Watir : Ruby 사용 테스트 프레임 워크

APM : 애플리케이션 성능 관리를 위해 다양한 모니터링 기능 제공 도구 

  1. 리소스 방식 : Nagios, Zabbix, Cacti
  2. 엔드투엔드 방식 : VisualVM, 스카우터, 제니퍼 

📝6장 화면설계

사용자 인터페이스  UI : 사용자와 시스템 간 상호작용이 이뤄지도록 도와주는 소프트웨어

  1. CLI : 명령과 출력이 텍스트 형태로 이뤄짐
  2. GUI : 아이콘이나 메뉴 그래픽 환경의 인터페이스
  3. NUI : 사용자 움직임으로 조작 

사용자 인터페이스 기본 원칙

  1. 직관성 : 누구나 쉽게 이해
  2. 유효성 : 사용자 목적을 완벽하게 달성하게 함 
  3. 학습성 : 쉽게 학습 가능
  4. 유연성 : 사용자의 요구사항을 최대한 수용하고 실수 최소화

UI 설계 도구

  1. 와이어프레임
  2. 목업
  3. 스토리보드
  4. 프로토타입
  5. 유스케이스 

품질요구사항 

  1. ISO/IEC 9126 : 소프트웨어 품질 특성 국제 표준
  2. ISO/IEC 25010 : 9126 + 호환성, 보안성
  3. ISO/IEC 12119 : 패키지 소프트웨어 일반 국제 표준
  4. ISO/IEC 14598 : 평가 필요 절차 생명주기 규정 표준

HCI : 사람이 시스템을 보다 편리하고 안전하게 사용할 수 있도록 연구하는 것

UX : 사용자의 경험(주관성/정황성/총체성)