반응형
스크럼 개발 프로세스 (계 스 일 검 회)
스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 회의 -> 스프린트 검토 회의 -> 스프린트 회고
XP 핵심 가치 (의 단 용 존 피)
의사소통, 단순성, 용기, 존중, 피드백
요구사항 개발 프로세스 (도 분 명 확)
도출 -> 분석 -> 명세 -> 확인
UML
- 사물 : 구조, 행동, 그룹, 주해
- 관계 : 집합(◇ㅡ), 포함(◆ㅡ), 의존(<·······), 일반화(◁ㅡ), 실체화(◁---)
- 다이어그램
UI
- 와이어프레임 : 뼈대
- 목업 : 정적형태
- 스토리보드 : 와이어프레임 + 이동 흐름, 설명
- 프로토 타입 : 인터랙션, 테스트
품질 요구사항
- 기능성(적합성, 정밀성, 상호운용성, 보안성, 호환성)
- 신뢰성(성숙성, 고장 허용성, 회복성)
- 사용성(이해성, 학습성, 운용성, 친밀성)
- 효율성(시간 / 자원 효율성)
- 유지보수성(분석성, 변경성, 안정성, 시험성)
- 이식성(적용성, 설치성, 대체성, 공존성)
소프트웨어 아키텍쳐
- 모듈화 : 모듈의 개수와 크기는 반비례, 개수와 비용은 비례
- 추상화 : 세분화하여 구체화
아키텍쳐 패턴
- 레이어 패턴
- 클라이언트 서버
- 파이프 필터
- MVC(모델 뷰 컨트롤러) 패턴
- 마스터-슬레이브 : 작업 분할 후 다시 돌려받음
- 브로커 패턴 : 브로커 컴포넌트가 요청에 맞는 컴포넌트 연결
- 피어투피어 패턴 : 피어가 서버도 되고 클라이언트도 됨
- 이벤트 버스 : 구독한 리스너에게 메시지 받아 이벤트 처리
- 블랙보드 : 검색을 통해 블랙보드에서 데이터 찾음
모듈
- 결합도는 약하게 응집도는 강하게
- 결합도 : 모듈 간의 관계
- 응집도 : 모듈 내부 요소가 관련된 정도
디자인 패턴
- GoF(Gangs of Four) 디자인 패턴 분류
1. 생성 패턴
2. 구조 패턴
3. 행위 패턴 - 생성 패턴
- 구조 패턴 : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
- 행위 패턴 :클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의한 패턴
요구사항 검증 방법
- 동료 검토 : 직접 설명하는걸 동료들이 들으면서 결함 발견
- 워크 스루 : 미리 배포하여 사전 검토 후 짧은 회의를 통해 발견
- 인스펙션 : 검토 전문가들이 발견
- CASE : 일관성 분석을 통해 표준 준수 여부 확인
시스템 연계 기술
- DB Link, API/Open API, EAI(송수신 처리 현황 모니터링, 통제), Socket, Web Service
미들웨어
- RPC : 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출
- MOM : 메시지 기반의 비동기형 메시지 전달
- TP-Monitor : 트랜잭션 처리 및 감시
- ORB : 객체 지향 미들웨어
- WAS : 동적인 콘텐츠 처리
자료구조
· 배열 : 첨자로 접근
· 선형 리스트
o 연속 리스트 : 배열을 이용, 삽입 / 삭제 시 자료 이동 용이
o 연결 리스트 : 포인터 이용, 접근 속도 느리고 기억 공간 효율이 좋지 않음
· 스택 : LIFO
· 큐 : FIFO
· 트리
o 노드와 가지를 이용하여 구성
o 트리의 디그리 : 노드들 디그리 중 가장 많은 수
데이터베이스의 정의
· 통합된 데이터 : 중복 최소화
· 저장된 데이터 : 저장 매체 저장
· 운영 데이터 : 고유한 업무 수행
· 공용 데이터 : 여러 시스템 공동 소유
DBMS 기능
· 정의 : 타입 및 구조 명시하는 기능 (DDL)
· 조작 : 검색, 갱신, 삭제, 삽입하는 기능 (DML)
· 제어 : 무결성 유지, 보안 유지, 권한 검사, 병행 제어 (DCL)
트랜잭션
· 하나의 논리적 기능 수행 작업 단위
· 한꺼번에 수행될 일련의 연산
· TCL : COMMIT, ROLLBACK, SAVEPOINT
테스트 케이스
· 테스트 항목에 대한 명세서
· 입력 데이터, 테스트 조건, 예상 결과를 모아 만듬
· 계획/제어 -> 분석/설계 -> 구현/실현 -> 평가 -> 완료
빌드 도구
· 소스 코드를 소프트웨어로 변환
· Ant : 자바 빌드
· Maven : Ant 대안 의존성 라이브러리 관리
· Gradle : 안드로이드 스튜디오
디지털 저작권 관리
· 클리어링 하우스 : 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등 수행
· 콘텐츠 제공자 : 저작권자
· 패키저 : 암호화 프로그램
· 콘텐츠 분배자 : 암호화 콘텐츠 유통
· 콘텐츠 소비자 : 콘텐츠 사용
· DRM 콘트롤러 : 콘텐츠 이용 권한 통제 프로그램
· 보안 컨테이너 : 콘텐츠 원본 전자적 보안 장치
소프트웨어 버전 등록
· Import(빈 저장소에 파일 복사) -> checkout(저장소에서 소스 파일 및 버전 관리 파일 받음) -> commit(갱신) -> update(저장소의 최신 버전 동기화) -> diff
버전 관리 도구
· 공유 폴더 방식
· 클라이언트 / 서버 방식
o 서버의 자료를 복사하여 작업 후 서버에 반영
o 서버에서 버전 관리
o SVN : trunk 에서 작업 후 추가 작업은 branches 디렉토리 안에 작업 후 trunk와 병합, 리버전
· 분산 저장소 방식
o 하나의 원격 저장소와 분산된 PC의 로컬 저장소에 함께 저장되어 관리
o Git : 브랜치를 이용하여 다양한 형태의 테스트, 스냅샷
애플리케이션 테스트
· 확인(Validation) : 사용자 입장에서 요구사항을 만족하는지
· 검증(Verification) : 개발자 입장에서 명세서에 맞게 만들어 졌는지
· pareto 법칙 : 애플리케이션의 20%의 코드에서 80% 결함이 발견
· 정적 테스트 : 프로그램 실행 없이 소스코드나 명세서 분석
· 동적 테스트 : 프로그램 실행
· 화이트박스 테스트 : 원시 코드를 오픈하여 모든 경로를 실행하면서 테스트
o 조건 검사, 루프 검사, 데이터 흐름 검사
o 문장 검증 기준, 분기 검증 기준, 조건 검증 기준, 분기/조건 검증 기준
· 블랙박스 테스트 : 특정 기능이 작동되는 것을 입증하는 테스트
o 동등 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사
· 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트
· 통합 테스트 : 모듈 간 상호 작용 오류 검사
o 비점진적 : 미리 결합되어 있는 것을 테스트, 빅뱅 통합
o 점진적 : 모듈 단위로 통합하면서 테스트, 하향식, 상향식, 혼합식
§ 하향식 : 상위 모듈에서 하위 모듈 방향, 스텁
§ 상향식 : 하위 모듈에서 상위 모듈 방향, 드라이버
§ 혼합식 : 샌드위치 통합 테스트
· 인수 테스트 : 사용자의 요구사항을 만족하는지 테스트
o 알파테스트 : 개발된 환경에서 개발자 앞에서
o 베타테스트 : 사용자 환경에서 사용자가 직접
테스트 오라클
· 정의된 참 값을 대입하여 비교
· 제한된 검증, 수학적 기법, 자동화 기능
· 참 오라클, 샘플링 오라클, 추정 오라클, 일관성 검사 오라클
모듈 연계
· EAI : 기업 내 상호 연동이 가능하게 해주는 솔루션
o point to point, Hub & Spoke, Message Bus, Hybrid
· ESB : 애플리케이션 간 표준 기반 인터페이스 제공
인터페이스 구현 검증 도구
· xUnit : java, C++, .Net
· STAF : 서비스 호출 및 컴포넌트 재사용
· FitNesse : 웹 기반
· NTAF : FitNess + STAF, NHN의 프레임워크
· Selenium : 다양한 브라우저 및 개발 언어
· watir : Ruby
1. 연상 코드: 항목의 명칭이나 약호와 관계 있는 숫자, 문자, 기호를 이용하여 코드를 부여하는 방법
2. 블록 코드: 대상 항목에서 공통적인 것을 블록으로 구분하고 블록 내에 일련 번호를 부여하는 방법
3. 순차 코드: 일정 기준에 따라 최초의 자료부터 일련번호를 부여하는 방법
4. 표의 숫자 코드: 길이 넓이 부피 등 항목의 성질의 물리적인 수치를 그대로 코드에 적용시키는 방법
* 럼바우(Rumbaugh)의 분석 기법
가장 일반적으로 사용되는 방법, 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행함. 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링, 객체 모델링 기법(OMT)이라고도 함.
- 객체 모델링(Object Modeling) = 정보 모델링
시스템에서 요구되는 객체를 찾아내 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시함, 분석 활동의 세 가지 모델 중 가장 중요!
- 동적 모델링(Dynamic Modeling)
상태 다이어그램(상태도)를 이용하여 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현함
- 기능 모델링(Function Modeling)
자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름 중심으로 처리 과정을 표현함.
*ORB(Object Request Broker)
객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현함
최근 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품이 있음
* UML 확장 모델: 스테레오 타입 객체 표현기호= << >>
* 자료 사전
정의 =
구성,연결 +
반복 { }
주석 **
선택 [ㅣ]
생략 ( )
* 협약에 의한 설계의 세 가지 타입: (선 결 불)
-선행조건(precondition): 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
-결과조건(postcondition): 오퍼레이션이 수행된 후 만족하여야 하는 조건
-불변조건(invariant): 클래스 내부가 실행되는 동안 항상 만족하여야 하는 조건(예: 리스트에 있는 노드가 항상 오름차순으로 되어야 함)
* UML 구조 다이어그램(structure diagram)은 시간에 독립적이고 시스템의 개념과 어떻게 각각이 연결되어 있는지를 전달하는 방법을 나타낸다.
구조 다이어그램은
클래스(Class), 객체(object), 복합체 구조(Composite Structure), 배치(Deployment),
컴포넌트(Component), 패키지(Package) 다이어그램 이 있다.
Activity Diagram -> Behavioral Diagram에 속한다.
* 객체지향 설계원칙
1. 단일 책임 원칙(SRP, Single Responsibility Principle)
객체는 단 하나의 책임만 가져야 한다.
2. 개방-폐쇄의 원칙(OCP, Open Closed Principle)
기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.
3. 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
일반화 관계에 대한 이야기며, 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
4. 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙이다.
5. 의존 역전 원칙(DIP, Dependency Inversion Principle)
의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것.
* 자료 흐름도 구성 요소
- 프로세스 (Process)
- 자료 흐름(Data Flow)
- 자료 저장소(Data Store)
- 단말(Terminator)
-Rumbaugh - 가장 일반적으로 사용되는 방법으로 분석 활동을 객체/동적/기능 모델로 나누어 수행하는 방법
-Booch - 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석방법
-Jacobson - Use Case를 강조하여 사용하는 분석방법
-Coad와 Yourdon - E-R다이어그램을 사용하여 개체의 활동들을 데이터 모델링하는데 초점을 둔 기법
-Wirfs-Brock - : 분석과 설계간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법
선택정렬 : O(n^2)
삽입정렬 : O(n^2)
버블정렬 : O(n^2)
합병정렬 : O(Nlog2N)
* 소스코드 품질분석 도구
정적 분석 도구 - pmd, checkstyle, cppcheck, SonarQube, ccm 등
* V(G) = Edge - Node + 2
Edge = 6 (화살표) / Node = 4 (동그라미)
* 반 정규화 유형 중 중복 테이블 추가 방법:
진행 테이블 추가 / 집계 테이블 추가 / 특정 부분만을 포함하는 테이블 추가
* 형상 관리 항목: (프로젝트 요구 분석서, 소스코드, 운영및설치지침서)
* 트리의 차수 : 전체 트리에서 가장 큰 차수
반응형
'정보처리기사, 정보처리산업기사' 카테고리의 다른 글
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 4탄 (0) | 2021.07.02 |
---|---|
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 3탄 (0) | 2021.06.30 |
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 2탄 (0) | 2021.06.30 |
[정보처리기사/ 정보처리산업기사] 제2회 실기 문제 복원, 가답안 (0) | 2021.06.27 |
[정보처리기사/ 정보처리산업기사] 제3회 실기 문제 복원, 가답안 (0) | 2021.06.27 |
댓글