안녕하세요.
오늘은 정보처리기사 실기 내용을 전체적인 흐름을 기억하기 쉽도록 스토리텔링 기법으로 나열해보려 합니다.
동화나 위인전 등이 스토리가 있는 내용이기 때문에 지금까지도 잃지 않고 기억한다는 생각이 들어라구요..
정보처리기사 실기 책을 살펴보니 실제로 개발 프로젝트를 하는 과정과 매우 유사하기에
그래서!! 공부도 할겸 스토리텔링을 적용하여 정리해 보겠습니다 ㅎㅎ
'실기'라는 아이가 백엔드 개발자가 되어 회사에 취업을 하고 개발 프로젝트까지 완료하는 과정을 정리해보았습니다.
줄거리와 상세내용로 나눠 정리하려하는데 줄거리는 간단한 흐름이고,
상세 내용은 단계에 대한 간략한 내용 정리의 내용입니다.
스토리텔링 줄거리
프로젝트 준비 작업
'실기'라는 아이가 백엔드 개발자로 취업하게 되었습니다.
처음 회사에 들어가서 응용 SW 기초 기술 활용(1)을 교육 받게 됩니다.
교육이 끝나고 개발 프로젝트에 투입하게 되면 클라이언트의 요구사항을 확인(2) 하게 됩니다.
그 요구 사항을 기반으로 화면 설계(3)에 들어가면서
데이터의 구조를 조직화하고 설계하기 위해서 데이터 입출력을 구현(4) 하고,
서로 다른 시스템간의 원활한 통신을 위한 연계 모듈을 위해 통합 구현(5)을 합니다.
프로젝트 개발 작업
프로젝트 준비가 완료되면 프로젝트에 맞는 개발 환경을 구성 및 설계를 위해 서버 프로그램을 구현(6) 합니다.
서버 프로그램에 맞추어 개발을 하기 위해선 개발 언어를 선택하고
언어의 특성 및 라이브러리를 기반으로 하여 SW를 구현하기 위해 프로그래밍 언어를 활용(7) 합니다.
또한, 데이터를 정의하고 조작하며 제어할 수 있도록 SQL을 응용(8)하도록 합니다.
SW와 연계 모듈간의 데이터 관계를 분석하고 효율적인 연계가 이루어지도록 인터페이스를 구현(9) 합니다.
그리고 보안 취약점을 제거하고 해킹에 대비하기 위해 소프트웨어 개발 보안 설계(10)를 합니다.
프로젝트 마무리 작업
어느 정도 개발이 완료된 프로젝트를 클라이언트에게 제공하기 전에
요구사항대로 구현되었는지 검증하기 위해 애플리케이션 테스트 관리(11)를 진행하고,
테스트를 통해 개발이 완료된 제품을 설치와 사용에 필요한 환경 등,
전체적인 내용을 포함하는 메뉴얼을 작성하여 고객에게 전달하도록 제품 소프트웨어 패키징(12)을 하면 완료됩니다.
스토리텔링 상세내용
'실기'는 회사에 들어가 처음으로 접한 내용은
운용체제의 특징과 네트워크 기초 활용을 위한 응용 SW기초 기술 활용을 교육받게 됩니다.
응용 SW기초 기술 활용
운용체제 특징 :
윈도우/유닉스의 운영체제 특징
메모리 배치&관리 기법
프로세스 관리&스케줄링(선점/비선점)
클라우드 서비스 유형
네트워크 기초 활용 :
OSI 7 Layer 특징
트로토콜의 3요소
IPv4/IPv6
라우팅 프로토콜(3계층 - RIP/OSPF/BGP/라우팅알고리즘)
전송계층(4계층 - TCP특징)
교육이 끝나고 첫 프로젝트를 맡게 되었습니다.
소프트웨어 개발방법론과 현행 시스템 분석하고 클라이언트로부터 요구사항을 확인하게 됩니다.
요구사항 확인
소프트웨어 개발방법론 :
소프트웨어 생명주기 모델 종류(폭포수,나선형등)
나선형 모델 절차
소프트웨어 개발방법론 종류(애자일, 객체지향 방법론 등)
비용산정모형 분류(하향식(델파이)/상향식(COCOMO) 선정방법)
일정관리 모델 종류
현행 시스템 분석 :
소프트웨어 아키텍처 4+1뷰/패턴 유형/비용평가 모델 종류
디자인 패턴 종류
osi 7계층
요구사항 확인 :
요구사항 개발 프로세스. 요구사항 도출 단계 주요 기법(델파이기법, 설문조사, 브레인스토밍)
정형기술 검통(동료검토,워크스루,인스펙션)
요구사항을 기반으로 UI요구사항을 확인하고 UI를 설계하는 화면 설계를 거칩니다.
화면 설계
UI 요구사항 확인 :
UI유형 (CLI,GUI,NUI,OUI)
UI설계 원칙(직관성, 유효성 등)
UI설계 지침(사용자 중심, 일관성 등)
UI요구사항 구분 (기능적/비기능적)
UI품질 요구 사항(기능성, 신뢰성 등)
UI 설계 :
UML 특징(가시화, 구축 등)
UML 구성요소 (사물,관계,다이어그램)
UML다이어그램(구조적(클래스,객체,패키지 등)/행위적(유스케이스,시퀸스 등))
UI시나리오 문서의 작성 요건 (완전성, 일관성 등)
소프트웨어와 데이터 간 연관성, 제약조건을 식별하기 위해서 논리 데이터 저장소를 확인하고 물리 데이터 저장소를 설계 / 데이터베이스 기초를 활용하여 데이터 입출력을 구현합니다.
데이터 입출력 구현
논리 데이터 저장소 확인 :
데이터 모델링 절차(개념/논리/물리)
일반 집합 연산(합/교/차집합, 카티션 프로덕트)
논리데이터 모델링 속성(개체, 속성, 관계)
이상현상(삽입/삭제/갱신)
정규화 단계, 반정규화
물리 데이터 저장소 설계 :
파티셔닝의 종류 (레인지/해시/리스트/컴포지트 파티셔닝)
파티션의 장점 (성능향상 등)
데이터베이스 기초 활용하기 :
데이터베이스 유형(키-값 DBMS 등)
DBMS 특징(무결성, 일관성 등)
데이터마이닝 주요 기법(분류/연관/연속 규칙, 데이터 군집화)
서로 다른 시스템간의 원활한 통신을 위한 연계 모듈을 위해 연계 데이터를 구성하고 연계 메커니즘을 구성하며, 내외부 연계 모듈 구현을 통해 통합 구현(5)을 합니다.
통합 구현
연계 데이터 구성 :
연계 요구사항 분석 기법 및 참고 문서
인터페이스 명세서 구성요소
연계 메커니즘 구성 :
주요 연계 기술(직접(DB링크, JDBC 등)/간접(연계 솔루션(EAI), 소켓 등) 연계)
내외부 연계 모듈 구현 :
EAI 구축 유형
ESB방식
프로젝트 준비가 완료되면 프로젝트에 맞는 개발 환경을 구성 및 설계를 위해 개발환경을 구축하고 공통 모듈을 구현하며 서버 프로그램 및 배치 프로그램을 구현하도록 합니다. (서버 프로그램을 구현(6))
서버 프로그램 구현
개발환경 구축 :
개발 도구의 분류 (빌드/구현/테스트/형상관리 도구)
형상 관리 절차(식별,통제,감사,기록)
소프트웨어 형상 관리 도구 유형(공유 폴더 방식, 클라이언트/서버 방식, 분산 저장소 방식)
공통 모듈 구현 :
응집도
결합도
MVC 패턴 역할
서버 프로그램 구현 :
서버 프로그램 세부 구현 프로세스(DTO>DAO 등)
배치 프로그램 구현 :
배치 프로그램의 유형 (이벤트/온디맨드/정기 배치)
Cron 표현식
서버 프로그램에 맞추어 개발을 하기 위해선 개발 언어를 선택하고
언어의 특성 및 라이브러리를 기반으로 하여 SW를 구현하기 위해 프로그램 언어를 선택하여 기본 문법을 활용하고 언어의 특성을 이용하도록 합니다.(프로그래밍 언어를 활용(7))
프로그래밍 언어 활용 (각 언어별(자바,C,파이썬 등)로 출제)
기본 문법 활용 :
데이터 타입
기본 저장 공간
자료형
연산자
함수
명령문
클래스
인터페이스
언어 특성 활용 :
객체 구성 요소(객체,속성,메서드)
또한, 데이터를 정의하고 조작하며 제어할 수 있도록 데이터베이스 기본을 숙지하고 응용 SQL과 절차형 SQL을 활용할 수 있도록 SQL을 응용(8)하도록 합니다.
SQL 응용
데이터베이스 기본 :
트랜잭션의 특성(원자성,일관성 등)
트랜잭션의 상태
TCL 명령어(커밋,롤백,체크포인트)
병행제어 미보장 시 문제점(갱신손실 등)
병행 제어 기법(로킹 등)
회복 기법 종류(로그 기반 회복 기법 등)
DDL 대상(도메인, 스키마 등)
인덱스 종류(순서/해시 인덱스 등)
DDL 명령어(create, alter 등)
DML 유형(select, insert 등)
GRANT 명령어(GRANT ON TO)
REVOKE 명령어(REVOKE ON FROM)
응용 SQL 활용 :
윈도 함수 분류(순위/행 순서, 그룹 내 비율 함수)
절차형 SQL 활용 :
절차형 SQL 종류(프로시저, 사용자정의함수, 트리거)
SW와 연계 모듈간의 데이터 관계를 분석하고 효율적인 연계가 이루어지도록 인터페이스 설계를 확인하고 기능을 구현하며 구현을 검증하는 작업을 통합적으로 하게 됩니다. (인터페이스를 구현(9))
인터페이스 구현
인터페이스 설계 확인 :
EAI구축 유형
인터페이스 기능 구현 :
JSON
XML
AJAX
데이터베이스 암호화 알고리즘 (대칭키/비대칭키/해시 암호화 알고리즘),
인터페이스 구현 검증 :
인터페이스 구현 검증 도구(xUnit, FitNesse 등)
인터페이스 오류 처리 방법
그리고 보안 취약점을 제거하고 해킹에 대비하기 위해 소프트웨어 개발 보안의 설계 및 구현을 합니다.(소프트웨어 개발 보안 설계(10))
소프트웨어 개발 보안 구축
소프트웨어 개발 보안 설계 :
SW개발 보안의 3대 요소(기밀성,무결성,가용성)
SW개발 보안 용어(자산,위협,취약점,위험)
DDoS 공격 구성요소(핸들러, 에이전트 등)
인증 기술 유형(지식/소지/생체/특징 기반)
접근 통제 보호 모델(벨라파둘라/비바)
서버 접근 통제 유형 (임의적/강제적/역할기반 접근 통제)
암호 알고리즘 상세(대칭/비대칭/해쉬)
IPSec
개인정보보호 관련 법령 (개인정보 보호법 등)
소프트웨어 개발 보안 구현 :
시큐어 코딩 가이드 적용 대상(입력데이터 검증 및 표현, 보안 기능 등)
입력데이터 검증 및 표현 취약점(XSS,CSRF,SQL Injection)
비즈니스 연속성 계획 관련 주요 용어(BAI,RTO,RPO 등)
어느 정도 개발이 완료된 프로젝트를 클라이언트에게 제공하기 전에
요구사항대로 구현되었는지 검증하기 위해 애플리케이션 테스트 케이스를 설계하여 통합 테스트를 진행하고 성능 개선을하는 애플리케이션 테스트 관리(11)를 진행하고,
애플리케이션 테스트 관리
애플리케이션 테스트 케이스 설계 :
소프트웨어 테스트 필요성(오류발견/오류예방/품질향상)
소프트웨어 테스트의 원리(살충제 패러독스 등)
화이트/블랙 박스 유형, 테스트 목적에 따른 분류(회복/안전 테스트 등)
성능 테스트 상세 유형(부하/스트레스 테스트 등)
테스트 종류에 따른 분류(명세/구조/경험 기반 테스트)
테스트 커버리지 유형(기능 기반/라인/코드 커버리지)
경험기반테스트 유형(오류 추정, 체크리스트 등)
테스트 오라클 종류(참/샘플링/휴리스틱/일관성 검사 오라클)
테스트 레벨 종류(단위/통합/시스템/인수 테스트)
애플리케이션 통합 테스트 :
목 객체 유형(더미객체,테스트 스텁, 테스트 드라이버 등)
애플리케이션 성능 개선 :
애플리케이션 성능 측정 지표(처리량, 응답/경과 시간, 자원 사용률)
테스트를 통해 개발이 완료된 제품을 설치와 사용에 필요한 환경 등,
전체적인 내용을 포함하는 메뉴얼을 작성하여 고객에게 전달하도록 제품 소프트웨어 패키징(12)을 하면 완료됩니다.
제품 소프트웨어 패키징
제품 소프트웨어 패키징 :
릴리즈 노트 작성 항목(헤더, 개요, 목적 등)
'Exam & Study' 카테고리의 다른 글
[쉬운설명] 인터넷 네트워크의 통신방법 (IP,TCP,UDP,PORT,DNS) (0) | 2021.10.23 |
---|---|
[2021년 3회] 정보처리기사 실기 기출문제!! (feat.복원) (22) | 2021.10.17 |
[2021년 2회] 정보처리기사 실기 기출문제!! (15) | 2021.09.02 |
[2020년~] 정보처리기사 실기 족보 3탄!! (feat. 요약) (3) | 2021.07.09 |
[2020년~] 정보처리기사 실기 족보 2탄!! (feat. 정리) (3) | 2021.07.04 |
댓글