정보처리기사 필기 학습을 시작하였는데, 서적을 구매해 공부를 하다보니 요약정리가 필요해서
블로깅으로 남기게 되었다. 구글링으로 찾아볼 수 있는 요약본을 살펴보면 이런식으로 되어있다.
예를들어 IT의 중요한 항목 3가지 접근성, 효율성, 가시성 이라고 가정한다면
'접효가' 같은 형태로 외우라고 되어있는데 이렇게 암기해야 할 부분이 한 두 가지가 아니다.
설계 항목에만 30개는 되는거 같은데 모든 내용을 이런식으로 외울 수 없으니 요약을 따로하여 핵심만 외워보도록 하겠다.
1. 폭포수 모형(Waterfall Model)
- 고전적 생명 주기 모형
- 선형 순차적 모형
- 요구사항의 변경이 용이하지 않음
- 타당성검토 → 계획 → 요구 분석 → 설계 → 구현(코딩) → 테스트(검사) → 유지보수
폭포수 - 계획, 분석,설계,구현,테스트,유지보수 순
2. 프로토타입 모형(Prototype Model, 원형 모형)
- 견본을 만들어 최종 결과물을 예측하는 모형
- 인터페이스 중점을 두어 개발
- 요구사항의 변경이 용이
3. 나선형 모형(Spiral Model, 점진적 모형)
- 폭포수 모형, 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형
- 점진적 개발 과정 반복으로 요구사항 추가 가능
- 정밀하고 유지보수 과정 필요 없음
- 계획 → 분석 → 개발 → 평가
4. 애자일 모형(Agile Model)
- 애자일은 민첩함, 기민함 뜻
- 변화에 유연
- 일정한 주기(Iteration, Sprint)를 반복하면서 개발진행
- 절차와 도구보다 고객(개인)과의 소통에 초점을 맞춤
- 기능 중심 개발
예시) XP(eXtreme Programming), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crystal), 린(LEAN)
스크럼(Scrum) 기법
- 팀원 스스로가 스크럼 팀 구성
- 개발 관한 모든 것을 스스로 해결
- 스프린트 2 ~ 4주
1. 제품 책임자(Product Owner)
- 백로그(Backlog)를 작성
2. 스크럼 마스터(Scrum Master)
- 일일 스크럼 회의 주관
- 팀원 통제하는 것 목표아님
3. 개발팀(Development Team)
- 제품 책임자와 스크럼 마스터를 제외한 모든 팀원
- 인원 7~8명
4. 스크럼 개발 프로세스
- 스프린트 계획 회의 → 스프린트 → 일일 스크럼 → 스크럼 검토 회의 → 스프린트 회고
XP 기법
XP(eXtreme Programming)의 핵심 가치
- 용기(Courage)
- 단순성(Simplicity)
- 의사소통(Communication)
- 피드백(Feedback)
- 존중(Respect)
2) XP의 기본원리
- Whole Team(전체 팀)
- Small Releases(소규모 릴리즈)
- Test-Driven Development(테스트 주도 개발)
- Continuous Integration(계속적인 통합)
- Collective Ownership(공동 소유권)
- Pair Programming(짝 프로그래밍)
- Design Improvement(디자인 개선)
개발 기술 환경 파악
1.운영체제(Operating System)
- 소프트웨어
- 가용성, 성능, 기술 지원, 구축 비용, 주변 기기
2. 미들웨어(Middleware)
- 운영체제와 응용 프로그램 사이 추가적인 소프트웨어
3) 데이터베이스 관리 시스템(Database Management System)
- 사용자와 데이터베이스(DB) 사이에서 정보를 생성하고 DB를 관리하는 소프트웨어
- 데이터베이스(DB)의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐
- JDBC(Java Database Connectivity, 자바), ODBC(Open Database Connectivity, 응용 프로그램)
- Oracle, MySQL, SQLite, MongoDB, Redis 등등
- 가용성, 성능, 기술 지원, 구축 비용, 상호 호환성 (고려사항)
4) 웹 어플리케이션 서버(WAS; Web Application Server) ★
- 웹 서버(Web Server)와 반대됨
- 동적인 콘텐츠를 처리 미들웨어
- 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리 제공
- Tomcat, JEUS, WebLogic, JBoss, Jetty, Resin 등등
- 가용성, 성능, 기술 지원, 구축 비용 (고려사항)
5) 오픈 소스(Open Source)
- 누구나사용할 수 있도록 소스 코드를 무료로 공개한 것
- 라이선스의 종류, 사용자 수, 기술의 지속 가능성 (고려사항)
요구사항 정의
1) 기능 요구사항
- 기능, 입력, 출력, 저장, 수행
2) 비기능 요구사항
- 성능, 품질, 제약사항, 호환성, 보안 등등
3) 요구사항 개발 프로세스
- 도출(Elicitation)/추출 → 분석(Analysis) → 명세(Specification) → 확인(Validation)/검증(Valification)
4) 요구사항 분석 기법
- 요구사항 분류, 개념 모델링(UML), 요구사항 할당, 요구사항 협상, 정형 분석
5) 요구사항 확인 기법
- 요구사항 검토, 프로토타이핑, 모델 검증, 인수 테스트(알파 테스트, 베타 테스트)