* 3과목과 섞인 부분도 있습니다. 제가 보기 편한 위주로 정리했기 때문이죠
230122추가 : 다빈도 내용은 빨간글씨 처리합니다 (회색바탕은 개인적 중요도를 나타냄)
데이터베이스 언어
- 릴레이션 = 테이블 수
- 동일 튜플(행) 포함 불가, 어트리뷰트(열) 사이 순서없음, 속성값은 원자값(원자값 = 가장 작은 논리적 단위)
- 릴레이션 차수 = 속성 수 = 어트리뷰트(열) 수 = 차수를 구할 땐 +
- 튜플 = 로우(행) 수 = 카디널리티 = 카디널리티를 구할땐 *
- 어트리뷰트 = 컬럼(열) 수
- 어트리뷰트 값 = 각 데이터
- 어트리뷰트 집합 = 도메인
- 뷰 : 하나이상 테이블로 유도되는 가상 테이블
- 논리적 독립성, 인덱스 없음, 데이터 보완 용이, CREATE로 생성하고 DROP으로 제거함
데이터베이스 설계
- 요구를 분석 후 컴퓨터에 저장할 수 있는 구조로 변경하여 구현하는 과정
[ 선형 자료 구조 ]
- 스택 : 한쪽 끝으로만 삽입/삭제 = 후입선출 (LIFO)
- 큐 : 한쪽은 삽입, 한쪽은 삭제 = 선입선출(FIFO)
- 데크 : 양방향에서 삭제와 삽입이 가능함
[ 설계 고려 요소 ]
- Integrity 무결성 : 장점들(데이터 정확성, 일관성, 유효성 유지)을 위해 연산에 제한을 두는 데이터 제약 조건
- 개체 무결성 = 기본키는 NULL , 중복 불가
- 도메인 무결성 = 주어진 속성값은 정의된 도메인 속 값
- 참조 무결성 = 외래키는 NULL, 참조 릴레이션 기본키 중 한개
- NULL 무결성
- 사용자 정의 무결성
- 키 무결성 = 하나의 릴레이션은 최소 1개 키 보유
- 관계 무결성 = 튜플 관계 관련 적절성 여부 충족
- 일관성 : 질의 응답이 늘 일관적
- 회복성 : 장애 발생시 직전으로 복구
- 보안성 : 불법 데이터 노출되어도 보호됨
- 효율성 : 응답 시간 단축 = 생산성 향성, 공간최적화
- 확장성 : 운영에 영향없이 확장
[ 데이터 베이스 설계 순서 ]
1) 요구조건 분석 : 명세서 작성
2) 개념적 설계 : E-R다이어그램 모델링, 추상화 , 트랜잭션 모델링
3) 논리적 설계 : 논리 스키마 제작, 트랜잭션 인터페이스 설계
4) 물리적 설계 : 물리적 구조로 데이터화, 접근 경로 설계
5) 구현 : DDL로 DB와 트랜잭션 생성
[ 인터페이스 기능 구현 정의 ]
- 컴포넌트 명세서(=외부통신명세) 확인 ~ 인터페이스 명세서(=세부조건명세) 확인 ~ 일괄 인터페이스 기능 구현 정의 ~ 정의된 인터페이스 기능 구현 정형화
- 정형 명세 = Z, VDM, Petri-Net(모형기반), 대수법 = 간결
- 비정형 명세는 자연어 기반으로 작성하여, 이해가 쉽지만 일관성이 떨어짐
데이터베이스 설계 : 논리적 설계 단계
- 특정 DBMS가 지원하는 논리적 자료 구조로 매핑하고 변환하는 모델링
- 종속적 논리스키마(스키마 평가,정제,인터페이스 설계)를 활용함
- 외부스키마 = 각 개인 입장 / 내부스키마 = 설계자 입장, 제약조건과 무결성 서술
[정규화]
- 특징 : 안정성과 무결성 유지, 효과적 검색 알고리즘 생성, 누락요소 확인, 어떤 릴레이션도 DB내 표현 가능
- 원칙 : 무손실, 분리, 중복성 감소
- 도(메인원자) 부(분제거) 이(행적) 결(정자후보키) 다(치값) 조(인종속)
- 완전 함수종속이란 B가 A 속성 전체에 함수 종속하고 부분 집합 속성에 함수 종속하지 않음을 의미한다.
[반정규화]
- 특징 : 처리량 감소로 빠른 속도 (단점은 일관성과 정합성 감소), 속도를 위한 저장공간 투자, 데이터 단순화 목적의 통합
- 방법(추가 통합 분할 속성추가)
[ 머징 ]
- 목적 : 둘 이상의 데이터 세트를 단일 세트로 결합 / 공통 이름에 따른 데이터 프레임 병합
[ 집단화 ]
- 속성 세트로 구성되는 새로운 속성 정의
데이터베이스 설계 :물리적 설계 단계
- 기본 데이터 저장단위인 레코드로 구조화 진행
- DB파일 저장 구조, 엑세스 경로 설정
- 논리적 구조로 표현된 데이터를 물리적 구조 데이터로 변환, 성능에 중요한 작업
- 성능 분석 측정 : 응답시간, 가용성, 사용률 (비용과 튜닝은 포함대상이 아님!)
[ 파티션 설계 ]
- 물리데이터 저장소 분리
- RANGE 범위 분할 : 지정 열의 값 기준 분할, 관리시간 단축
- HASH 해시 분할 : 해싱함수(무결성 검증 목적, 제곱/분석/제산division)적용따른 결과값 분할
- COMPOSITE 조합 분할
- LIST 리스트 분할 : 해당 컬럼 조건이 많이 들어오는 경우
- ROUND-ROBIN 회전을 통한 새로운 행을 파티션의 할당(고른분포 실현)
데이터베이스 회복
- 트랜잭션 도중 손상(트랜잭션 장애 / 시스템 장애 / 미디어 장애)된 DB를 취소연산(UNDO) , 기법으로 복구하는 작업
- Immediate 즉각 갱신 기법 : 취소연산 사용으로 실DB에 반영
- Defferend 연기 갱신 기법 : 트랜잭션 완료까지 갱신을 연기하고 취소연산 사용
- Check 검사점 기법 : 검사점을 로그로 보관하여 부분 취소로 회복
- Shadow 그림자페이지 대체 기법 : 유일하게 로그 없이 복사본으로 회복
시스템 구성요소
- 입력 / 처리 / 출력 / 제어 / 피드백
알고리즘식
- 전위식 = 연산자가 앞에 = 연 변 변
- 중위식 = 연산자가 안에 = 변 연 변
- 후위식 = 연산자가 뒤에 = 변 변 연
[ 식 변환진행 방식 ]
1) 연산자를 원래 용도따라 괄호로 묶음
- 원래 용도 = 연산순서 = (왼부터 우선순위 높음) () * +
2) 괄호를 기준하여 순회법에 따른 배치함
3) 괄호를 제거한 그대로 결과로 입력
* 추가 문제 = https://chobotogosu.tistory.com/39
전위식에서 후위식으로 옮길때는 중위식을 거치고 후위식으로 가야함
사실 이거 맞추려고 식 다 공부할 시간 없으면 다른 개념을 정확히 아는게 현명할 수도
- 모듈a의 Fan In = a를 제어하는 수 = 영향을 받아짐 = 공유도
- 모듈a의 Fan Out = a가 제어되는 수 = 영향 줌 = 제어도
SW 개발
- 관리 유형 : 일정관리 / 비용관리 / 인력관리 / 위험관리 / 품질관리
- SW품질속성 = 가용성, 변경용이성, 성능, 보안성, 사용편의성, 시험용이성
[ 설계 방식 ]
- 상위설계 : UI 설계, 시스템 분할, 아키텍쳐 설계(전체적 구조, DB, 인터페이스)
- 하위 설계 : 상세 설계 , 모듈 설계 (자료구조와 알고리즘 등 내부구조)
* 서비스 지향 아키텍쳐 SOA = Presentation 계층(UI) + Process 계층(서비스) + 비즈니스 계층(도메인) + 데이터 접근 계층(Persistency)
[ SW 요구사항 분석 ]
- 요구사항 도출(관계 형성) ~ 요구사항 분석(제약+조사+문서화) ~ 명확한 명세 작성 ~ 확인
[ 프로젝트 단계 정의 ]
- 1단계 : 관리와 재사용 현황을 방법론에 반영
- 2단계 : 절차를 소프트웨어 생명주기에 맞춰 수립, 프로세스 확인
- 3단계 : 정의된 개발 방법론의 매뉴얼 작성
[ 협약 설계 ]
- 클래스 =공통 속성과 연산을 갖는 객체 집합
- 클래스에 대한 여러 가정을 공유하도록 한 명세 의거한 설계
- 명세 : 선행조건(수행전만족사항) , 결과조건(수행후만족사항) , 불변조건(클래스 실행시 항상만족사항)
[ SW 개발 방법론 ]
1) 애자일 방법론 : 전통 방법론 보완한 기능 초점적, 일정주기 반복, 고객 중심, 코드가 문서보다 중요함
- 구체적 모형 = XP(Extreme Programming) / 스크럼 / 린
- XP 5 원칙 : 의사소통 단순성 용기 존중 피드백
- XP 구체적 개발모형 = Pair Programming , Contious Integration , Collective Ownership
2) 구조적 방법론 : 전체 시스템을 기능 따라 개발 후 통합 = 프로세스 중심, 하향식, 나씨-슈나이더만 차트(IF논리기술 바탕의 직사각형 포개기 기법) 활용
3) 정보공학 방법론 : DB 사용, 은행권용, 관리 절차와 작업 기반을 체계화
4) 객체지향 방법론 : 객체 단위로 시스템 분석 및 설계
5) 컴포넌트 기반 방법론(CBD) : 큰 확장성, 재사용, 큰 생산성, SW구성의 컴포넌트 조립을 통한 새 응용프로그램 작성
[ 소프트웨어 생명주기 모델 SDLC = SW Development Life Cycle ]
- 요구사항 분석 ~ 설계 ~ 구현 ~ 테스트 ~ 유지보수
폭포수 | BY보헴, 선형 순차적=앞단계 요구 추가 반영없음 = 결과에 위험발생가능, 타당성 위주 |
나선형 | 점진지속적, 대규모 시스템용, 고객 피드백 반영 가능, 위험관리 위주 = 유지보수 없음 - 계획 ~ 위험분석 ~ 개발 검증 ~ 고객평가 |
프로토타입 | 요구한 주요기능을 넣은 견본을 통한 결과 예측 (폭포수 보완모델) |
RAD모형 | 쉽게 응용프로그램 제작이 가능한 시각적 도구 * JRP ~ JAD ~ 구축/운영 ~ 이전 |
[ SDLC 보완 방법론 ]
- 테일러링 : 정의된 개발 방법론 보완
- 내부 요건 : 환경 / 납기와비용 / 구성원기술력 / 프로젝트 규모
- 외부 요건 : 표준 품질 기준 / 법 제약
- Seven TouchPoints : 검증된 모범 사례를 기존 SDLC에 통합 보완
- Clasp : SDLC 운영 초기에 보안 강화를 목적한 정형화 프로세스
국제 프로세스 품질 표준 ISO / IEC
- 기본생명주기 : 획득, 공급, 개발, 운영, 유지보수 (그 외는 지원 생명주기)
[ISO / IEC 12119]
- 패키지 SW 품질 요구사항과 테스트 표준화
[ISO / IEC 9126] 기 신 사 효 유 이
- 소프트웨어 품질 특성 및 척도 표준화
1) 기능성 : 명시요구력 = 적합성,정확성,상호운용성,보안성,준수성
2) 신뢰성 : 유지력 = 성숙성,결함허용성,복구성
3) 사용성 : 사용력 = 이해성,학습성,운용성,준수성
4) 효율성 : 자원양 따른 요구된 성능력 = 시간반응성, 자원효율성, 준수성
5) 유지보수성 : 변경능력 = 분석성, 변경성, 안정성, 시험성, 준수성
6) 이식성 : 환경 전이력 = 적응성, 설치성, 공존성, 대체성, 준수성
[ISO / IEC 122207] 기 조 지
- SW생명 주기 프로세스를 각 입장에서 지속 개선하는 행위
- 기본 공정 / 조직 공정 / 지원 공정
[ISO / IEC 15504] = SPICE
- SW 품질 및 생산성 향상을 위한 평가 프레임워크 제공, 개선의 국제 표준 기준
- 순서 : 불안정 ~ 수행 ~ 관리 ~ 확립 ~ 예측 ~ 최적화
[ CMMI ] Capability maturity model integration
- 조직의 능력 성숙도 평가용 통합 모델
- 순서 : 초기화(정의없음) ~ 정의(표준 정의하여 수행) ~ 전략적(핵심 프로세스 통제) ~ 최적화(프로세스 역량 향상 목적의 혁신 활동)
어플리케이션 테스트 법칙
- 작은 부분에서 큰 부분으로 확대하면서 테스트
- 필수 요소 : Validation(요구에 부합하는가) + Verification(명세서에 부합하는가)
[ 법칙 종류 ]
- 파레토 법칙 : 오류 80%는 전체 20%에서 발견됨, 결함집중 법칙과 연계됨
- BOEHM 법칙 : LOC에 의한 비용 산정
- LOC = 원시 코드라인 수 기법 = 노력/인원수 = (라인수/라인)/인원수 = 예상 라인 / 월 평균 생산라인*인원수
- ABSENCE of errors fallacy 오류 부재의 궤변 : 결함 없어도 유저 불만족이면 저품질 간주
- PESTICIDE PARADOX 살충제 페러독스 : 동일 케이스 테스트 반복시 결함 없음
- BROOKS 법칙 : 지연 프로젝트에 인력 투입시 더 지연됨
[ 소스코드 따른 테스트 종류 ]
1) 정적 테스트 : 실행없이 소스코드 분석하여 검토 , 초기개발용
- 동료 검토 (명세서 설명)
- 워크스루(명세서 선배포)
- 인스팩션(타전문가의 명세서 확인)
- CASE=Computer Aided Software Engineering(자동화,분산처리, 차트와 다이어그램 등 협업 도구 활용)
- 기능 구분 : 상위(요구분석 및 설계단위 지원) / 하위(코드 작성 및 문서화) / 통합(개발 전 주기 지원)
2) 동적 테스트 : 실행으로 오류 도출, 개발 전과정용
- 소스/구조 볼 수 있는지 없는지 따른 테스트 2가지 분류
블랙박스 테스트 | 경계값 분석 Boundary value |
동치 분할 보완방법, 경계값 검사 |
원인-효과그래프 Cause-effect Grapging |
데이터 관계와 출력에 미치는 영향 분석 후 고효용 케이스 선정 검사 | |
오류예측 검사 Fault based |
과거 데이터 기반 확인 검사 | |
비교 검사 Comparsion |
원본과 동일 자료로 동일 결과 출력하는지 여부 검사 | |
동치 분할 기법 Equivalence Partitioning |
입력자료를 타당/비타당 균등 배분하여 검사 | |
화이트 박스 테스트 (주로 개발 단계에서 수행) |
기초경로 검사 Based path |
논리적 복잡성 측정 |
제어구조 검사 Control Structure |
논리 조건 검사, 루프 검사, 데이터 흐름 변수 검사 |
[ 개발 단계 따른 테스트 종류 ]
- 개발단계 연결 표현의 V-모델 사용
1) 인수 테스트 : 사용자 니즈 충족 여부 파악
- 테스트 명칭 : 계약 , 규정 , 알파(개발자가 통제환경 속), 베타(사용자가 비통제 환경속) , 사용자 인수(시스템 적절성 파악), 운영(관리자가 관리)
통합
[ 단위 모듈 ]
- 1동작 수행을 위한 기능 모듈화 = 1기능
- 단위 모듈 구현 프로세스 : 단위 기능 명세서(추=>구체=>캡) ~ 입출력 구현 ~ 알고리즘 구현 ~ 테스트
[ IPC ] = Inter-Process Communication
- 단위 모듈 구현 시 입출력을 구현하는 연동과 통신
- 대표 메소드 (5개)
[ 통합 종류 ]
- 하향식(HIPO) 통합 : 상에서 하로 검사, 제어모듈 기준 아래쪽 통합
- 종속 모듈을 STUB(임시모듈)로 대체 ~ 실모듈과 교체 ~ 모듈 통합시마다 검사 ~ 회귀 검사
- 상향식 통합 : 하에서 상으로 검사, 제어모듈 없음
- 클러스터 = 데이터 액세스 효율 향상 목적의 물리적 저장법, 하나 이상의 로우를 같은 장소에 저장함
- 하위 모듈을 클러스터로 결합 ~ 입출력 조정용도의 DRIVER 작성 ~ 클러스터 검사 ~ DRIVER 제거 ~ 클러스터를 상위로 이동시켜 결합
'관련 도서 및 지식 > 자격증' 카테고리의 다른 글
[ 정보처리기사 필기 ] 3파트 요약 : SQL , KEY, 트랜잭션 , 분산DB , 병행 제어 , 관계 데이터 모델 , 관계 대수 연산 , 모듈 연계 솔루션 , 테스트 (0) | 2023.01.15 |
---|---|
[ 정보처리기사 필기 ] 1~2파트 요약 (2) : 알고리즘, 객체 지향 구성, UML, 코드, 품질 분석, 설계 (0) | 2023.01.14 |
[ 정보처리기사 ] 2020 CBT 개념 공부 - 언어 활용 (0) | 2023.01.13 |
[ 정보처리기사 ] 2020 CBT 개념 공부 - 트리 + 알고리즘 식 표기법 (0) | 2023.01.13 |
[ 정보처리기사 ] 2020 CBT 개념 공부 - 테스트 종류 (0) | 2023.01.13 |