1과목.소프트웨어 설계
🎈 스크럼(Scrum) 기법
- 팀원 스스로가 스크럼 팀을 구성한다
- 개발 작업에 관한 모든것을 스스로 해결해야 한다
- 스프린트는 2주~4주 정도의 기간으로 진행한다
- 제품 책임자(PO : Product owner) : 요구사항이 담긴 배로그를 작성하는 주체 ,
백로그 우선순위 지정, 이해관계자들의 의견 종합
- 스크럼 마스터 : 일일 스크럼 회의 주관 , 팀원 통제 X
- 스크럼 개발 프로세스
1) 스프린트 계획회의
2) 스프린트
3) 일일스크럼
4) 스크럼 검토 회의
5) 스프린트 회고
🎈 XP 기법
- 핵심 가치
1) 용기(Courage)
2) 단순성(Simplicity)
3) 의사소통(Communication)
4) 피드백(Feedback)
5) 존중(Respect)
- 기본원리
1) Whole Team(전체 팀)
2) Small Releases(소규모 릴리즈)
3) Test-Driven Devlopment(테스트 주도 개발)
4) Continuous Intergration(계속적인 통합)
5) Collective Ownership(공동 소유권)
6) Pair Programming(짝 프로그래밍)
🎈 요구사항 정의
- 요구사항 개발 프로세스
1) 도출(Elicition)/추출
2) 분석(Analysis)
3) 명세(Specification)
4) 확인(Validation)/검증(Valification)
- 요구사항 확인 기법
1) 요구사항 검토
2) 프로토타이핑
3) 모델검증
4) 인수테스트
🎈 UML
- 구조적,정적 다이어그램
1) 클래스
2) 객체
3) 컴포넌트
4) 배치(Deployment)
5) 복합체 구조(Composite Structure)
6) 패키지 다이어그램
=> 컴포넌트, 배치 다이어그램은 구현단계에서 사용된다
- 행위,동적다이어그램
1) 유스케이스 (사용사례)
2) 시퀀스 (순차)
3) 커뮤니케이션 (협업)
4) 상태
5) 활동
6) 상호작용 개요
7) 타이밍
🎈 결합도(Coupling)
- 모듈간 상호 의존하는 정도 또는 두 모듈 사이의 연관관계 의미
- 결합도는 낮을수록 좋다
1) 자료 결합도(Data) : 어떤모듈이 다른 모듈을 호출하면서 매개변수나 인수로 데이터를 넘겨주고
호출 받은 모듈은 받은 데이터에 대한 처리를 다시 돌려준다
2) 스탬프 결합도 : 모듈간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
3) 제어 결합도 : 어떤 모듈이 다른 모듈 내부의 논리적 흐름을 제어하기 위해 제어 신호를 이용하여
통신하거나 제어 요소를 전달한다
4) 외부 결합도 : 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 떄
5) 공통 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
6) 내용 결합도 : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때
🎈 응집도(Cohesion)
- 모듈의 내부 요소들의 서로 관련되어 있는 정도
- 응집도는 높을수록 좋다
1) 기능적 응집도 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
2) 순차적 응집도(Sequential) : 모듈 내 하나의 활동으로부터 나온 출력데이터를 그 다음 활동의 입력데이터로 사용할 경우
3) 통신적 응집도(Communication) : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성요소들이 모였을 경우
4) 절차적 응집도(Procedural) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
5) 시간적 응집도(Temporal) : 특정 시간에 처리되는 몇개의 기능을 모아 하나의 모듈로 작성할 경우
6) 논리적 응집도(Logical) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
7) 우연적 응집도(Coincidental) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우
🎈 인터페이스 요구사항 검증
- 요구사항 검증 방법
1) 동료 검토(Peer Review) : 요구사항 명세서 작성자가 직접 설명, 동료들이 이를 들으며 결함 발견
2) 워크 스루 : 검토회의전 명세서 미리 배포하여 사전 검토후 짧은 검토회의 통해 결함 발견
3) 인스펙션 : 명세서 작성자를 제외한 다른 검토 전문가들이 확인하면서 결함 발견
2과목.소프트웨어 개발
🎈 화이트박스,블랙박스 테스트
- 화이트박스
1) 모듈 안의 내용(작동)을 직접볼 수 있다
2) 내부의 논리적인 모든 경로를 테스트해 테스트 케이스 설계
3) 소스코드의 모든 문장을 한번이상 수행함으로써 진행된다
4) 선택,반복 등의 부분들을 수행함으로써 논리적 경로 점검한다
- 종류 : 기초경로검사, 제어구조검사(조건,루프,데이터흐름 검사)
- 블랙박스
1) 모듈 안에서 어떤 일(작동)이 일어나는지 알 수 없다
2) 소프트웨어가 수행할 특정기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트로
=> 기능 테스트 라고도 한다
3) 소프트웨어 인터페이스에서 실시되는 테스트 이다
- 종류 : 동치분할,경계값,원인-효과 그래프, 비교, 오류예측 검사
🎈 애플리케이션 성능 분석
- 애플리케이션 성능
1) 처리량(Throughput) : 일정 시간 내 애플리케이션이 처리하는 일의 양
2) 응답시간(Response Time) : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
3) 경과 시간(Turn Around Time) : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린시간
4) 자원 사용률(Resource Usage) : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량,
메모리 사용량, 네트워크 사용량 등 자원 사용률
3과목.데이터베이스 구축
🎈 데이터베이스 설계 순서
1) 요구 조건 분석 : 요구 조건 명세서 작성
2) 개념적 설계(정보 모델링, 개념화) : 독립적인 개념 스키마 모델링,트랜잭션 모델링, E-R 다이어그램
3) 논리적 설계(데이터 모델링) : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계,
테이블 설계(RDB),논리적 데이터베이스 구조로 매핑, 스키마의 평가 및 정제
4) 물리적 설계(데이터 구조화) : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환, 저장레코드, 접근경로 설계
5) 구현 : 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성,트랜잭션 작성
🎈 데이터 모델에 표시할 요소
- 구조(Structure) : 논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질 표현
- 연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세, 조작하는 기본도구
- 제약조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약조건
🎈 관계대수
- 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어
- 순수관계 연산자 : Select(시그마), Project(파이),Join(세모 마주보는거), Division(나누기)
- 일반집합 연산자 : Union(합집합), Interection(교집합),Difference(차집합),CartesianProduct(교차곱)
🎈 관계해석
- 수학의 Predicate Calculus에 기반을 두고 관계 데이터베이스를 위해 제한
- 원하는 정보가 무엇 이라는 것만 정의하는 비절차적 특성
- 튜플 관계해석,도메인 관계해석
- 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다
- 관계대수로 표현한 식은 관계해석으로 표현할 수 있다
🎈 정규화
- 정규화 : 하나의 종속성이 하나의 릴레이션에 표현 될 수 있도록 분해해가는 과정, DB의 논리적 설계단계에서 수행
- 정규화의 목적
1) 데이터 구조의 안정성 및 무결성 유지
2) 어떠한 릴레이션이라도 데이터베이스 내에서 쵸현 가능하게 만든다
3) 효과적인 검색 알고리즘 생성 가능하다
4) 데이터 중복을 배제해 이상의 발생 방지 및 자료 저장공간의 최소화
5) 개체와 속성의 누락 여부 확인 가능
6) 데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다
- 이상(Anomaly) : 정규화를 거치지 않아 데이터베이스 내에 데이터들이 불필요하게 중복 되어
릴레이션 조작시 예기치 못하게 발생하는 곤란한 현상
🎈 반정규화
- 반정규화 : 시스템의 성능향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복,
분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위
=> 데이터의 일관성 및 정합성이 저하될 수 있다
- 반정규화 방법
1) 테이블 통합 : 1:1 관계, 1:N관계, 슈퍼타입/서브타입(테이블통합)
2) 테이블 분할 : 수평,수직 분할 -> 기본키의 유일성 관리가 어려워진다
3) 중복 테이블 추가 : 집계,진행,특정 부분만을 포함하는 테이블
4) 중복 속성 추가 : 자주 사용하는 속성을 하나 더 추가하는것
🎈 트랜잭션
- 트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위,
한꺼번에 모두 수행되어야 할 일련의 연산들
- 트랜잭션의 특성 : 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영속성(Durability)
- CRUD매트릭스 : C > D > U > R 의 우선순위 적용
4과목.프로그래밍 언어 활용
🎈 기억장치 관리
- 기억장치의 관리 : 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기,위치 등을
지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위해
=> 반입(Fetch), 배치(Placement), 할당(Allocation), 교체(Replacement)
- 배치(Placement) 전략 : 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지 결정
- Locality(지역성,구역성)
1) 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
2) 스래싱을 방지하기 위한 워킹셋 이론의 기반
3) 데닝 교수에 의해 구역성의 개념이 증명 됐으며 캐시 메모리 시스템의 이론적 근거
- 워킹셋(Working Set) : 프로레스가 일정시간 동안 자주 참조하는 페이지들의 집합
5과목.정보시스템 구축 관리
🎈 하향식 비용 산정 기법
- 하향식 비용산정 기법 : 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한
회의를 통해 비용을 산정하는 비 과학적인 방법
=> 전문가 감정 기법, 델파이 기법
🎈 상향식 비용 산정 기법
- 상향식 비용 산정 기법 : 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
=> LOC , 개발 단계별 인월수, 수학적 산정기법(COCOMO), Putnam모형,기능점수 모형
- COCOMO 모형
1) 보헴이 제안,LOC에 의한 비용산정기법
2) Organic,Semi-Detached,Embedded
- Putnam 모형
1) 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포토를 기초로 한다
2) SLIM : 자동화추정도구
🎈 네트워크 관련 신기술
1) IOT : 사람과 사물,사물과 사물
2) Mesh Network : 대규모 디바이스의 네트워크 생성에 최적화, 차세대 이동통신, 홈 네트워킹, 공공안전 등
특수 목적을 위한 새로운 방식
3) Wi-sun : 저전력 장거리 통신기술
4) SDN : 네트워크를 컴퓨터처럼 모델링
5) PICONET : UWB통신기술 또는 블루투스 기술
6) Ad-hoc Network : 재난 현장
7) Network Slicing : 5G
8) NFC : 고주파, RFID기술의 일종
🎈 암호 알고리즘
- 개인키 암호방식 : 동일한 키로 데이터를 암호화하고 복호화한다 ,비밀키는 DB사용 권한이 있는 사용자만 가짐
1) 블록 암호화 : DES,AES,SEED,ARIA
2) 스트림 암호화 : RC4, LFSR
- 공개키 암호방식 : 데이터를 암호화할때 사용하는키는 DB사용자에게 공개하고 복호화 할때의 키는 관리자가 관리
-종류 : RSA,Diffie-Hellman