현행시스템 파악 절차
서비스 지향 아키텍처 SOA(Service Oriented Architecture) : 프로세스 수행을 지원하는 정보 시스템의 구현을 위해 가장 선진화된 소프트웨어 아키텍처로, 서비스 라고 정의되는 분할된 어플리케이션 조각들을 loosely-coupled하게 연결해 하나의 완성된 application을 구현하기 위한 아키텍처다.
요구사항 개발 프로세스
도출 → 분석 → 명세 → 확인
요구사항 분류 | 요구사항이 기능적 요구사항인지 비기능 요구 사항인지 확인한다 |
---|---|
개념 모델링 | 문제 도메인의 개체 들과 그들의 개별관계 및 종속성을 반영한다 |
UML(Unified Modeling Language) 다이어그램 : UML 다이어그램은 통합 모델링 언어를 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌트 관계 등을 그린 도면이다. 사용 이유는 프로그래밍을 단순화시켜 표현하여 의사소통하기 좋고, 대규모 프로젝트 구조의 로드맵을 만들거나 개발을 위한 시스템 구축에 기본을 마련한다.
UML 다이어그램의 종류 : 클래스, 객체, 유스케이스, 상태, 시퀀스, 활동, 통신, 컴포넌트, 배포, 복합체, 교유 개요, 타이밍, 패키지
패키지 다이어그램 : UML 다이어그램의 안에 속하는 다이어그램이다. 폴더 모양의 패키지와 점선으로 표시된 의존관계, import라는 스테레오 타입 표기를 통해 패키지 다이어그램인지 파악한다.
데이터 흐름도 구성요소
구성요소 | 설명 |
---|---|
처리기 | 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정으로 DFD에서는 원(○)으로 표시 |
데이터 흐름 | DFD의 구성요소 들 강의 주고받는 데이터 흐름을 나타내며 DFD에서는 화살표(→)로 표시 |
데이터 저장소 | 데이터가 저장된 장소이고, 평행선(=)으로 표시하며, 평행선 안에서는 데이터 저장소의 이름을 넣음 |
단말 | 프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내고 사각형(□)으로 표시하며, 사각형 안에는 외부 엔티티의 이름을 넣음 |
자료사전 : 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지 알려주기 위해 용어의 정의를 조정하고 취합하고 문서로 명확히 하기 위해 만들어짐. 자요의 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들간의 관계, 관계 값 , 범위, 단위들을 구체적으로 명시한다.
애자일 방법론 : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 싯템을 개발할 수 있는 신속 적응적 경량 개발방법론, 개발 기간이 짧고 신속하며 워터폴에 대비되는 방법론
스크럼 : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론. 주요요소에는 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트가 있다.
번다운 차트 : 백로그 대비 시간을 그래픽적으로 표현한 차트
요구사항의 기술적 타당성 검토
성능 및 용량 적절성 → 시스템 간 상호 운용성 → it시장 성숙도 및 트렌드 부합성 → 기술적 위험 분석
| 성능 및 용량 | 요구사항을 만족시키기 위한 분석 모델에 따라 시스템을 구현할 때 요구되는 시스템의 자원을 식별한다.
과거 경험치를 바탕으로 필요시 프로젝트를 재조정 후 성능 관련 비기능 사항과 비교하여 적정성 여부를 판단한다. |
| --- | --- |
| 시스템간 상호 운용성 | 다른 목적을 가지고 있는 시스템들이 상 호 간 정보 및 서비스를 교환하면서 효과적으로 운용될 수 있는 시스템의 능력
분석모델을 이용하여 보다 구체적으로 시스템 간 상호 정보 및 서비스 교환이 가능한자 검토한다. |
| 시장 성숙도 및 트랜드 부합성 | 분석 모델이 과거의 문제를 해결하고 많이 사용되는 트렌드에 부합하는지 확인한다. |
| 기술적 위험 분석 | 분석 모델을 구현하기 위해 특정 업체 기술, 특허 , 라이선스에 의존해야 하는지 확인한다. |
기술적 위험 분석
| 의존성 | 특허 및 라이선스에 따른 문제
특정 업체 기술에 의존 |
| --- | --- |
| 복잡성 | 기술의 안정성, 시장성, 개발성을 저해하는 모든 요소 |
| 검증 여부 | 외부 지원 불가능
적용 기술에 대한 조직 내 무경험 |
분석 모델 검증
유스케이스 모델 검증 → 개념수준 분석 클래스 검증 → 분석 클래스 검증
요구사항 명세 기법
주요기법 | 설명 |
---|---|
비정형 명세 기법 | 사용자의 요구를 표현할 떄 자연어를 기반으로 서술하는 기법 |
사용자와 개발자의 이해가 용이
명확성 및 검증에 문제 |
| 정형 명세 기법 | 사용자의 요구를 표현할 때 수학적인 원리와 표기법으로 서술
Z-스키마, Petri Nets, 상태 차트 활용
표현이 간결, 명확성 및 검증이 용이
기법의 이해가 어려움 |
데이터 모델링 : 데이터 관점으로 개념 모델링을 통해 개발 범위를 파악하고, 실체와 관계를 중심으로 명확하고 체계적으로 표현하여 문서화하는 기법
데이터 모델링의 목적 : 사용자, 설계자, 개발자 간의 효율적인 의사소통 수단을 제공한다, 데이터 체계 구축을 통한 고품질 소프트웨어와 유지보수 비용 감소 효과를 기대할 수 있다
데이터 모델링 특성
용이성 | 데이터 중심 분석을 통한 업무 흐름 파악에 용이하다 |
---|---|
무결성 | 데이터 무결성을 보장할 수 있다 |
일관성 | 데이터 공유를 통해 중복을 제거하고 일관된 정보를 제공받을 수 있다. |
모델링 프로세스 : 요구사항 분석 → 개념 → 논리→ 물리
데이터 모델링 프로세스 : 개념 데이터 모델링(개체와 개체들 간의 관계에서 E-R 다이어그램을 만드는 과정) → 논리 데이터 모델링(모든 업무 데이터를 정규화한다) → 물리 데이터 모델링(설계와 성능을 고려한 조정을 수행한다, 관계 스키마 모델의 물리적 구조를 정의하고 구현) → 데이터 베이스 구축
논리 데이터 모델링의 속성 : 개체, 속성, 관계
정규화 : 관계형 데이터 베이스 설계에서 중복성을 최소화하고 정보의 일관성을 나타내기 위한 방법
정규화 수준에 따른
장점 | 단점 |
---|
| 유연한 데이터 구축 가능
데이터의 정확성 증가 | 물리적 접근이 복잡
길이가 짧은 데이터 생성으로 과도한 조인 발생 |
이상현상(데이터 베이스에서 데이터 중복성으로 인해 발생하는 현상)
삽입이상, 갱신이상, 삭제 이상
제 1 정규화 : 엔티티에서 하나의 속성이 복수개의 값을 갖도록 설계되어 있을때, 하나의 속성이 단일 값을 갖도록 설계를 변경하는 과정
제 2 정규화 : 주식별자가 아닌 속성들 중에 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 과정
제 3 정규화 : 주식별자가 아닌 속성들 중에서 종속관계에 잇는 속성을 찾아 제거하는 과정
제 4 정규화 : 주식별자가 다가종속되는 속성을 두가지 이상 두지 않음
단계 | 조건 | 설명 |
---|---|---|
1차 정규형 | 도메인 원자값 | 릴레이션에 속한 모든 속성의 도메인이 더 이상 분해되지 않는 분자 값 으로 만 구성되어 있을때 |
2차 정규형 | 부분 함수 종속제거 | 릴레이션이 제 1 정규형에 속하고 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제2정규형 |
3차 정규형 | 이행 함수 종속 제거 | 릴레이션이 제2 정규형에 속하고 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되어 지울 때 |
BCNF 정규화 | 결정자 함수 종속 제거 | |
(= 결정자 함수이면서 후보키가 아닌 것 제거) | 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형이다 | |
4차 정규화 | 다치 종속 제거 | 릴레이션이 보이스/코드 정규형을 만족하면서 함수 종속이 아닌 다치 종속을 제거하면 4 정규형이다. |
5 정규화 | 조인 종속 제거 | 릴레이션이 자신의 프로젝션에 대한 조인의 결과가 자신과 같을 때이다 |
물리 데이터 모델 변환 순서
반정규화 : 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터모델링 기법
반정규화 사용시기 : 정규화에 충실하였으나 수행속도에 문제가 발생하는 경우, 처리 범위를 줄이지 않고는 수행속도를 개선할 수 없는 경우
반 정규화 유형 : 중복 테이블 추가(특정 범위의 데이터만 자주 처리되는 경우), 테이블 조합(두 개 이상의 테이블에 대해 동일하게 발생하는 경우 활용), 테이블 분할(칼럼의 사용빈도가 차이가 많거나 사용자가 각기 특정한 부분만 지속 사용하는 경우 활용), 테이블 제거(칼럼의 중복화로 더이상 액세스 되지 않는 테이블이 발생할 경우에 사용하는 반정규화 기법, 관리의 소), 칼럼의 중복화(주로 사용하는 칼럼이 다른 테이블에 분산되어 액세스 범위를 축소하지 못하는 경우 활용)
물리 데이터베이스 인덱스 적용기준 : 인덱스 컬럼 분포도 10~15%이내인 경우, 인덱스 자동생성 기본키와 유니크 키의 제약조건을 사용할 경우 적용
데크 : 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료구조
클러스터 설계 : 다수의 테이블이 빈번하게 조인을 일으킬 때 활용한다, 다중 블록 이상의 테이블에 적용한다, 액세스 효율 향상을 위한 물리적 저장 방법이다. 인덱스의 단점을 해결하여 분포도가 넓을 수록 유리하다.
클러스터 설계 고려사항 : 검색효율은 높여주지만 입력,수정, 삭제시 부하 증가를 고려해야한다, 자주 수정이 발생하지 않는 칼럼은 고려대상이다, 처리 범위가 넓어 문제가 발생할 경우 단일 테이블 클러스터링을 고려한다, 조인이 많아 문제가 발생하는 경우 다중 테이블 클러스터링을 고려한다.
파티션 종류
범위분할 | 지정한 열의 값을 기준으로 분할 |
---|---|
해시 분할 | 해시 함수에 따라 데이터를 분할 |
조합 분할 | 범위 분할에 의하여 데이터를 분할한 후 해시 함수를 적용하여 재분할 |
MD5 : RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로 인지를 확인하는 무결성 검사 등에 사용된다. 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안된 128비트 암호화 해시 함수
파티셔닝 순서 : 파티션 종류 결정 → 파티션 키의 선정 → 파티션 수의 결정
파티션 설계의 장점
DB 스키마 : 데이터베이스의 구조, 제약조건 등의 정보를 담고있는 기본적인 구조
SQL 의 종류 : DML, DDL, DCL
DDL : 저장하고 있는 데이터를 테이블 등의 구조로 생성하고 변경하기 위하여 사용도는 명령어를 지칭하는 용어( create, drop, alter,rename)
DCL : 사용자가 데이터 베이스에 접근할 수 있는 권한을 부여하거나 회수하는 명령어를 지칭하는 용어 (role, grant, revoke)
DML : 데이터를 변경하거나 검색하기 위해 사용되는 명령어(insert, update, delete,select)
TCL : (commit, rollback, savepoint)
rollback : 트랜잭션 처리중 오류가 발생했을 떄 오류 이전의 특정시점으로 상태를 되돌려주는 제어어
chomod 751 a.txt : 사용자에게 읽기, 쓰기, 실행 권한을 부여하고 그룹에게는 읽기, 실행을 부여하고 그 외에는 실행 권한을 a.txt에 부여하는 명령어
ALTER table 학생 ADD 주소 VARCHAR(20)
PL/SQL : 컴파일이 필요없어 스크립트 생성 및 변경 후 바로 실행 가능, 최근 프로그래밍 언어 특성을 수용한 SQL의 확장 기능
PL/SQL 저장 프로시저 파라미터 타입 : IN, OUT, INOUT
SQL | SQL*PLUS |
---|---|
다중 행 입력 가능 | 다중행 입력 불가능, SQL 명령어를 서버에 전송하는 툴 |
키워드 축약 불가 | DATA에 대한 정의 불가, 키워드 축약 가능 |
SQL buffer 사용 | SQL buffer 사용하지 않음 |
SQL *PLUS 명령어 유형 : 파일 명령어, 편집 명령어, 실행 명령어, 환경 명령어
SQL 처리 흐름 : 구문 분석 단계 → 실행 단계 → 인출단계
TKPROF : SQL Trace 를 통해 생성된 Trace 파일을 분석이 가능한 형식으로 전환하여 출력
PL/SQL을 활용한 저장형 객체 활용
통합 구현 과정 : 송신 시스템 → 중계 시스템 → 수신 시스템
송신시스템 : 송신하는 송신 모델과 데이터 생성 및 송신 상태를 모니터링 하는 기능으로 구성된다.
연계 요구 사항 분석 : 요구사항 분석시 입력물(Input) → 요구사항 분석시 도구 및 기법 (Tool & Technique) → 요구사항 분석 결과물(Output)
연계 요구사항 분석시 도구 및 기법 : 사용자 인터뷰 ,체크 리스트, 설문지 및 설문조사, 델파이 기법, 연계 솔루션 비교분석
연계 데이터 식별 및 표준화
연계 범위 및 항목 정의 → 연계 코드 매핑 및 정의 → 변경된 데이터 구분 방식 정의 → 데이터 연계 (표현) 방식 정의
연계 방식 장단점
장점 | 단점 | 방식 | |
---|---|---|---|
직접 연계 | 연계 및 통합 구현이 단순하며 용이함 |
중간 매개체가 없으므로 데이터 연계 처리 성능이 대체로 좋음
개발 소요 비용 및 기간이 짧음 | 시스템간 결합도가 높아서 시스템 변경에 민감
암, 복호화 처리, 비즈니스 로직 적용 등이 불가
연계 및 통합 가능한 시스템 환경이 제한적 | DB link
DB Connection Pool(WAS)
JDBC
Hyper Link
API or Open API |
| 간접 연계 | 서로 상이한 네트워크, 프로토콜 등 다양한 환경을 연계 및 통합 가능
시스템 간 인터페이스 변경 시에도 장애나 오류없이 서비스 가능
보안이나 비즈니스 처리를 위한 로직을 자유롭게 반영 가능 | 연계 아키텍처 및 메커니즘이 복잡하고, 중간 매개체로 인해 성능 저하 요소 존재
개발 및 적용을 위한 테스트 기간이 상대적 장기간 소요 | EAI
Web service/ESB
Socket |
JDBC : 수신 시스템의 BATCH 또는 온라인 프로그램에서 JDBC 드라이버를 이용하여 송신시스템의 DB와 연결 생성한다.
연계 장애 및 오류처리 구현
오류유형 | 설명 |
---|---|
연계 시스템 | 연계 서버의 실행 여부를 비롯하여 송수신, 전송형식 변환 등 서버의 기능과 관련된 장애 및 오류 |
연계 서버 미가동, 송수신 시스템의 아이피 및 포트 접속 불가
연계서버의 로그를 확인하여 원인 분석 후 처리 |
| 연계 응용시스템 | 송신 시스템 / 수신 시스템
등록되지 않은 코드로 매핑 불가 / 등록된 데이터가 존재하지 않음
송신 시스템 연계 프로그램에서 기록하는 로그를 확인하여 원인 분석 후 결과에 따른 처리, 처리 이후 데이터 전송이나 반영 재작업 |
| 연계 데이터 오류 | 송신 시스템에서 추출된 연계 데이터가 유효하지 않은 값으로 인해 발생하는 오류
유효하지 않은 일자
송신 시스템 연계 프로그램에서 기록하는 Log를 확인하여 데이터 보정 후 재전송하여 처리한다. |
구성된 연계 데이터는 응용 어플리케이션에서 연계 데이터를 생성하는 시점, 연계 주기, 적용되는 연계 솔루션의 지원 기능 등에 다르게 표현될 수 있다.
EAI(Enterprise Application Integration)
기업에서 운용하는 서로다른 SW를 네트워크 프로토콜, OS와 상관없이 비즈니스 프로세스 차원에서 통합하는 전사적 애플리케이션 통합
실제 송수신 처리와 진행 현황을 모니터링 및 통제하는 EAI 서버, 송수신 시스템에 설치되는 Adapter를 이용하는 방식
EAI구축 유형
point-to-point | 중계웨어 없이 애플리케이션간 1:1 형태로 연결 |
---|---|
hub & spoke | 중앙 집중적 방식으로 단일 접점이 허브 시스템을 통해 데이터 전송 |
message bus | 중계웨어를 통한 처리 유형 |
hybrid | 그룹 내 중앙 집중적 방식의 hub & spoke 통합 적용 |
ESB(Enterprise Service Bus)
다양한 시스템과 연동을 위한 멀티 프로토콜이 특징이며, 이벤트, 표준 지향적이다. 플랫폼은 독립적으로 운영하며 서비스를 조합하는 BPM을 지원한다.
버스를 중심으로 각각 프로토콜이 호환되게 변환 가능하며 서비스 중심의 메시지 이동을 라우팅 할 수 있다.표준화가 미비하고 성능 문제의 개선점이 필요하다.
초광대역 무선 UWB : 중심 주파수의 20%이상의 점유 대역폭을 가지는 신호, 또는 점유 대역폭과 상관없이 500MHZ이상의 대역폭을 갖는 신호화 수 ghz대의 초광대역을 사용하는 초고속의 무선데이터 전송기술
구분 | 설명 |
---|---|
피코넷(PICONET) | 여러개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술 |
네트워크를 구성하는 장비간에 사전에 네트워크의 정의와 계획이 없이 상황에 따라 프로토콜에 의해 마스터와 슬레이브의 역할을 하면서 네트워크를 형성 | |
지그비(Zigbee) | IEEE 802.15 표준 기반, 메시 네트워크 방식을 사용 |
저속 전송 속도를 갖는 홈오토메이션 및 데이터 네트워크를 위한 표준 기술
버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등제어 및 홈 보안 시스템 VCR ON/OFF 등을 할 수 있고 인터넷을 통한 전화 접속으로 ~ |
애플리케이션 성능
| 처리량 | 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
웹 애플리케이션의 경우 시간당 페이 지수로 표현 |
| --- | --- |
| 응답 시간 | 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
애플리케이션의 경유 메뉴 클릭시 해당 메뉴가 나타나기 까지 걸리는 시간 |
| 경과 시간 | 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료될 때까지 걸리는 시간 |
| 자원 사용률 | 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량 |
웹 서비스 방식
EAI/ESB 방식과 달리 실제 전송이나 전송 이력에 대한 기록 및 모니터링 기능을 별도록 구현해야한다.
구분 | 설명 |
---|
| SOAP
(Simple Object Access Protocol) | HTTP, HTTPS, SMTP 등을 통해 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 |
| WSDL
(Web Service Description Language) | 웹 서비스 기술 언어 또는 기술된 정의 파일의 총칭으로 XML로 기술되며 구체적 내용이 기술되어 있어 서비스 제공장소, 메시지 포맷, 프로토콜 등이 기술 |
| UDDI
(Universal Description Discovery Integration) | 웹 서비스 관련 정보 공개와 탐색을 위한 표준이며 서비스 재공자는 UDDI 라는 서비스 소비자에게 이미 알려진 온라인 저장소에 그들이 제공하는 서비스 목록들을 저장하게 되고, 서비스 소비자들은 그 저장소에 접근함으로써 원하는 서비스 들의 목록을 찾을 수 있게 한다. |
웹 서비스 방식 연계 모듈 구현 절차 : 송수신 파일 경로 위치 및 파일 명 정의 → 송신 연계 응용 프로그램 구현 → 파일 전송 → 수신 db반영 서비스 호출 처리 → 수신 시스템의 연계 응용 프로그램 구현
연계 테스트 수행 절차 : 연계 응용 프로그램 실행 → 연계 데이터 송수신 → 연계 응용 프로그램 실행
연계 테스트 테이스 작성 : 단위 테스트 케이스 작성, 연계 테스트 케이스 작성
연계 데이터 구성은 연계 데이터를 식별하고, 식별된 연계 데이터를 표준화하는 과정으로 이 수행 결과로 연계 정의서를 작성한다.
개발도구 : 구현도구(디버깅이나 수정 등을 할때 사용된다), 빌드도구(코드를 빌드 및 실행 그리고 배포하는 도구이다), 테스트 도구(코드에 대한 객관적이고 독립적인 시각을 제공하며 기능검증과 전체적인 품질을 높이기 위해 사용하는 도구이다.), 형상관리 도구(소스코드나 문서의 버전관리, 이력관리, 추적 관리 도구)
통합 개발도구 : 프로그램을 개발하는 과정에서 에디터, 컴파일러, 어셈블러. 링커, 디버거 등의 각 단꼐가 모두 하나의 프로그램 속에 통합되어있는 형태
형상 통제: 형상 항목의 버전 관리를 위해서 변경여부와 변경 활동을 통제하는 활동
형상관리 절차
형상 식별 | 형상 관리 대상을 정의 및 식별하는 활동 |
---|---|
형상 통제 | 형상 항목의 버전관리를 위한 형상통제 위원회 운영 |
형상 감사 | 소프트웨어 베이스 라인의 무결성 평가 |
형상 기록 | 소프트웨어 현상 및 변경관리에 대한 각종 수행결과를 기록 |
개발 도구(?언어) 선정 기준
적정성 | 업무의 성격이나 시스템의 목적에 적합해야한다 |
---|---|
효율성 | 업무의 효율성이 고려되어야한다 |
이식성 | PC및 시스템에 설치를 고려해야한다 |
친밀성 | 프로그래머가 사용할 언어를 이해하고 있어야한다 |
공통 모듈의 원칙
정확성 | 해당 기능이 실제 시스템을 구현시 필요여부를 알 수 있도록정확하게 작성해야한다. |
---|---|
명확성 | 해당 기능을 일관되게 이해하고 한가지로 해설될 수 있도록 작성해야한다. |
추적성 | 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관꼐에 대한 시결이 가능하도록 작성해야 한다. |
완전성 | 시스템이 구현될 떄 필요하고 요구되는 모든 것을 기술해야한다. |
일관성 | 공통 기능들 간에 상호 출돌이 없도록 작성해야한다. |
모듈화의 필요성 : 관리측면, 개발 측면, 유지보수 측면, 성능/비용 측면
모듈 간의 결합도는 줄이고, 응집도는 높은 공통 모듈 구현을 권장하고 있다.
결합도 : 두 모듈간의 상호 의존도를 나타내는 것이다.
결합도 유형 : 밑으로 갈수록 결합도 강함
데이터 결합도 | 모듈이 인터페이스로 구성되어 있고 전달되는 파라미터를 통해서만 상호작용이 일어나는 형태의 결합도 |
---|---|
스탬프 결합도 | 모듈간의 자료를 조회하는 것으로 배열이나 객체, 구조 등이 전달되는 형태의 결합도 |
제어 결합도 | 하나의 모듈에서 다른 모듈로 데이터 값이 아닌 제어값이 전달되는 형태의 결합도 |
외부 결합도 | 모듈에서 외부로 선언한 데이터를 다른 모듈에서 참조할 하는 형태의 결합도 |
공통 결합도 | 여러 모듈이 공통적인 데이터를 참조하고 수정하는 형태의 결합도 |
내용 결합도 | 하나의 모듈에 있는 데이터를 다른 모듈에서 참조 또는 수정하는 형태의 결합도 |
응집도 : 모듈의 독립성을 나타낸다. 모듈간의 연관정도이다.
응집도 유형 : 아래로 갈수록 응집도 약함
기능적 응집도 | 모듈 내부의 모든 기능요소 들이 단일 문제를 위해 처리되는 형태의 응집도 |
---|---|
순차적 응집도 | 한 모듈의 기능에 의한 출력이 다른 모듈에서 처리되는 형태의 응집도 |
통신적 응집도 | 동일한 입력과 출력을 사용하는 기능들이 모여있는 형태의 응집도 |
절차적 응집도 | 모듈 내부의 구성요소들이 순차적으로 기능을 수행하는 형태의 응집도 |
시간적 응집도 | 특정 시간에 처리되는 기능을 모아 하나의 모듈로 처리되는 형태의 응집도 |
논리적 응집도 | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 하나의 모듈에서 처리가 되는 형태의 응집도 |
우연적 응집도 | 모듈의 구성요소들이 서로 관련이 없는 형태의 응집도 |
공통 모듈 테스트 : 화이트박스 테스트, 메서드 기반 테스트, 화면 기반 테스트
화이트 박스 검사 기술: 제어 흐름 테스트, 데이터 흐름 테스트, 분기 테스트, 경로 테스트
테스트 케이스의 구성요소 : 식별자, 테스트항목, 입력 명세, 출력 명세, 환경 설정
제어흐름 그래프
결정 커버리지는 결정 포인트 내의 전체 조건식이 적어도 한반은 참과 거짓의 결과를 수행해야 하기 때문에 첫번째 분기문도 참, 거짓이 와야하고, 두번째 분기도 참, 거짓이 한번씩 와야한다
프로세스의 개념 : 공급자 → 입력→ 프로세스 → 출력 → 고객
정적 웹 서버 : http 서버가 있는 컴퓨터로 구성되어 있다, 사용자의 요청에 의해 응답하는 서비스, 항상 똑같은 페이지를 반환한다
동적 웹 서버 : 정적 웹 서버와 추가적인 소프트웨어로 구성되어 있다, 스크립트를 사용하여 사용자의 요청에 맞는 콘텐츠가 생성된다.
프레임 워크의 특징
모듈화 | 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다. |
---|---|
재사용성 | 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여준다. |
확장성 | 다형성을 통해 어플리케이션이 프레임워크의 인터페이스를 확장할 수 있게한다. |
제어의 역흐름 | 코드가 전체 어플리케이션의 처리흐름을 제어하여 어플리케이션이 메소드를 호출함으로써 제어가 프레임 워크로부터 어플리케이션으로 흐르게 한다. |
배치 프로그램
배치 프로그램 유형 : on-demand 배치, 정기 배치, 이벤트 배치
배치 프로그램 필수요소 : 대용량 데이터, 자동화, 견고함, 안정성, 성능
컴포넌트 명세서 : 컴포넌트의 개요 및 내부 클래스의 동작, 인터페이스를 통한 외부와 통신하는 명세를 정의하며, 실제 코드 수준의 명칭이나 설계 수준의 논리적인 클래스 명칭을 사용하기도 한다.(내부 클래스, 클래스 ID, 클래스 명, 설명, 인터페이스 클래스 , 인터페이스 ID, 인터페이스 명, 오퍼레이션 명, 구분)
인터페이스 명세 : 인터페이스 목록에 있는 상세정보를 보여준다. 각 인터페이스 번호 당 인터페이스 되는 데이터, 형식, 송수신 시스템의 정보 등을 구체화한다
인터페이스 설계서(정의서) : 시스템의 인터페이스 현황을 한눈에 확인하기 위해 시스템의 인터페이스 목록 및 각 인터페이스의 상세 데이터 명세와 각 기능의 세부 인터페이스 정보를 정의한 문서
상세 기능별 인터페이스 정의서 : 인터페이스 ID, 인터페이스 명, 오퍼레이션 명, 오퍼레이션 개요, 사전 조건 , 사후조건, 파라미터, 반환값
정적, 동적 모형을 통한 인터페이스 설계서 : 시스템을 구성하는 주요 구성요소 간 트랜잭션을 보여주고, 이를 통해 시스템에서 인터페이스는 어디에 속하고 어떤 트랜잭션이 인터페이스를 통해 상호 교환되는지 확인 할 수 있다.
데이터 정의를 통한 인터페이스 설계서 : 제공하는 인터페이스 서비스에 대한 상세 명세를 표현하는 산출물로서, 제공 서비스 목록과 이에 대한 인터페이스 방식 및 명세, 리턴 형태까지 정의 를 상세화하여 개발 수준에서 인터페이스를 어떻게 구현해야할지 명시되어 있다.
시스템 인터페이스 정의서 : 인터페이스 목록의 송신 및 전달 영역까지는 외부모듈에 포함되고 수신측 영역은 내부 모듈에 포함된다고 판단 할 수 있다.
외부 및 내부 모듈 연계를 위한 인터페이스 기능 식별
인터페이스 명세서 : 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부조건 및 기능을 명시한 명세서이며 명칭, 설명, 사전/후 조건, 인터페이스 데이터 및 인터페이스 후 성공 여부를 반환받는 값이 정의되어 있다.
JSON | 속성- 값 쌍 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포멧 |
---|---|
XML | W3C에서 개발된, 다른 특수 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다. HTML의 한계를 극복한 목적으로 만들어졌다. |
인터페이스 예외 처리 방안
송신 측에서 인터페이스 객체를 송신 예외 처리하는 방법
AJAX 호출 후 반환 값을 받아 어떻게 처리할지 호출하는 부분에서 정의한다. 반환값은 success fail 두 케이스가 대표적으로, 수신 측에서 정의한 메시지에 따라 반환 후 기능이 나뉠 수 잇다.
수신 측에서 인터페이스 객체를 수신 및 예외처리하는 방법
수신 측에서 받은 JSON객체를 처리시에 try-catch 구문을 이용하여 발생한 예외를 처리하고 이를 송신 측에 전달한다.
AJAX : 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분 만을 위한 데이터를 로드하는 기법, HTML 만으로도 어려운 다양한 작업을 웹페이지에서 구현해 이용자가 웹페이지와 자유롭게 상호작용 할수 있도록 하는 기술명
인터페이스 엔티티를 사용한 인터페이스 예외처리 방법
송신 인터페이스 테이블에서 인터페이스 예외 처리 방법
송신 인터페이스 테이블에 데이터를 입력하는 객체에 예외가 발생하였을 때 예외 유형에 따른 예외 코드를 입력하고 세부 예외 원인을 송신 인터페이스 테이블에 같이 입력한다.
송신 인터페이스 테이블에서 수신 인터페이스 테이블로 데이터를 이동할때 예외 발생시 procedure, trigger 등 데이터를 이동하는 주체에 예외유형을 정의하고 예외 원인을 송신 인터페이스 테이블에 업데이트 한다.
수신 인터페이스 테이블에서 인터페이스 예외를 처리하는 방법
전송 완료된 데이터를 읽을 때 데이터가 없거나 잘못된 값을 읽어들일 경우 예외가 발생할 수 있으며 수신 인터페이스 테이블에서 가져온 인터페이스 정보를 활용하여 조작할 때 예외가 발생 할수 있다.
시큐어 코딩 : 소프트웨어를 개발함에 있어 개발자의 실수, 논리적 오류 등으로 인해 소프트웨어 에 내포될 수 있는 보안 취약점을 배제하기 위한 코딩 기법
유형 | 설명 | 대표적 보안약점 |
---|---|---|
입력 데이터 검증 및 표현 | 프로그램 입력값에 대한 검증 누락 혹은 부적절한 검증, 데이터의 잘못된 형식 지정으로 발생할 수 있는 보안 약점 | SQL 삽입, 크로스 사이트 스크립팅 등 |
보안기능 | 보안 기능을 적절하지 않게 구현시 발생할 수 있는 보안 약점 | 부적절 할인가, 중요정보 평문저장 등 |
시간 및 상태 | 동시 또는 거의 동시 수행시 지원하는 병렬 시스템 | 경쟁조건, 제어문을 사용하지 않는 재귀함수 등 |
에러처리 | 에러 처리하지 않거나, 불충분하게 처리하여 에러정보에 중요 정보가 포함될떄 발생할 수 있는 보안약점 | 취약점 패스워드 요구조건, 오류메시지를 통한 정보 노출 등 |
코드 오류 | 타입변환 오류, 자원의 부적절한 반황 등과 같이 개발자가 범할 수 있는 코딩오류로 인해 유발되는 보안 약점 | 널 포인터 역참조, 부적절한 자원 해제 |
캡슐화 | 중요한 데이터 또는 기능성을 불충분하게 캡슐화 했을대 인가되지 않는 사용자에게 데이터 누출이 가능해지는 보안 약점 | 제거되지 않고 남은 디버거 코드, 시스템 데이터 정보 노출 등 |
API 오용 | 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API르 사용하여 발생할 수 있는 보안 약점 | DNS Lookup 에 의존한 보안결정, 널 매개변수 미조사 등 |
SQL 삽입 : 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작등의 행위를 하는 공격 기법
데이터베이스 암호화 알고리즘 : 대칭 키 암호 알고리즘(ARIA,SEED), 해시 알고리즘(SHA, HAS), 비대칭 키 알고리즘(RSA, ECDSA)
데이터베이스 암호화 방법 : API 방식(APP레벨 ), FILTER(DB레벨 ), HYBRID(API, FILTER 결합 )
인터페이스 구현 검증도구 : xUnit, STAF, FITness, NTAF, Selenium, watir
인터페이스 구현 감시도구 : 인터페이스 동작이 잘 진행되는지 확인하기 위해 애플리케이션 모니터링 툴을 사용하여 동작상태를 감시한다.
인터페이스 오류처리 방법
사용자 화면에서 오류를 인지 | 오류가 발생했을 때 알람형태로 화면에 표시되며, 주로 실시간으로 데이터가 인터페이스 되는 경우에 사용되는 방법 |
---|---|
인터페이스 오류 로그 생성 | 오류의 자세한 내역을 알기위해 사용되며 시스템 관리자나 운영자가 오류로그를 확인할 수 있다. 시스템 운영 로그에 인터페이스 오류 시 관련 에러로그가 생성되도록 할 수 있다. |
인터페이스 관련 테이블에 오류 사항 기록 | 이력을 직관적으로 보기 쉬워 운영자가 관리하기 용이한 장점이 있다. 인터페이스 트랜잭션 기록을 별도로 보관하는 경우 테이블에 오류사항을 기록할 수 있다. |
UI설계서 작성 순서 중 각 화면 별로 구분되도록 각 화면 별 고유 ID를 부여하고 별도의 표지 페이지를 작성하는 것
UI설계 원리 : 사용자의 의도 파악, 행위 순서 규정, 행위 순서대로 실행
사용자 인터페이스 기본 원칙 :
학습성 | 누구나 쉽게 배우고 익힐 수 있어야 한다 |
---|---|
직관성 | 누구나 쉽게 이해하고 사용할 수 있어야 한다. 쉬운 검색, 쉬운 사용성, 일관성이 부특성을 가지고있는 UI설계 원칙 |
유연성 | 사용자의 요구사항을 최대한 수용하며 오류를 최소화해야한다 |
유효성 | 사용자의 목적을 정확하게 달성해야 한다 |
사용자 인터페이스 설계 지침 : 명확성, 일관성, 표준화, 단순성, 접근성, 가시성, 사용자 중심, 오류발생 해결, 결과 예측 가능
웹 콘텐츠 접근성 지침 준수를 위한 고려사항
| 운용의 용이성 | 충분한 시간을 제공해야한다
키보드 만으로도 접근이 가능해야한다
컨텐츠를 쉽고 편리하게 내비게이션 할 수 있어야한다
광과민성 발작을 예방해야한다 |
| --- | --- |
| 인식의 용이성 | 컨텐프를 명료하게 전달해야한다
대체 가능한 텍스트를 제공해야한다
멀티미디어 대체수단을 제공해야한다 |
| 견고성 | 접근성이 있어야한다
마크업 언어의 문법을 준수해야한다 |
| 이해의 용이성 | 기능 및 실행결과는 예측이 가능해야한다
입력 오류를 방지하거나 정정이 가능해야한다
선형 구조로 작성되고 논리적인 순서를 제공해야한다
읽고 이해하기 용이해야한다 |
전자정부 웹 표준 준수 지침 사항 : 내용과 표현의 분리, 내용의 문법 준수, 플러그인의 호환성, 다양한 프로그램 제공, 콘텐츠의 보편적 표현, 동작의 기술 중립성 보장, 부가 기능의 호환성 확보, 운영체제에 독립적인 콘텐츠 제공
| 와이어프레임 | 기획 초기단계에서 제작하는 것으로 페이지에 대한 대략적인 레이아웃이나 UI요소 드에 대한 뼈대를 설계
손 그림, 파워포인트, 키노트, 스케치 |
| --- | --- |
| 스토리보드 | 와이어 프레임에 콘텐츠에 대한 설명이나 페이지 간 이동흐름 등을 추가한 문서
디자이너와 개발자가 최종적으로 참고하는 작업 지침서
메뉴 구성도 만들기 → 스타일 확정 → 설계하기
파워포인트, 키노트,스케치,Axure |
| 목업 | 와이어 프레임보다 좀 더 실제 화면과 유사하게 만드는 정적인 형태의 모형
파워 목업, 발사믹 목업 |
| 유스케이스 | 사용자 측면에서의 요구사항으로 사용자가 원하는 목표를 달성하기 위해 수행할 내용기술 |
| 프로토타입 | 와이어 프레임이나 스토리 보드 등에 인터랙션을 적용해 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형
페이퍼/디지털 프로토타입
html/css , Axure, Flinto, 네이버 프로토나우, 카카오 오븐 |
| 기능성 | 실제 수행 결과와 품질 요구사항과의 차이를 분석하고 실제 사용시 정확하지 않은 결과가 발생할 확률 등과 관련하여 시스템 동작을 관찰하기 위한 품질 기능을 의미한다.
적절성, 정밀성, 상호운용성, 보안성, 호환성 |
| --- | --- |
| 유지보수성 | 요구사항을 개선하고 확장하는 데 있어 얼마나 용이한가를 의미한다.
분석성, 변경성, 안정성, 시험성 |
| 이식성 | 다른 플랫폼에서도 많은 추가 작업 없이 얼마나 쉽게 적용이 가능한 가를 의미한다.
적용성, 설치성, 대체성 |
| 효율성 | 할당된 시간에 한정된 자원으로 얼마나 빨리 처리하는 가를 말한다.
시간 효율성, 자원 활용성 |
| 사용성 | 사용자와 컴퓨터 사이에서 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미한다.
이해성, 학습성, 운영성 |
| 신뢰성 | 시스템이 일정한 시간 또는 작동되는 시간 동안 의도하는 기능을 수행함을 보증하는 것을 의미한다
성숙성, 고장 허용성, 회복성 |
페이퍼 프로토 타입 : 제작 기간이 짧고 제작비용이 적을 경우 업무 회의가 빠를 경우 급하게 만들어야 하는 경우 사용가능한 프로토 타이핑
디지털 프로토타입 : 프로그램을 사용하여 작성한다, 재사용이 필요하거나 완성 제품과 비슷하게 만들어야 하거나 숙련된 전문가가 있을 때 사용한다
사용자의 요구사항을 분석 → 핵심적인 기능을 중심으로 개발 → 사용자가 요구사항을 잘 수행하는지 확인, 다양한 추가 및 수정 의견을 제안할 수 있음 → 작성된 프로토 타입을 기반으로 수정과 합의, 개발자는 사용자가 요청한 제안 사항을 수용하여 보완 작업
UI 시나리오 문서의 요건 : 완전성, 수정 용이성, 이해성, 가독성, 일관성, 추적 용이성
모범적인UI 시나리오 문서의 효과 : 요구사항 오류가 감소한다, 의사소통 오류가 감소한다, 개발과정에서의 재작업이 감소하고 혼선이 최소화된다, 불필요한 기능을 최소화한다, 시나리오 잣어과 소프트웨어 개발 비용을 절감한다, 개발 송도를 향상 시킨다, 유관부서 만족도를 제고한다
UI 시나리오 작성원칙
애플리케이션 테스트 프로세스 : 테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행 → 테스트 결과 평가 및 리포팅
테스트 기본원리 :
완벽한 테스트 불가능 | 테스트는 소프트웨어의 잠재적 결함은 줄일 수 있지만 결함이 없다고 증명할 수 는 없다 |
---|---|
결함 집중 | 결함은 대부분 개발자의 특성이나 애플리케이션 기능적 특징 때문에 모듈에 집중되어 있다. |
파레토 법칙 | 애플리케이션의 20%에 해당하는 코드에 전체 결함의 80%가 발견된다. |
살충제 패러독스 | 동일 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 테스트 원리 |
정황의존 | 소프트웨어 특징, 테스트 환경, 테스트 역량 등 정황에 따라 테스트를 다르게 수행해야 한다 |
오류 - 부재의 궤변 | 소프트웨어 결함을 모두 제거해도, 결국 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높지 않다. |
| 블랙박스 테스트
(명세기반 테스트) | 소프트웨어가 수행할 특정기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로 기능테스트라고 불린다. |
| --- | --- |
| 동치 분할 검사
(동등 분할 기법) | 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법 |
| 경계값 분석 | 입력 자료에만 치중한 동치 분할 기법을 보완한 기법으로 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법 |
| 원인-효과 그래프 검사 | 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법 |
| 오류 예측 검사
(데이터 확인 검사) | 과거의 경험이나 확인자의 감각으로 테스트 하는 기법으로 다른 블랙박스 테스트 기법으로는 찾아낼 수 없는 오류를 찾아내는 일련의 보충적 검사기법 |
| 비교 검사 | 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법 |
테스트 장치
테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스 : 입력 값, 실행조건, 기대 결과 등의 집합
테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세
목 오브젝트 : 사용자의 행위를 조건부로 사전에 입력해두면, 그 상황에 예정된 행위를 수행하는 객체
결합 관리 프로세스의 단계
에러의 발견 → 에러의 등록 → 에러에 대한 분석 → 결함의 확정 → 결함의 할당 → 결함에 대한 조치 → 결함에 대한 조치 검토 및 승인
결함 추적 순서
결함 등록 →결함 검토 → 결함 할당 → 결함 수정 → 결함 조치 보류 → 결함 종료 → 결함 해제
테스트 환경 구축의 유형
하드웨어 기반의 테스트 환경 구축, 소프트웨어 기반의 테스트 환경 구축, 가상 시스템 기반의 테스트 환경 구축
클린 코드 작성 원칙
| 추상화의 원칙 | 세부적인 내용은 하위 클래스, 메소드, 함수 등에서 구현한다
클래스, 메소드, 함수 등에 대해서 서로 같은 수준의 추상화를 한다 |
| --- | --- |
| 중복성의 원칙 | 공통된 코드를 활용한다
중복된 코드를 제거한다 |
| 단순성의 원칙 | 클래스, 메소드, 함수 등을 최소 단위로 구분한다
한번에 한가지 처리만을 수행한다 |
| 가독성의 원칙 | 코드 작성 시에 들여쓰기 기능을 활용한다
이해하기 용이한 용어를 활용한다 |
| 의존성의 원칙 | 코드 변경이 타 부분에 영향이 없게 작성하게한다
영향도를 최소화시킨다 |
리팩토링의 목적 : 복잡한 코드의 단순화, 소스의 가독성을 통해 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질 향상
테스트 오라클
샘플링 오라클 | 특정한 몇개의 입력 값에 대해 기대하는 결과를 제공 |
---|---|
참 오라클 | 모든 입력 값에 대해 기대하는 결과를 생성하여 발생된 오류 모두 검출 |
일관성 검사 오라클 | 어플리케이션 변경이 있을 때 수행 전과 후의 결과 값이 동일한지 확인하는 오라클 |
휴리스틱 오라클 | 샘플링 오라클을 개선한 오라클로 특정 입력값에 대해 올바른 결과 제공, 나머지 값들에 대해 휴리스틱으로 처리 |
테스트 단계별 테스트 도구
테스트 단계 | 자동화 도구 | 도구 설명 |
---|---|---|
테스트 계획 | 요구사항 관리 | 요구사항 정의 및 요구사항 관리를 지원 |
테스트 분석 /설계 | 테스트 케이스 생성 | 테스트 기법에 따른 테스트 케이스 작성과 테스트 데이터 생성을 지원 |
테스트 수행 | 테스트 자동화 | 기능 테스트와 UI 테스트 등 단위 테스트 및 통합 테스트 지원 |
정적 분석 | 코딩 표준, 런타임 오류 등을 검증 | |
어플리케이션을 실행하지 않고 소스코드에 대한 코딩 표준, 스타일, 복잡도 및 남은 결함을 발견하기 위해 사용하는 도구 | ||
동적 분석 | 대상 시스템 시뮬레이션을 통한 오류 검출 | |
성능 테스트 | 부하 생성기 등을 이용하여 가상 생성자를 생성하고, 시스템의 처리능력을 측정하는 도구 | |
모니터링 | 시스템 자원의 상태 확인 및 분석 지원 | |
테스트 관리 | 커버리지 측정 | 테스트 완료 후 테스트 충분성 여부 검증 지원 |
형상관리 | 테스트 수행에 필요한 도구, 데이터 및 문서관리 | |
결함 추적/관리 | 테스트에서 발생한 결함 추적 및 관리 활동 지원 |
리뷰의 유형
유형 | 설명 |
---|---|
동료 검토 | 2~3명이 진행하는 리뷰의 형태 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토 기법 |
워크 스루 | 검토 자료를 회의전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서로 만드는 기법 |
인스팩션 | 소프트웨어 요구, 설계, 원시 코드 등의 저작자외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토방법 |
킬 스위치 : 스마트폰 사용자가 도난당한 스마트폰의 작동을 웹사이트를 이용해 정지할 수 있도록 하는 일조으이 자폭기능, 원격 잠김, 개인정보 삭제 기능 등이 있다.
구분 | 설명 |
---|---|
검증 | 소프트웨어 개발 과정을 테스트 |
이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단
개발자 혹은 시험자의 시각으로 판단 |
| 확인 | 소프트웨어 결과를 테스트
만들어진 제품이 제대로 동작하는지 확인
최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단 |
절차형 SQL 의 개념 : 타 개발 언어와 유사하게 SQL에도 절차 지향적인 프로그램이 가능하다, 작업에 필요한 데이터를 DBMS 내부에서 직접 처리한다, 다른 언어에 비해 작업의 효율성은 낮다, 각 회사의 데이터베이스 마다 문법이 다를 수 있다.
절차형 SQL의 기본구성 : DECLARE, BEGIN, END
절차형 SQL 문법 : 조건제어 (IF), 반복제어 (WHILE,LOOP)
프로시저의 개념 : 절차형SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어이다, 프로시저 호출을 통해 실행되며, 이를 통해 일련의 SQL 작업을 포함하는 데이터 조작어 DML을 수행하는 것이 일반적이다.
프로시저 구성 : DECLARE, BEGIN/END, CONTROL, SQL, EXCEPTION, TRANSACTION
트리거 : 사용자가 직접 호출하는 것이 아니라 데이터베이스에서 자동적으로 호출되어 실행되는 것을 말한다
트랜잭션 : 데이터 베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트랜잭션의 특징 :
원자성 | 트랜잭션이 데이터베이스에 모두 반영되든가, 모두 반영되지 않아야한다. |
---|---|
일관성 | 트랜잭션의 작업처리 결과가 항상 일관성 있어야한다 |
독립성 | 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적이다. |
각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다. | |
지속성 | 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야한다. |
로킹 기법 : 트랜잭션이 사용하는 데이터 항목에 대하여 잠금을 설정한 트랜잭션이 해제할때 까지 독점적으로 사용할 수 있게 상호배제 기능을 제공하는 기법
병행제어 미보장시 문제점
문제점 | 설명 |
---|---|
갱신 손실(Lost Update) | 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어 쓸때 발생하는 오류 |
현황 파악 오류(Dirty Read) | 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류 |
모순성(Inconsistency) | 두 트랜잭션이 동시에 실행되어 데이터 베이스의 관성이 결여되는 오류 |
연쇄 복귀(Cascade Rollback) | 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소하는 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류 |
Secure SDLC : 보안상 안전한 소프트웨어를 개발하기 위해 SDLC(소프트웨어 생명주기)에 보안 강화를 위한 프로세스를 포함한 것을 말한다.
요구사항 분석단계의 보안 활동 : 보안 항목에 해당하는 요구사항을 식별하는 작업을 수행한다.
요구사항 분석단계의 보안 요소 : 기밀성, 무결성, 가용성, 인증, 부인 방지 등
설계 단계에서의 보안 활동 : 식별된 요구사항을 소프트웨어 설계서에 반영하고 보안 설계서를 작성한다. 네트워크, 서버, 물리적 보안, 개발 프로그램 등 환경에 대한 보안 통제 기준을 수립하여 설계에 반영한다
구현 단계에서의 보안활동 : 표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수하여 설꼐서에 따라 보안 요구 사항을 구현한다, 단위 테스트 실행, 시큐어 코딩
소프트웨어 개발 보안 계획의 단계 : 시작 → 분석→ 설계→ 구현 → 시험단계
입력데이터 검증 및 표현
SQL삽입 | 입력란에 SQL을 삽입하여 무단으로 DB를 조회, 조작 | 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정 |
---|---|---|
경로조작 및 자원 삽입 | 데이터 입출력 경로를 조작하여 서버 자원을 수정 삭제 | 경로 순회 공격을 막는 필터 사용 |
크로스 사이트 필터링 (XSS) | 웹페이지에 악성 스크립트를 삽입하여 방문자의 정보 탈취, 비정상적 기능 수행 유발 | HTML 태그 사용을 제한 |
<>, & 등의 문자를 다른 문자로 치환 | ||
운영체제 명령어 삽입 | 외부 입력값을 통해 시스템 명령어 실행을 유도하여 권한을 탈취하거나 시스템 장애 유발 | 웹 인터페이스를 통해 시스템 명령어 전달 방지 |
외부 입력값을 검증없이 내부 명령어로 사용하지 않음 | ||
위험한 형식 파일 업로드 | 악의적인 명령어가 포한된 스크립트 파일을 업로드하여 시스템에 손상을 입히거나 제어 | 업로드 되는 파일의 확장자 제한 파일명의 암호화 |
웹사이트와 파일 서버의 경로 분리 실행 속성 제거 | ||
신뢰되지 않는 URL 주소로 연결 | 입력값으로 사이트 주소를 받는 경우 이를 조작하여 파싱 사이트로 유도 | 연결되는 외부 사이트의 주소를 화이트 리스트로 분리 |
네트워크 공격 유형
| 서비스 거부 공격
(DOS -Denial Of Service) | 표적이되는 서비스 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한곳의 서버에 집중적으로 전송함으로써 표적이되는 서버의 정상적인 기능을 방해하는 공격방법으로 DDoS와의 차이점은 공격자가 직접 공격을 수행한다는 것이다. |
| --- | --- |
| 분산 서비스 거부 | 공격자가 여러대의 컴퓨터를 감염시켜 동시에 한 타깃 시스템을 집중적으로 공격하는 방법으로 짧은 시간 안에 서버를 마비시킬 수 있으며 Dos보다 치명적이고 DoS와의 차이점은 공격자가 직접 공격하는 것이 아니라 감염시킨 좀비 PC가 공격을 수행한다는 점이다. |
| Ping of Death | ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 네트워크를 마비시키는 공격방법 |
| Smurfing | IP또는 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로 네트워크 불능 상태로 만드는 공격 |
| SYN Flooding | 공격자가 가상의 클라이언트로 위장하여 3-W-H 과정을 의도적으로 중단시킴으로 공격대상자인 서버가 대기상태에 높여 정상적으로 서비스를 수행하지 못하도록 하는 공격방법 |
| TearDrop | 데이터 송수신 과정에서 패킷의 크기가 여러개로 분할되어 전송 할 때 분할 순서를 변경시켜 수신측에서 패킷을 재조립 할 떄 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격방법 |
| 랜드 어택(Land Attack) | 공격자가 패킷의 출발지 주소나 포트를 임의로 변경해 출발지와 목적지 주소를 동일하게 함으로써 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격 방법 |
네트워크 보안 솔루션
보안 솔루션 | 설명 |
---|---|
방화벽 | 미리 정의된 보안 규칙을 기반으로 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크의 상호간 영향을 차단하기 위한 보안 시스템 |
침입 탐지 시스템 IDS | 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안 정책 위반행위를 실시간으로 탐지하는 시스템 |
침입 방지 시스템 IPS | 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템 |
소프트웨어 개발 보안 측면에서 시큐어 코딩의 목적
취약점 점검 설치 및 명세서
하드웨어 환경 | 대상 시스템 정보, 아키텍처 정보, 주요 솔루션 정보, 물리적 서버의 댓수 |
---|---|
소프트웨어 환경 | 업무 어플리케이션 정보, 개발 언어 정보, 추정 응답시간, 업무단위별 프로그램 목록, 사용자가 주로 사용하는 업무 프로그램 |
기타 자원 | 취약점 점검 환경에 관한 시설 및 장소, 시스템 용량, 취약점 점검 환경 관리의 분류, 범주화 |
취약점 점검 팀 | 취약점 점검 리더, 취약점 점검 관리자, 수동 테스터, 적합성 테스터, 취약점 점검 환경 전문가, 자동화 테스터, 취약점 점검 라이브러리 전문가, 형상 관리 전문가 |
정적 분석 : 소프트웨어를 실행하지 않고 소스코드 수준으로 보안약점을 분석하고 소프트웨어 개발 과정에서 주로 사용되는 것
동적 분석 : 소프트웨어 실행환경에서의 보안약점 분석으로 소프트웨어 시험 단계에서 주로 사용되는 것
취약점 진단을 수행하기 위해 필요한 서버, 스토리지 및 네트워크 환경의 역할
→ 대상 시스템을 테스트 환경에 배포, 보안 취약점 점검에 필요한 진단 도구와 모니터링 툴을 설치관리, 보안 취약점 진단하는 환경설정 정보를 문서화 명세관리
C++에서 생성자 : 해당 클래스의 객체가 생성될 떄 자동으로 호출되는 특수한 종류의 메서드
운영체제의 성능 평가 기준 : 처리 능력 향상, 응답시간 단축, 신뢰도 향상, 사용 가능도 증대
운영체제의 발전과 종류
일괄처리 시스템 | 일정기간이나 이렁량을 모아 두었다가 일괄적으로 처리하는 방식 (오프라인 방식) |
---|---|
다중 프로그래밍 시스템 | 여러개의 프로그램이 동시에 기억장치에 적재되고 이것을 동시에 처리하는 방식 |
실시간 시스템 | 데이터가 발생하는 즉시 처리하여 결과를 얻는 방식(온라인 방식) |
시분할 시스템 (TSS) | 시간을 분할하여 여러 사용자에게 제어권을 할당시키면서 한대의 컴퓨터를 여러 사용자가 공유하는 시스템 |
다중 처리 시스템 | CPU를 두개 이상 두고 각각 그 업무를 완전히 병렬적으로 동시 수행이 가능한 방식 |
분산 처리 시스템 | 네트워크를 이용하여 각 시스템의 여러 기능을 공유하며 상호작용과 공동연산의 장점을 살려서 효율을 극대화시킨 운영방식 |
운영체제 식별시 고려사항 : 신뢰도, 성능, 기술지원, 주변 기기, 구축 비용
암시적/묵시적 주소 지정 방식 | 주소를 지정하는 필드가 없는 0번지 명령어에서 stack의 sp가 가리키는 operand 를 암시하여 이용함 |
---|---|
즉시적 주소 지정방식 | 명령어 자체에 오퍼랜드를 내포하고 있는 방식 |
별도의 기억장소를 액세스하지 않고 cpu에서 곧바로 자료를 이용할 수 있어서 실행 속도가 빠르다는 장점이 있음 | |
직접 주소 지정방식 | 명령어 주소부(operand)가 사용할 자료의 번지를 표현학 있는 방식 |
간접 주소 지정방식 | 명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트 수로 나타낼 수 없을 때 사용하는 방식 |
계산에 의한 상대 주소지정 방식 | 주소 지정방식 : 명령어의 주소부분 + PC |
기억장치 관리 기법 : FIFO, LRU, LFU, MRU
기법 | 설명 |
---|---|
LRU | 사용된 시간을 확인하여 가장 오랫동안 사용되지 않은 페이지를 선택, 교체하는 기법 |
LFU | 사용된 횟수를 확인하여 참조 횟수가 가장 적은 페이지를 선택하여 교체하는 기법 |
선점 스케줄링
하나의 프로세스가 CPU를 할당받아 실행하고 있을 떄 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
종류 : SRT, 선점 우선순위, RoundRobin, 다단계 큐, 다단계 피드백 큐 등의 알고리즘
비선점 스케줄링
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법, 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용함
종류 : FCFS, SJF, HRN, 기한 부 등의 알고리즘
HRN(Highest Response ratio Next) 우선 순위 계산식 : (대기시간 + 서비스 시간) / 서비스 시간, 시스템 응답시간이 커질수록 우선순위가 높아진다.
메이저 스테이트
Fetch cycle(인출 사이클) | 명령을 CPU로 가져오는 주기 |
---|---|
indiect cycle (간접 사이클) | operand 가 간접 주소일 때 수행되는 주기 |
execute cycle(실행 사이클) | 실질적인 연산을 실행하는 주기 |
interrupt cycle(인터럽트 사이클) | 현재 수행된 명령이 중단되는 상태 |
Micro Cycle Time 부여방식
| 동기고정식 | 모든 마이크로 오퍼레이션 중에서 수행시간이 가장 긴 마이크로 오퍼레이션 동작시간을 micro cycle time으로 정함
모든 마이크로 오퍼레이션 동작시간이 비슷할 때 유리한 방식임 |
| --- | --- |
| 동기 가변식 | 수행시간이 유사한 micro operation끼리 그룹을 만들어, 각 그룹 별로 서로 다른 micro cycle time을 정의하는 방식
동기 고정식에 비해 CPU 시간 방식을 줄일 수 있는 반면, 제어 기의 구현은 조금 복잡함 |
| 비동기식 | 모든 마이크로 오퍼레이션에 대하여 서로 다른 Micro Cycle Time을 정의하는 방식
CPU의 시간 낭비는 전혀 없으나, 제어기가 매우 복잡해지기 때문에 실제로는 거의 사용되지 않는다. |
프로토콜 3요소 : 구문, 의미, 순서
프로토콜 : 컴퓨터가 메세지를 전달하고 메세지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메세지를 재전송하는 일련의 방법, 서로다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신 규약
프로토콜의 기능 : 데이터 처리 기능, 제어기능, 관리 기능
정보통신망 : 스타형, 트리형, 버스 형, 링 형, 그물 형(가장 많은 회선 이용)
OSI 7 계층
| 물리적 계층 | 물리적 연결을 위한 계층이다.
대표장치: 리피터, 케이블, 허브
데이터 전송 단위 : 비트 스트림 |
| --- | --- |
| 데이터링크 계층 | 네트워크 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류들을 제어하고 흐름제어를 담당한다
프로토콜 : 이더넷
대표장치: 스위치, 브리지
데이터 전송 단위 : 프레임 |
| 네트워크 계층 | 여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 수행한다.
프로토콜 : IP, ICMP
대표장치: 라우터, IP
데이터 전송 단위 : 패킷
IPSec : 무결성과 인증을 보장하는 인증해더와 기밀성을 보장하는 암호화를 이용한 프로토콜, 네트쿼트 계층인 인터넷 프로토콜에 보안성을 제공한다. |
| 전송 계층 | 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공한다. 통시느이 양끝단 사용자들의 신뢰성 있는 전송을 보장한다
프로토콜 : TCP, UDP
데이터 전송 단위 : 세그먼트 |
| 세션 계층 | 종단 간의 세션의 연결과 종료에 대한 열할을 하는 계층이다.
프로토콜 : SSH, TLS
데이터 전송단위 : 데이터, 메시지 |
| 표현 계층 | 종단 간의 데이터의 변환, 압축, 압축해제, 암/복호화를 담당한다
프로토콜 : JPEG, MPEG
데이터 전송단위 : 데이터, 메시지 |
| 응용 계층 | 사용자나 소프트웨어가 네트워크에 접근하여 여러가지 응용 서비스를 제공하는 계층이다
프로토콜 : HTTP, FTP
데이터 전송단위 : 데이터, 메시지 |
ICMP : TCP/IP에서 오류가 발생하면 ICMP메세지를 보내서 오류가 발생했을음 알린다
OSPF(Open Shortest Path First) : 대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜
TCP 세션 하이재킹, 세션 하이재킹 : 케빈 미트닉이 사용했던 공격 방법의 하나로 TCP의 세션 관리 취약점을 이용한 공격 기법이다. TCP 세션 하이재킹에 대응을 하기 위해서는 비동기화 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지해야한다.
MQTT : IoT 장치, 텔레메트리 장치 등에서 최적화되어 사용할 수 있도록 개발된 프로토콜로 브로커를 사용한 PUBLISH/subscribe 방식의 라이트 메시징을 전송하는 프로토콜이다. 저전력 센서, 스위치, 밸브 등의 기기에 대한 표준적 인터넷 환경을 지원하고, 프로토콜 리소스 점유 최소화, 오버헤드 최소화하는 특징이있다.
유형 | 설명 |
---|
| CSMA/CD
반송파 감지 다중접속/충돌 탐지 | IEEE 802.3 유선 LAN 의 반이중방식에서, 각 단말이 신호 전송 전에 현재 채널이 사용중인지 체크하여 전송하는 매체 액세스 제어방식 |
| CSMA/CA
반송파 감지다중접속/충돌 회피 | 무선 LAN 반이중방식에서 사전에 가능한 출동을 회피하는 무선전송 다원접속 방식 |
패키징 의 특징
모듈화 이점 : 오류의 파급 효과를 최소화, 기능의 분리 가능 및 인터페이스의 단순화, 프로그램의 효율적인 관리 및 성능의 향상, 소프트웨어 시험, 통합, 수정 시 용이성 제공, 모듈의 재사용 가능으로 인해 개발 및 유지보수 등이 용이, 전체적인 소프트웨어 이해의 용이성 즈앧 및 복잡성의 감소
모듈화의 목표 : 모듈 간 결합도의 최소화, 모듈 내 요소 간의 응집도 최대화
소프트웨어 빌드 : 소스코드 파일을 컴퓨터에서 실행할 수 있는 제품 소프트웨어의 단위로 변환하는 과정 또는 그에 대한 결과물
패키징 작업 순서 : 기능 식별 → 모듈화 → 빌드 진행 → 사용자 환경 분석 → 패키징 적용 시험 → 패키징 변경 개선
패키징 도구 활용 시의 고려사항 : 반드시 암호화 및 보안 등을 고려한다, 추가로 다양한 이기종 연동을 고려한다, 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다, 제품 소프트웨어의 종류에 적합한 알고리즘을 적용한다.
패키징 도구 구성요소
키 관리 | 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술을 말한다. |
---|---|
저작권 표현 | 라이선스의 내용 표현 기술을 말한다 |
식별 기술 | 콘텐츠에 대한 식별 체계 표현 기술을 말한다 |
정책 관리 | 라이선스 발급 및 사용 등에 관한 정책 표현 및 관리 기술을 말한다 |
암호화 파일 생성 | 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술을 말한다 |
암호화 | 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술을 말한다 |
크랙 방지 | 크랙에 의한 콘텐츠 사용 방지 기술을 말한다 |
인증 | 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술을 말한다. |
인증기술의 유형
유형 | 설명 | 예시 |
---|---|---|
지식 기반 인증 | 사용자가 기억하고 있는 지식 | id, 패스워드 |
소지 기반 인증 | 소지하고 있는 사용자의 물품 | 공인인증서, otp |
생체 기반 인증 | 고유한 사용자의 생체 정보 | 홍채, 정맥, 얼굴, 지문 |
특징 기반 인증 | 사용자의 특징을 활용 | 서명, 발걸음, 몸짓 |
저작권 관리에 대한 구성요소
패키저 | 콘텐프를 메타 데이터와 함계 배포가능한 단위로 묶는 기능 |
---|---|
DRM 컨트롤러 | 배포되어진 콘텐츠에 대한 사용권한을 통제 |
보안 컨테이너 | 원본을 안전하게 유동하기 위한 전자적인 보안장치 |
콘텐츠 분배자 | 쇼핑몰 등으로써 암호화된 콘텐츠의 제공 |
콘텐츠 제공자 | 콘텐츠를 제공하는 저작권자 |
클리어링 하우스 | 키 관리 및 라이선스에 대한 발급 관리 |
릴리즈 노트 작성 순서
모듈 식별 → 릴리즈 정보 확인 → 릴리즈 노트 개요 작성→ 영향도 체크→ 정식 릴리즈 노트 작성→ 추가 개선 항목 식별
릴리즈 노트의 중요성 : 사용자들에게 보다 명확한 정보 제공, 전체적 제품의 수행 기능 및 서비스의 변화를 공유, 자동화의 개념과 함께 적용이 가능하며, 이를 통해 전체적인 버전 관리 및 릴리즈 정보 등을 체계적으로 관리 할 수 있다.
릴리즈 노트 작성시의 항목 : Header, 개요, 목적, 이슈요약, 재현항목, 수정 및 개선의 내용, SW 지원 영향도
header 구성: 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리스 날짜, 참고 날짜, 노트 버전 등의 정보
SW 사용자 메뉴얼 작성 순서 : 작성 지침 정의 → 사용 설명서 구성 요소 정의 → 구성 요소별 내용 작성 → 사용 설명서 검토
제품 소프트웨어 메뉴얼 : 제품 소프트웨어 개발 단계부터 적용 기준이나 패키징 이후 설치 및 사용자 측면에서의 주요내용 등을 문서로 기록화한 것
사용자 메뉴얼 기록 항목 : 제품의 명칭, 제품 소프트웨어의 모델명, 기록 항목에 대한 문서 번호, 제품 번호, 구입 날짜
사용자 메뉴얼의 기본 사항 : 제품 소프트웨어의 개요, 제품 소프트웨어의 사용, 제품 소프트웨어 관리, 모델, 버전별 특징, 기능.I/F의 특징, 제품 소프트웨어 구동 환경
제품 소프트웨어 개요 : UI 및 화면 상의 버튼, 프레임 등을 도식화하여 설명
설치관련 파일 : ini 또는 log 파일 같은 관련 파일
관련 추가 정보 : 제품 소프트웨어 이외의 관련 설치 프로그램 정보
저작권 보호 기술의 필요성 : 배포된 제품 소프트웨어의 무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 특성을 가진다, 제품 소프트웨어가 상용으로 배포되면 다양한 부가가치를 가질 수 있는 상품으로 바뀜에 따라 패키징 시에 원작자에 대한 권리 보호가 우선 필요하다.
버전관리 도구 사용시 유의사항
패키징 도구 활용시 고려사할
배포용 미디어 포함 항목 : 버전 정보, 요구 사항, 설치 방법, 새로운 기능, 알려진 오류 및 대처 방법, 제약 사항
데이터 마이닝 : 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
구분 | 설명 |
---|---|
데이터 마트 | 데이터의 한 부분으로서 특정 사용자가 관심을 갖는 데이터 들을 담은 비교적 작은 규모의 데이터 웨어하우스 |
전체적인 데이터 웨어하우스에 있는 일부 데이터를 가지고 특정 사용자를 대상으로 함 | |
데이터 웨어하우스 | 급증하는 다량의 데이터를 효과적으로 분석하여 정보화 하고 이를 여러 계층의 사용자들이 효율적으로 사용하도록 한 데이터 베이스 |
다양한 원본 데이터베이스로부터 정제되어 추출된 데이터 만을 저장,필요한 인데스를 생성하고, 데이터의 다차원 분석 도구로 분석하여 효율적인 의사결정에 필요한 자료를 얻을 수 있다. |
시스템 재해 복구 속성
| 재해 복구시간
RTO | 비상사태 또는 업무 중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간을 의미하는 용어 |
| --- | --- |
| 네트워크 복구 시간 RCO | 재해 발생시, 주 영업점과 DR센터간 네트워크 복구 수준 |
| 재해 복구 범위
RSO | 재해 발생시, 업무 중요도에 따라 선정한 복구 대상 시스템 |
| 재해 복구 시점
RPO | 재해 발생시, 데이터 손실을 수용손실 허용 시점이라고 한다. |
옵저버 패턴 (Observer Pattern) : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다의 의존성을 가지며 상호작용하는 객체사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.
디자인 패턴 :
목적 | 생성, 구조, 행위 |
---|---|
범위 | 클래스, 객체 |
LOD(Link Open Data ) : 전세계 오픈된 정보를 하나로 묶는 방식으로 link data 와 open data의 합성어
식별자 표기법
헝가리안 표기법 | 식별자 표기시 접두어에 자료형을 붙이는 표기법 |
---|---|
카멜표기법 | 식별자 표기시에 여러 단어가 이러지면 첫 단어 시작만 소문자로 표시하고, 각 단어의 첫글자는 대문자로 지정하는 표기법 goodGirlGoToHeaven |
파스칼 표기법 | 식별자 표기시에 여러단어가 이어지면 각 단어의 첫글자는 대문자로 지정하는 표기법 GoodGirlGoToHeaven |
스네이크 표기법 | 식별자 표기시에 여러 단어가 이어지면 단어 사시에 언더바를 넣는 표기법 good_man |