블랙박스 테스트 [동경원오비]
동치 분할 검사: 입력 자료에 초점
경계 값 분석: 경계 값을 테스트케이스로 선정
원인-효과 그래프 검사: 데이터 간 관계와 상황을 분석한 다음 효용성 높은 테스트케이스를 선정
오류 예측 검사: 과거의 경험, 확인자의 감각
비교 검사: 동일한 테스트 자료 제공해 동일한 결과 출력되는지 테스트
형상관리 [식통감기제]: 소프트웨어 개발 과정에서 변경사항 관리하기 위해 개발된 일련의 활동
형상 식별: 관리 대상에 이름, 관리번호를 부여하고 계층 구조로 나누어 수정, 추적 용이하도록 하는 것
형상 통제: 형상 항목 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영되도록 조정하는 작업
형상 감사: 기준선 무결성 평가하기 위해 확인, 검증, 검열 과정을 통해 승인하는 것
형상 기록: 식별, 통제, 감사 작업의 결과를 기록하고 보고서 작성하는 것
버전 제어: 유지보수 과정에서 생성된 다른 버전의 형상항목을 관리하고, 이를 위해 특정 절차와 도구를 결합하는 것
UI 설계원칙 [직유학연]
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다는 설계원칙
유효성: 사용자의 목적을 정확하게 달성
학습성: 누구나 쉽게 배울 수 있어야함
유연성: 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야함.
RTO(목표 복구 시간): 업무 중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간
RPO(목표 복구 지점): 업무가 복구되어 다시 정상 가동되는 시점
웹서비스 구성
SOAP: 네트워크 상에서 HTTP, HTTPS, SMPT 등을 사용해 XML 기반 메시지를 네트워크 상에서 교환하는 프로토콜
UDDI: WSDL을 등록하여 서비스와 서비스 제공자를 검색하고 접근하는 데 사용됨
WSDL: 웹서비스, 서비스 제공 위치, 프로토콜 등 상세정보를 XML 형식으로 구현
프로토콜: 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약
파티션: 대용량의 테이블이나 인덱스를 작은 논리적 단위로 나눈 것
트랜잭션: 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
클러스터: 데이터 저장 시 액세스 효율을 높이기 위해 동일 성격의 데이터를 동일 블록에 저장
인덱스: 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
뷰: 사용자에게 접근이 허용된 자료만 제한적으로 보여주기 위해 하나 이상의 기본테이블로부터 유도된 이름을 가지는 가상 테이블
스키마: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
데이터 웨어하우스: 다량의 데이터를 분석하여 정보화하고 이를 효율적으로 사용하도록 한 데이터베이스
데이터 마트: 데이터 웨어하우스로부터 특정 주제로 구축된 소규모 단일 주제의 데이터 웨어하우스
데이터 마이닝: 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구따라 유용하고 가능성 있는 정보를 발견하는 기법
OLAP: 다차원 데이터로부터 통계적인 요약정보를 분석해 의사결정에 활용하는 방식
OLTP: 여러 이용자가 실시간으로 데이터베이스의 단위작업을 처리하는 방식
관계대수: 원하는 정보와 그 정보를 얻기 위해 어떻게 유도하는지를 기술한 절차적인 언어
관계해석: 원하는 정보가 무엇인지를 기술하는 비절차적 언어
프레임워크의 특성 [재모확제]
재사용성: 재사용 가능한 모듈들을 제공함으로써 생산성 향상시킴
모듈화: 캡슐화를 통해 모듈화를 강화하고 설계, 구현 변경에 따른 영향을 최소화함
확장성: 다형성 통한 인터페이스 확장이 가능해 다양한 애플리케이션 개발이 가능
제어의 역흐름: 객체들의 제어 권한을 프레임워크에 넘겨 생산성을 향상시키는 것
절차형 SQL
트리거: 데이터베이스 내부에 저장되어 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 데이터 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 지정한 작업이 자동으로 수행되게하는 절차형 SQL
프로시저: 절차형 SQL을 활용해 특정 기능을 수행하는 일종의 트랜잭션 언어
사용자 정의 함수: SQL을 사용해 일련의 작업을 연속 처리하고 종료 시 단일 값을 반환
커서: 쿼리문 처리 결과가 저장된 메모리 공간을 가리키는 포인터
애플리케이션 검증기준 [코기라]: 코드 커버리지, 기능 기반 커버리지, 라인 커버리지
API
JDBC: Java, DBMS 접속기술, 데이터베이스 접속, 표준API
ODBC: 데이터베이스 접근, 표준 개방형 API, 개발언어 관계X
MyBatis: JDBC 코드 단순화, SQL Mapping 기반 오픈소스 접속 프레임워크
운영체제 성능 평가기준 [반사처신]
반환시간: 작업 의뢰시간부터 처리 완료 시까지 걸린 시간
사용가능도: 사용할 필요가 있을 때 즉시 사용 가능한 정도
처리능력: 일정 시간 내에 시스템이 처리하는 일의 양
신뢰도: 주어진 문제를 정확하게 해결하는 정도
애플리케이션 성능 측정 지표 [처응경자]
애플리케이션 테스트
강도테스트: 과부하시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
회귀테스트: 변경, 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
교착상태 발생 필요충분조건 [상점비환]
상호배제, 점유와 대기, 비선점, 환형 대기
보안요소 [무기가부인]
무결성, 기밀성, 가용성, 부인방지, 인증
접근통제 3요소 [정보커]
접근통제 정책, 접근통제 보안모델, 접근통제 메커니즘
접근통제 기술 [임강역]
임의 접근통제, 강제 접근통제, 역할 기반 접근통제
서버 개발
DTO/VO 구현: 데이터 교환을 위해 사용할 객체를 만드는 과정
SQL 구현: SQL문을 생성하는 과정
DAO 구현: 데이터베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정
Service 구현: 사용자의 요청에 응답하기 위한 로직을 구현하는 과정
Controller 구현: 사용자 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정
가상기억장치
Locality: 프로세스가 실행되는 동안 주기억장치의 일부 페이지만 집중적으로 참조하는 성질
워킹셋: 프로세스가 일정시간동안 자주 참조하는 페이지들의 집합
프로세스: 실행중인 프로그램
스래싱: 프로세스의 처리시간보다 페이지 교체에 소모되는 시간이 더 많아지는 현상
PCB: 운영체제가 PCB에 대한 중요한 정보를 저장해 놓는 곳
스레드: 시스템의 여러 자원을 할당 받아 실행하는 프로그램의 단위, 경량 프로세스
소프트웨어 버전 관리도구: 공유 폴더 방식, 클라이언트/서버 방식, 분산 저장소 방식
페이지 교체 알고리즘
FIFO, OPT, NUR, SCR, LFU, LRU
비선점 스케줄링
FCFS=FIFO 선입선출, SJF 단기 작업 우선, HRN: 대서서, 기한부, 우선순위
선점 스케줄링
선점 우선순위, SRT, RR, 다단계 큐, 다단계 피드백 큐
요구사항 확인 기법 [검프모인]
요구사항 검토, 프로토타이핑, 모델 검증, 인수테스트
요구사항 분석 기법 [분개할 협정]
요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협상, 정형 분석
개체 무결성: 기본키를 구성하는 어떤 속성도 Null 값이나 중복 값을 가질 수 없다는 성질
도메인 무결성: 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
참조 무결성: 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함
배치 스케줄러
스프링 배치: Spring사, 오픈소스 프레임워크
Quartz: 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄처리를 위한 다양한 기능을 제공하는 오픈소스 라이브러리 (Scheduler, Job, JobDetail, Trigger)
Cron: 리눅스의 스케줄러 도구. Cronlab 명령어 통해 작업예약
UI 흐름 설계 컨트롤
콤보 박스, 텍스트 박스, 라디오 박스, 체크 박스
DNS: 도메인 네임 -> IP주소
<TCP/IP 구조> 응전인네
응용 계층 프로토콜: FTP(파일 전송 프로토콜), SMTP(전자 우편 교환), TELNET(머리 떨어진 컴퓨터 접속), SNMP(네트워크 관리 프로토콜), DNS(도메인 네임->IP 주소), HTTP(WWW에서 HTML 문서 송수신하기 위한 표준 프로토콜)
전송 계층 프로토콜: TCP(양방향 연결형 서비스, 신뢰성있는 경로 확립), UDP(비연결형 서비스, 신뢰보다 속도 중요시), RTCP(RTP 패킷 전송 품질 제어)
인터넷 계층 프로토콜: IP(주소지정, 경로설정, 비연결형 데이터그램 방식 사용, 신뢰성X), ICMP(IP와 조합해 통신 중 발생하는 오류처리 등 위한 제어메시지 관리), IGMP(멀티캐스트 그룹 유지), ARP(IP주소->물리적 주소), RARP(물리적주소-> IP주소)
라우팅 프로토콜
RIP: 가장 널리 사용. 소규모 동종의 네트워크 내에서 효율적. 최대 홉수 15
IGRP: 중규모 네트워크
OSPF: 대규모 네트워크. 라우팅 정보 변화 생기면 변화된 정보만 라우터에게 알림. 홉 수 제한X
BGP: 자율 시스템 간 라우팅 프로토콜
이상 [삽삭갱]
삽입 이상: 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
삭제 이상: 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상
갱신 이상: 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
데이터 웨어하우스
(시나공) 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 사용자들이 효율적으로 사용하도록 한 데이터베이스
(수제비) 조직이나 기업체의 중심이 되는 업무시스템에서 모아진 정보를 일관된 스키마로 저장한 저장소
선점 스케줄링
선점 우선순위: 준비상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
SRT: 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 프로세스 스케줄링 알고리즘
라운드 로빈(RR): FCFS 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 시간 할당량 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치됨
다단계 큐(MQ): 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태큐를 사용하는 기법
다단계 피드백 큐(MFQ): 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비 상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법
브룩스의 법칙: 소프트웨어 개발 일정이 지연된다고 해서 새로운 개발 인력을 진행 중인 프로젝트에 투입할 경우 작업 적응 기간과 부작용으로 인해 일정이 더욱 지연된다는 법칙
API 기법: 데이터베이스 암호화 기법 중에서 애플리케이션 레벨에서 암호 모듈을 적용하는 애플리케이션 수정 방식의 암호화 기법
사용성 테스트: 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트
에이징: 프로세스가 자원을 기다리고 있는 시간에 비례하여 우선순위를 부여함으로써 무기한 대기하는 문제를 방지하는 기법
빅데이터: 기존 관리 방법이나 분석체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합
UI: 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어
정규화: 관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스
솔트: 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열
QoS(Quality of Service): 네트워크에서 데이터의 종류에 따른 우선순위에 따라 데이터를 전송하거나 특정 통신을 위한 네트워크 대역폭을 예약하고 일정한 속도로 통신할 수 있도록 하는 기술
BCP: 기업이 재해로 타격을 입은 뒤 업무 운명을 어떻게 복구 재개하는지에 대한 계획
DHCP(Dynamic Host Configuration Protocol): 네트워크 상에서 동적으로 IP 주소 및 기타 구성정보 등을 부여/관리하는 프로토콜
쉘: 운영체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램. 사용자와 운영 체제 내부(커널) 사이의 인터페이스
REPLACE: 데이터 베이스 뷰 속성 중에서 뷰가 이미 존재하는 경우 재생성하는 속성
요구공학: 시스템 요구사항을 도출, 분석, 명세, 검증 및 관리하기 위하여 수행되는 구조화된 활동의 집합
트랜잭션 특성 [ACID]
원자성(Atomicity), 일관성(Consistency), 격리성/독립성/고립성(Isolation), 영속성(Durability)
군집분석: 데이터마이닝에서 각 개체의 유사성을 측정하여 유사성이 높은 대상 집단을 분류하고 집단의 특성을 도출하는 분석 방법
PFF(Page Fault Frequency): 페이지 부재율의 상한과 하한을 정해 직접적으로 페이지 부재율을 예측하고 조절해서 페이지 교체 현상을 줄이는 기법
객체 다이어그램: 클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현하는 다이어그램으로 일련의 메시지들과 시나리오에 수반되는 객체와 클래스를 표현하는 다이어그램
로킹 기법: 트랜잭션이 사용하는 데이터 항목에 대하여 잠금을 설정한 트랜잭션이 해제할 때까지 독점적으로 사용할 수 있게 상호배제 기능을 제공하는 기법
DFD(Data Flow Diagram, 데이터 흐름도): 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림으로, 시스템 분석과 설계에서 매우 유용하게 사용되고 프로세스, 데이터 저장소, 외부 엔티티 등의 구성요소를 가지고 있는 다이어그램
인터프리터: 프로그램 문장을 하나씩 번역하고 실행할 수 있도록 하는 프로그램
JDBC: 자바에서 데이터베이스를 사용할 수 있도록 연결해주는 API
문맥 교환: CPU가 현재 실행하고 있는 프로세스의 문맥 상태를 프로세스 제어블록(PCB)에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업
가상화: 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
미들웨어: 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어
MVC 패턴: 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 패턴
컴포넌트: 특정한 기능을 수행하기 위해 독립적으로 개발되어 보급되는 잘 정의된 인터페이스를 가지며 다른 부품과 조립되어 응용시스템을 구축하기 위해 사용되는 소프트웨어
클라우드 서비스 모델 [SPI]
SaaS(Software as a Service): 클라우드 환경에서 동작하는 응용 프로그램을 클라이언트에게 서비스하는 모델
PaaS(Platform as a Service): 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 서비스로 제공하는 모델
IaaS(Infrastructure as a Service): 서버, 네트워크, 스토리지 등을 가상화하여 필요에 따라 인프라 자원을 사용할 수 있게 만드는 서비스 모델
ITIL(IT Infrastructure Library): IT 서비스 관리 분야에서 전세계적으로 검증 및 적용되는 best practice. IT 서비스관리 프레임워크
RAID: 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술
OLAP: 다차원 데이터로부터 통계적 요약정보를 분석해 의사결정에 활용. 사용자가 정보에 대해 직접 접근해 대화식으로 정보를 분석하고 의사결정에 활용하는 과정
방화벽: 미리 정의된 보안 규칙에 기반하여, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템
가비지 콜렉션: 메모리 관리 기법의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능
기능점수(FP): SW의 규모를 측정 및 예측하는 기법으로써 1979년 미국 IBM의 A에 의해 제안되었다. 최초 SW개발 프로젝트의 규모측정을 위해 고안되었으나, 현재는 SW공학적 접근을 통한 다양한 방법으로 활용되고 있다.
스텁: 다른 프로그래밍 기능을 대리하는 코드. 기존 코드를 흉내 내거나 아직 개발되지 않은 코드를 임시로 대치하는 역할을 수행한다.
xUnit: 자바, C++, .Net 등 다양한 언어를 지원하는 단위 테스트 프레임 워크
DDL: CREATE, ALTER, DROP, TRUNCATE
UDP: TCP와 함께 데이터그램으로 알려진 단문 메시지를 교환하기 위해서 사용된다.
REST: HTTP URI를 통해 자원을 구분하고 POST, GET, PUT, DELETE를 통해 상태를 주고받는 기술
OSPF: 라우팅 프로토콜 중 링크 상태 알고리즘을 사용하며, 토폴로지에 대한 정보가 전체 라우터에 동일하게 유지되는 프로토콜
델파이 기법: 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 비용산정 모델
테스트 오라클: 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법
힌트: 옵티마이저가 비정상적인 실행 계획을 수립 시 액세스 경로 및 조인 순서를 제어할 수 있도록 하기 위한 기법
AJAX: 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법
IaaS: 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
LDAP(Lightweight Directory Access Protocol) 르닾: 사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 개발한 인터넷 프로토콜
노력(인월) = 개발 기간 * 투입 인원 = LOC/1인당 월 평균 생산 코드 라인 수
개발 비용 = 노력 * 단위 비용
개발 기간 = 노력 * 투입 인원
생산성 = LOC/노력
배치 프로그램: 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
테스트 커버리지: 주어진 테스트케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준이며, 테스트의 정확성과 신뢰성을 향상시키는 역할을 한다
브레인스토밍: 말을 꺼내기 쉬운 분위기로 만들어 회의 참석자들이 내놓은 아이디어들을 비판 없이 수용할 수 있도록 하는 회의. 요구사항 도출 단계의 주요 기법
코드 난독화: 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술로, 소스코드 자체를 알아보기 힘들게 바꾸거나 컴파일 후에 생성된 바이너리를 분석하기 힘들게 변조하는 유형으로 크게 구분되는 저작권 크랙 방지 기술
리치 클라리언트: 서버는 클라이언트에서 요청한 소프트웨어의 실행 코드를 스트림 형태로 제공하고, 클라이언트는 서버로부터 스트리밍되는 소프트웨어 코드를 클라이언트 PC의 자원을 이용하여 실행하는 방법으로 소프트웨어의 실행을 클라이언트에서 책임지는 기술을 이르는 용어
BCP(Business Continuity Planning, 비즈니스 연속성 계획): 기업이 재해/재난으로부터 타격을 입은 뒤 업무를 어떻게 복구하는지에 대한 계획. 전산의 단순복구 뿐만 아니라 고객 비즈니스의 지속성을 보장하며, 재해 복구를 포함하는 더 넓은 개념으로 쓰이는 용어
시큐어 코딩: 안전한 소프트웨어 개발을 위해 소스코드 등에 존재할 수 있는 잠재적인 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동
PaaS: 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스로, 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 클라우드 컴퓨팅 유형
SSO: 한 번의 시스템 인증을 통하여 여러 정보시스템에 재인증 절차 없이 접근할 수 있는 통합 로그인 기술
동등 분할 테스트: 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 기법
Little’s law: 시스템에 오랜 시간동안 머물러 있는 고객의 평균 수치는 오랜 시간 동안에 걸친 평균 실제 도착률과 시스템에서 고객이 머문 평균 시간을 곱한 값과 동일하다는 법칙
멜트 다운: 인텔 x86 아키텍처에서 CPU 파이프라인의 비순차 명령 실행 시 발생하는 버그를 악용해서 커널 사용자 영역의 우회를 통해 시스템 메모리에 접근하여 내용을 확인할 수 있는 취약점
CSRF: 공격자가 웹 서버의 취약점을 이용하야 악성 스크립트 구문을 삽입하고, 정상적인 사용자를 감염시켜서 사용자로 하여금 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 함
테일러링: 프로젝트의 특성과 필요에 따라 소프트웨어 개발 프로세스, 기법, 산출물 등을 비즈니스 적으로 또는 기술적인 요구에 맞도록 최적화하는 과정 및 방법론
객체지향 분석 방법론
Rumbaugh 방법 – 객, 동, 기 나눠 수행
Booch 방법 – 미시적/거시적 프로세스 둘 다 씀
Jacobson 방법 – 유스케이스 강조
Coad와 Yourdon 방법 – E-R 다이어그램 사용
Wirfs-Brock 방법 – 분석과 설계 간 구분 없음
Open SAMM: 개방을 원칙으로 소규모, 중규모, 대규모로 점진적인 확대가 가능한 융통성 있는 프레임워크로 설계 리뷰와 코드 리뷰, 그리고 보안 테스팅을 3개의 중요한 검증 활동으로 정의함으로써 이들 활동 간의 연계성을 강조한 방법론
OWASP CLASP: 개념 관점, 역할 기반 관점, 활동 평가 관점, 활동 구현 관점, 취약성 관점 등의 활동 중심, 역할 기반의 프로세스로 구성된 보안 프레임워크로 이미 운영중인 시스템에 적용하기 쉬운 보안 개발방법론
CVE: 미국 비영리회사인 MITRE 사에서 공개적으로 알려진 소프트웨어의 보안 취약점을 표준화한 식별자 목록
CRUD Matrix: 프로세스와 데이터 사이에 관계 의존성을 Create, Read, Update, Delete로 표현한 매트릭스
국부성(Locality) (약): 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부페이지만 집중적으로 참조하는 성질
에이징: 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 기다린 시간에 비례하여 일정 시간이 지나면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당 받도록 하는 기법
APM: 인터페이스 동작 상태를 감시하는 등 애플리케이션의 전반적인 성능 관리를 위해 사용하는 도구로, 데이터베이스와 웹 애플리케이션의 트랜잭션, 변수 값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석할 수 있는 도구
스키마(약): 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
X.25: 데이터 터미널 장치와 데이터 회선 종단장치 간의 인터페이스를 제공하는 프로토콜로, 통신을 원하는 두 단말 장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 절차를 가리키는 용어
정황 시나리오: 사용자의 요구사항을 도출하기 위해 작성하는 것으로, 사용자가 목표를 달성하기 위해 수행하는 방법을 순차적으로 묘사한 것. 요구사항 정의에 사용되며, 개발될 서비스의 모습을 상상하는 첫 번째 단계에 해당한다. 사용자의 관점에서 기능 위주로 육하원칙에 따라 간결하고 명확하게 작성되어야 한다.
접근제어자
Private(-) < default < protected(#) < public(+)
데이터베이스의 논리적 독립성(약): 응용프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않는 성질
접근통제
임의 접근통제: 신원에 따라 접근 권한을 부여하는 방식
강제 접근통제: 주체와 객체의 등급을 비교해 접근 권한을 부여
역할기반 접근통제: 주체와 객체 사이에 역할을 부여해 다른 접근통제의 약점을 보완
RESTful: 최근에 XML 기반의 무겁고 복잡한 구조를 가진 SOAP 대신 상대적으로 가볍게 처리가 가능한 ( )프로토콜과 JSON 기반으로 발전하는 추세이다. ( ) 프로토콜은 HTTP와 REST의 원칙을 사용하여 구현되는 웹 서비스로, HTTP로 자원을 관리하는데 사용되는 웹 서비스의 API의 집합을 의미한다.
예외 처리: 정상적인 실행을 방해하는 조건이나 상태가 발생했을 때, 작성해 놓은 처리 루틴을 수행하도록 하는 것
슬라이딩 윈도우: 확인신호, 즉 수신 통지를 이용하여 송신데이터의 양을 조절하는 흐름제어 기법. 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷의 수만큼 연속적으로 전송하는 방식으로, 한 번에 여러 개의 패킷을 전송할 수 있어 전송 효율이 좋다.
가상기억장치 구현 기법
페이징 기법: 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 적재시켜 실행하는 기법
세그먼테이션 기법: 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
스프린트 회고(약): 스프린트가 끝난 시점이나 일정 주기별로 스프린트 주기를 되돌아보며 정해 놓은 규칙 준수 여부, 개선점 등을 확인하고 기록하는 과정
페어와이즈 테스트(약): 테스트 데이터 값들 간에 최소한 한 번씩을 조합하는 방식. 이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법이다.
메타포어: XP의 기본 원리 중 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
Warm Site: 재해 복구 센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 센터
UDDI(약): WSDL을 등록하여 서비스와 서비스 제공자를 검색하고 접근하는 데 사용됨.
온톨로지(약): 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서
스텁: 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 더미 객체에의 단순 기능에 특정 상태를 가정해서 특정한 값을 리턴하거나 특정 메시지를 출력한다
격리성(약): 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없는 성질
IPS(약): 네트워크에 대한 공격이나 침입을 실시간으로 차단하고 유해트래픽에 대한 조치를 능동적으로 처리하는 시스템
공통 결합도: 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
자료 결합도: 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도
접근 통제 보호 모델
비바(Biba): 무결성을 보장하는 최초의 모델. No Read Down, No Write Up
벨-라파듈라: 미 국방부 지원 보안 모델. 보안 요소 중 기밀성을 강조하여 강제적 정책에 의해 접근통제하는 모델. No Read Up, No Write Down
브로커 패턴(약); 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴으로 컴포넌트 간의 통신을 조정하는 역할을 수행한다.
NAS: 서버와 저장장치를 네트워크로 연결하는 방식으로, 구성 설정이 간편하여 별도의 운영체제를 가진 서버 한 곳에서 파일을 관리하기 때문에 서버 간 스토리지 및 파일 공유가 용이한 스토리지 장치 구성 방식
ARP: 네트워크 계층 프로토콜 중에서 IP 네트워크 상에서 IP주소를 MAC주소로 변환하는 프로토콜
조건 커버리지: 단위테스트로 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 ( )테스트
상태 전이: 개발이 완료된 이후에는 시스템 테스트를 위해서 테스트 대상, 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 실행하는 ( )테스트
DRDoS: 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부가 되는 공격
BCP: 각종 재해로부터 위기 관리를 기반으로 재해복구 등을 통해 비즈니스 연속성을 보장하는 체계
BIA: 장애나 재해로 인한 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
RTO: 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
RPO: 업무 중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실허용지점
DRS: 재해복구계획의 원활한 수행을 지원하기 위해 지속적인 관리체계가 통합된 재해복구센터
DRS 유형 4가지
Mirror Site(실시간 동시 서비스 가능 재해복구센터), Hot Site(주 센터와 동일 수준 자원을 대기 상태로 원격지에 보유하며 동기, 비동기 방식 미러링 통해 최신상태유지), Warm Site(중요성이 높은 자원만 부분적으로 재해복구센터 보유), Cold Site(데이터만 원격지에 보관)
Block: 프로세스 실행상태->대기상태
Wake-up: 프로세스 대기상태->준비상태
리눅스/유닉스 명령어
Uname -a: 시스템의 모든 정보 확인
Uname -r: 운영체제 배포버전 출력
Pwd: 현재 작업중인 디렉토리의 절대 경로 출력
Kill: 특정 PID 프로세스 종료
Grep: 입력으로 전달된 파일의 내용에서 특정 문자열 찾고자 할 때 사용하는 명령어
듀얼스택, 터널링, 주소변환: IPv4->IPv6 변환방법 세가지
(Buffer overflow) 공격은 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로 인해 프로세스의 흐름을 변경시켜서 악성 코드를 실행시키는 공격 기법
공격 유형에는 메모리 영역 중 Local Value나 Return Address가 저장되는 스택 영역에서 발생하는 (Stack Buffer Overflow)공격과 프로그램 실행 시 동적으로 할당되는 힙 영역에서 할당된 버퍼 크기를 초과하는 데이터를 입력하여 공격자가 원하는 임의의 코드를 실행하는 (Heap Buffer Overflow)공격이 있다.
공격 대응방안에는 카라니값을 체크하는 (Stackguard), Global RET을 이용하는 (Stack Shield), ASLR 등이 있다.
CSMA/CD: IEEE802.3 유선 LAN의 반이중 방식에서, 각 단말이 신호 전송 전에 현재 채널이 사용 중인지 체크하여 전송하는 매체 액세스 제어 방식
CSMA/CA: 무선 LAN의 반이중 방식에서, 사전에 가능한 충돌을 회피하는 무선전송 다원접속 방식
릴리즈노트 작성 항목
사용자 영향도- 버전 변경에 따른 최종 사용자 기준의 기능 및 응용프로그램 상의 영향도 기술
면책조항- 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지사항
구조적 방법론: 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론으로 프로세스 중심의 하향식 방법론이다. (나씨-슈나이더만)차트를 사용한다
제품 계열 방법론: 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론으로 임베디드 소프트웨어를 작성하는 데 유용한 방법론이다.
스크럼
백로그: 제품과 프로젝트에 대한 요구사항
스크럼 마스터: 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
TCP 세션 하이재킹: 케빈 미트닉이 사용했던 공격 방법 중 하나로 TCP의 세션 관리 취약점을 이용한 공격기법이다. 대응을 위해서는 비동기화 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지해야 한다.
소단위 명세서: 데이터 흐름도에 나타나 있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서로 요구사항 분석 시에 많이 활용된다
블록체인 기술 중 거래의 안정성을 보장해주는 기술이자 모든 참여자들이 데이터의 적합성을 판단하고 동의하는 과정을 합의 알고리즘이라고 한다.
합의 알고리즘 중 (PoW)는 확률적으로 해답이 어려운 문제를 가장 빨리 해결한 사람에게 블록을 만들 수 있도록 허가하는 합의 알고리즘이고,
(PoS)는 이더리움이 채택할 예정인 알고리즘으로 화폐량을 더 많이 소유하고 있는 승인자가 우선하여 블록을 생성할 수 있는 알고리즘이다
BaaS: 블록체인 개발환경을 클라우드로 서비스하는 개념. 블록체인 네트워크에 노드의 추가 및 제거가 용이. 블록체인의 기본 인프라를 추상화하여 블록체인 응용프로그램을 만들 수 있는 클라우드 컴퓨팅 플랫폼
스마트 계약: 해당 조건 달성 시 제3자의 개입 없이 특정 계약 조건을 자동적으로 실행하기 위한 기술로 블록체인 2.0에 사용되는 기술
데브옵스: 소프트웨어 개발 조직와 운영 조직 간의 상호 의존적 대응이며, 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다
SHA-256: 안전한 해시 알고리즘의 한 종류로서 256비트의 해시 값을 생성하고, 출력 속도가 빠르다는 장점을 갖고 있고, 단방향성의 성질을 띄고 있는 암호화 방법으로 복호화가 불가능하다.
'etc' 카테고리의 다른 글
[Git] gitmoji 정리 (0) | 2022.03.12 |
---|---|
[Eclipse] PropertiesEditor Unable to read repository 오류 (0) | 2021.12.03 |
42SEOUL 온라인 테스트 후기 및 현재 대기 순위 (0) | 2020.09.12 |
[Pandas] 아나콘다(Anaconda) 판다스 설치하기 (0) | 2020.09.09 |