2022 정보처리기사
D - 11 공부 시작
소스
https://www.youtube.com/watch?v=1lIRsZ6_XFY&list=PLKpxllD6C8CnkSWfqRJsHOYtbBFnvtrcY&index=9
2.28(월) 부터 복습 반복 - 총 5일
1과목 | 소프트웨어 설계
1.1 요구사항 확인
1.1.1 소프트웨어 생명주기 모델
- 폭포수 모형(개발 후 오류 해결 불가, 되돌릴 수 없다, 매뉴얼 작성 필요, 단계별 철저한 검증 필요)
- 프로토타입 모델(디자인x, 인터페이스 중심 개발, 폭포수 보완, 추후 발견될 오류 방지)
- spiral model 나선형 모델(기획-분석-개발-평가 반복, 정밀함, 유지보수 불필요할때까지 반복, 완성도 점진적 향상, 위험관리, 대규모 개발, 요구사항이 많은 개발)
- 애자일 모델(요구사항 지속, 의사소통 지속, 협업, 상호작용, 변화에 빠르게 반응)
1.1.2 스크럼 기법
- 제품 책임자(PO) : 의사결정권이 있는 사람, 백로그 우선순위 갱신
- 스크럼 마스터(SM) : 개발팀을 지원, 조율
- 개발팀 (DT) : 디자이너, 테스터 포함 개발인원
- 계획 회의 : 개발자 별로 스프린트 백로그 작성
- 스프린트 : 할일, 진행, 완료 상태
- 일일 회의(스크럼마스터 주도) : 소멸차트, 장애요?소 해결
- 검토 회의(제품책임자 주도) : 주별회의, 백로그 업데이트, PO 피드백
- 회고 : 지난 일정 되돌아보기, 개선점 찾기
제품 책임자는 매주 검토를 통해 백로그 내용을 업데이트한다. (검토 회의 주관)
스크럼마스터는 매일 회의를 통해 번다운 차트(소멸 차트)를 확인하고 장애요소를 해결한다. (일일 회의 주관)
1.1.3 XP 기법 (extreme programming)
- 짧고 반복적인 개발 주기
- 고객의 적극적 참여 통한 가시성 향상
- 소규모 인원의 개발 프로젝트에 효과적
- 핵심가치 : 피드백, 존중, 용기, 단순, 의사소통
- 개발 프로세스
- 사용자 요구사항 : 스토리
- 릴리즈 계획 수립: 부분과 전체의 개발 일정 수립
- 스파이크 : 오직 하나의 기능 테스트를 위해 작성되는 프로그램
- 이터레이션 : 릴리즈를 좀 더 세분화 한 단위
- 승인 검사 : 이 부분 소프트웨어가 릴리즈되면 고객이 직접 평가
- 소규모 릴리즈 : 릴리즈별 고객 피드백 확인
1.1.4 시스템 파악
구 - 업무시스템 구성 파악(기간업무와 지원업무)
기 - 시스템별 기능 파악(계층형 표시, 목록형x)
인 - 시스템 인터페이스 파악(데이터 종류, 형식, 프로토콜)
아 - 시스템 아키텍쳐 파악
소 - 소프트웨어 구성 파악 (용도, 라이선스 적용방식, 라이선스 개수(비용x))
하 - 하드웨어 구성 파악(서버 사양(클라이언트x), 수량, 이중화 적용 여부)
네 - 네트워크 구성 파악(네트워크 구성도 작성, 물리적 위치, 보안취약점 분석, 유지보수에 활용)
1.1.5 개발 기술 환경 파악
- 운영체제 : 컴퓨터 시스템 자원 관리, 사용자-하드웨어 인터페이스 제공(고려사항: 주변기기 지원여부)
- DBMS : 사용자-데이터베이스, 종속성&중복성 해결(최소화)하기 위해 사용, DB에 대한 모든 권한과 책임이 있음(고려사항: 서버-클라이언트 상호호환성, 이중화 확인)
- 서버(WAS) : 웹 어플리케이션 서버(WAS), 동적 콘텐츠 처리 위한 미들웨어, DB 서버와 연동하여 사용 - 톰캣 등(고려사항: 다양한 옵션)
공통 고려사항
가용성, 성능, 기술지원, 오픈소스, 비용
단, 오픈소스는 라이선스의 종류, 사용자수, 기술의 지속가능성을 파악해야 한다.
1.1.6 요구사항 개발 프로세스
- 요구사항 : 서비스에 대한 설명 및 제약조건
- 기능 : 기능 자체
- 비기능 : 기능 품질, 제약사항
- 사용자 : 쉬운 표현
- 시스템 : 전문 용어
- 요구사항 개발 프로세스
- 도출(의사소통)
- 분석 : 타당성 조사, 특정 기준으로 분류
- 개념 모델링 : 단순화, 개념적 표현, 객체간 관계와 종속성 분석
- 협상 :
- 정형 분석 : 구문과 의미를 갖는 언어 사용, 수학적 기호로 표현
- 명세(문서화)
- 확인(명세서 검증)
1.1.7 UML(Unified Modeling Language)
(용어) 배치 다이어그램 : 물리적인 자원의 위치를 표시하며, 구현 단계에서 사용된다.
(용어) 다중도 표현 : 다수 *,또는 ..
- 사물의 종류 : 구조(요소), 행동, 그룹, 주해
- 관계 : 연관(자동차-타이어)- 다중도, 의존(일시적 관계, 고객등급-사은품...점선), 일반화, 실체화, 집합, 포함(자동차-열쇠)
1.2 화면 설계
-
사용자 인터페이스 : 사용자가 시스템을 편리하게 활용하기 위한 매개체
-
인터페이스의 구성(3가지 분야): 구성, 기능, 제어
- 표현과 구성
-
특징
- 가장 많이 변경된다.
- 사용자 만족도에 가장 큰 영향을 미치는 요소
-
UI 의 구분 : CLI > GUI > NUI
-
UI 기본 원칙 : 유연성, 직관성, 학습성, 유효성
-
설계 지침 : 사용자 중심
...
1-3 어플리케이션 설계
소프트웨어 아키텍처(모듈화/추상화/정보은닉)
아키텍처 패턴
객체지향(Object-Oriented) 기법의 특징
캡슐화
럼바우의 분석 기법
객체지향 설계 원칙(SOLID)
모듈의 품질(결합도&응집도)
코드&디자인 패턴
1-4 인터페이스 설계
시스템 인터페이스 요구사항
인터페이스 시스템 식별, 송/수신 데이터 식별
인터페이스 방법 명세화/설계서 작성
미들웨어
- 미들웨어? 서버와 클라이언트 간의 데이터 교환에 일관성을 부여
- RPC
- DB
- WAS Web Application Server 웹어플리케이션 서버 : 동적인 콘텐츠를 처리하는 웹 환경에 필요한 미들웨어
- ORB
- TPM Transaction Processing Monitor 빠른 응답이 필요한 온라인 트랜잭셔 업무에 사용
- MOM Message Oriented Middleware
소프트웨어의 분류
2과목 | 소프트웨어 개발
2-1 데이터 입/출력 구현
자료구조의 분류
- 선형구조
- 배열
- 리스트(배열 + 데이터 편집기능) : 연속 / 연결
- 스택
- 큐
- 비선형구조
- 그래프
- 트리
데이터베이스/DBMS/SQL
- 정의, 조작, 제어 / 독립성
- 데이터 정의어, 조작어, 제어어
- 트랜잭션 : 한꺼번에 수행되어야 하는 작업(연산)의 단위(모음)
바이너리 트리(Tree)의 운행법(Traversal)
Prefix, Infix, Postfix 변환법
DB와 DBMS의 개요
절차형 SQL-프로시저,사용자정의함수,트리거
스키마(Schema)
2-2 통합 구현
통합구현
단위 모듈 테스트
- 추상화, 구조화, 명세화
개발 지원도구
- IDE
- 빌드도구
- 기타 협업도구
2-3 제품 소프트웨어 패키징
제품 소프트웨어 패키징(SW 패키징)
- 코드완성 -> 코드 구분 -> 모듈화 -> 빌드...
- 최종적으로 릴리즈 : 테스트 거친 추가기능 및 서비스 추가
소프트웨어 형상관리(버전관리)
DRM 관리기술
SW 설치 매뉴얼 작성
- 목차 및 개요, 서문, 기본 항목
SW 버젼 관리
- 클라이언트/서버 방식(SVN)
- 분산 저장소 방식(Git)
- 빌드 자동화 도구
- Jenkins(Java기반)
2-4 어플리케이션 테스트 관리
어플리케이션 테스트 분류
- 기본 원리와 특징
- 파레토 법칙, 살충제 역설, ...
- 개발자 입장의 검증테스트 / 사용자 입장의 테스트
- 정적 테스트 / 동적 테스트
- 블랙박스 / 화이트
- 목적에 따른 테스트
개발 단계별 어플리케이션 테스트
- 단위 테스트 -> 통합테스트(상향식, 하향식) -> 시스템 테스트 -> 인수테스트(사용자)
- 테스트 프로세스
- 계획 -> 설계 -> 시나리오 -> 수행 -> 결과평가 -> 결함관리
테스트 자동화
- 유형별 자동화 도구
- 단계별 테스트 자동화 도구
결함 관리
- 결함 관리 프로세스
- 결함 상태 추적
- 결함의 분류와 심각도
어플리케이션 성능 분석
- 처리량, 경과 시간, 응답 시간, 자원 사용률
- 성능 분석도구
- 시스템 모니터링 도구

2-5 인터페이스 구현
인터페이스 설계 확인
- 모듈 기능 확인
- 공통 기능 확인
- 모듈 연계 솔루션
- Message Bus (Middleware)
인터페이스 기능구현 정의
-
모듈 세부 설계서 : 컴포넌트 명세서, 인터페이스 명세서
-
구현
- 통신을 이용한 구현 : XML, JSON
- 엔티티를 이용한 구현 : 송신측, 수신측 테이블 나누고 트랜잭션 구성 또는 통합테이블 이용
-
예외(오류)처리 방식

-
보안 취약점 구분 : 통신, 어플리케이션, DB
인터페이스 기능구현 검증
3과목 | 데이터베이스 구축
3-1 논리 데이터베이스 설계
DB 설계/데이터모델의 개념
데이터 모델의 구성요소(논리개체/속성/식별자)
- 개체 : 명명기준 단수 명수
- 속성 : 기본속성 & 설계속성(ex.도서코드) & 파생속성(할인가) / 기본키 & 왜래키 & 일반속성
- 식별자 : 유일, 불변 / 외부 내부 / 단일 복합 대리 / 주 식별자
-> 개체 정의서
논리 개체 관계 정의
- 관계 표현 : 1대1 / 다대다- 해소 (회원 - 주문내역 - 상품내역)
- 종속 관계
- 식별
- 중복 관계
- 재귀 관계
- 배타 관계

E-R 다이어그램
- Barker, IE Notation
관계형 데이터베이스의 구조
관계대수 및 관계해석
정규화 : 품질보장, 성능향상, 저장공간 최소화
- 1차 정규화 - 반복 그룹 제거
- 2차 정규화 - 부분 함수적 종속성 제거
- 3차 정규화 - 이행적 종속성 제거
- 4차 정규화 - 다치 종속 제거
논리 데이터 모델 품질 검증
3-2 물리 데이터베이스 설계
관계형 DB 구조
- 속성 열 차수 degree / 튜플 행 기수 cardinality
제약조건과 관계대수
- 개체 무결성
- 도메인 무결성
- 참조 무결성
- 관계 대수
- 순수 관계 연산자 : SELECT / PROJECT / JOIN / Natural Join / Division
시스템 조사 분석 및 물리설계
- 비즈니스 도메인과 명명 규칙
- 시스템 운영 체계 및 지원
물리 데이터베이스 설계서 작성
- 트랜잭션 : 디비에서 이루어지는 여러 작업들을 구분한 논리적 단위
- 인덱스 : B + 트리 기반 인덱스 / 비트맵 인덱스 / 함수기반 인덱스 / 비트맵 조인 인덱스 / 도메인 인덱스
- 분산설계 : 대용량 처리
보안 설계
논리 데이터베이스➡물리 데이터베이스 변환
- 엔티티 & 테이블 변환
- 슈퍼 타입 변환
- 속성 & 칼럼 변환
3-3 SQL 응용, 활용
SQL
절차형 SQL
- 프로시져 - 작업 결과를 디비에 반영
- 트리거 - DB 변환시 자동을 실행
- 사용자 정의 함수 - 작업 결과를 호출 쿼리분에 반환
3-4 데이터 전환
데이터 전환 계획 수립(ETL)
4과목 | 프로그래밍 언어 활용
4-1 서버 프로그램 구현
서버 프로그램 구현(1)
서버 프로그램 구현(2)
4-2 프로그래밍 언어 활용
프로그래밍 언어 활용(1)
프로그래밍 언어 활용(2)
프로그래밍 언어 활용(3)
프로그래밍 언어 활용(4)
주로 기출되는 기초 C언어(1)
주로 기출되는 기초 C언어(2)
주로 기출되는 기초 C언어(3)
주로 기출되는 기초 C언어(4)
주로 기출되는 기초 c언어(5)
4-3 응용 SW 기초 기술 활용
응용 SW 기초 기술 활용(1)
응용 SW 기초 기술 활용(2)
응용 SW 기초 기술 활용(3)
응용 SW 기초 기술 활용(4)

5과목 | 정보시스템 구축 관리
5-1 소프트웨어 개발 방법론 활용
소프트웨어 개발 방법론 활용(1)
소프트웨어 개발 방법론 활용(2)
5-2 IT 프로젝트 정보 시스템 구축 관리
IT 프로젝트 정보시스템 구축관리(1)
IT 프로젝트 정보시스템 구축관리(2)
IT 프로젝트 정보시스템 구축관리(3)
5-3 소프트웨어 개발 보안 구축
소프트웨어 개발 보안 구축(1)
소프트웨어 개발 보안 구축(2)
5-4 시스템 보안 구축