본문에 오류가 있을 수 있음을 감안하고 봐주시길 바랍니다.
# 문제 풀이 중 오답노트 하면서 나온 내용을 정리한 것
소프트웨어 생명주기(SLC): 소프트웨어를 개발하기 위한 설계·운용·유지보수 등의 과정을 단계별로 나눈 것
- 폭포수 모형(Waterfall Model): 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론, 결과물이 명확하게 산출되어야 한다. # 고전적 생명주기 모형
- 프로토타입 모형(Prototype Model): 사용자의 요구사항을 파악하기 위해 실제 개발될 소프트웨어에 대한 견본품(Prototype)을 만들어 최종 결과물을 예측하는 모형, # 구축하고자 하는 시스템의 요구사항이 불분명할 때
- 나선형 모형(Spiral Model): 나선을 따라 돌 듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 모형, 누락되거나 추가된 요구사항을 첨가할 수 있고 유지보수 과정이 포함된다. 소프트웨어 개발 프로세스를 위험 관리(Risk Management) 측면에서 본 모델이다. # 보헴(Boehm)이 제안
- 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가
- 애자일 모형(Agile Model): 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형, 폭포수 모형과 대조적이다. # 개개인과의 소통에 초점을 둠, 소규모 프로젝트에 적합, 숙달된 개발자가 필요, 급변하는 요구사항에 적합,
- 대표적 개발 모형: 스크럼, XP, 칸반, Lean, 기능중심개발(FDD) 등
- 애자일 개발 4가지 핵심 가치
- 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
- 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
- 계약 협상보다는 고객과 협업에 더 가치를 둔다.
- 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다.
소프트웨어 공학(Software Engeneering): 소프트웨어의 위기를 극복하는 방안으로 연구된 학문, 소프트웨어의 품질과 생산성 향상을 목적으로 한다.
- 현대적인 프로그래밍 기술을 계속해서 적용해야 한다.(품질 높은 소프트웨어 상품 개발)
- 개발된 소프트웨어 품질이 유지되도록 지속적으로 검증해야 한다.
- 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.
- 효율적인 인력 투입
스크럼(Scrum): 팀이 중심이 되어 개발의 효율성을 높이는 기법
- 스크럼 팀
| 구성원 | 역할 |
| 제품 책임자(PO) | - 요구사항이 담긴 백로그(Backlog)를 작성하는 주체 - 개발될 제품에 대한 이해도가 높고 요구사항을 책임지고 의사를 결정할 사람 |
| 스크럼 마스터(SM) | 스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이드 역할, 조력자임 |
| 개발팀(DT) | 제품 개발을 수행함 |
- 백로그: 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 매긴 목록
- 스크럼 개발 프로세스(계획 → 스프린트 → 일일 → 검토 → 회고)
| 프로세스 | 내용 |
| 스프린트 계획 회의 | 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립하는 회의 |
| 스프린트 | 실제 개발 작업을 진행하는 과정으로 보통 2~4주 정도의 기간 내에서 진행함 |
| 일일 스크럼 회의 | - 모든 팀원이 약 15분 동안 진행상황을 점검하는 회의 - 남은 작업 시간은 소멸 차트(Burn-down Chart)에 표시 |
| 스프린트 검토 회의 | 부분 또는 전체 완성 제품이 요구사항에 잘 부합하는지 테스팅하는 회의 |
| 스프린트 회고 | 정해놓은 규칙 준수 여부 및 개선할 점을 확인하고 기록하는 것 |

XP(eXtream Programming): 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상하는 방법, 짧고 반복적인 개발 주기, 단순한 설계, 릴리즈 기간을 짧게(규모는 작게) 반복해 고객의 요구사항 반영에 대한 가시성을 높인다. 상식적인 원리와 경험을 이용, 개발 문서보다는 소스 코드에 중점을 둔다.
- XP의 5가지 핵심 가치(의단용존피): 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)
- XP 개발 프로세스(계획 → 이터레이션 → 승인 → 릴리즈)
| 프로세스 | 내용 |
| 릴리즈 계획 수립 | - 부분 혹은 전체 개발 완료 시점에 대한 일정을 수립하는 것 - 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것 |
| Iteration(주기) | 실제 개발 작업을 진행하는 과정으로 보통 1~3주 정도의 기간으로 진행됨 |
| 승인검사(인수테스트) | 하나의 Iteration 안에서 부분 완료 제품이 구현되면 수행하는 테스트 |
| 소규모 릴리즈 | 요구사항에 유연하게 대응할 수 있도록 릴리즈의 규모를 축소한 것 |
- XP의 주요 실천 방법
| 실천 방법 | 내용 |
| Pair Programming(짝 프로그래밍) | 다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을 조성함 # 독립적으로 코딩할 때보다 더 나은 환경을 조성 |
| Collective Ownership(공동 코드 소유) | 개발 코드에 대한 권한과 책임을 공동으로 소유함 |
| Test-Driven Development(테스트 주도 개발) | - 개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성해 자신이 무엇을 해야 할지 파악함 - 테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구를 사용함 |
| Whole Team(전체 팀) | 개발에 참여하는 모든 구성원들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 함 |
| Continuous Integration(계속적인 통합) | 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합된다. |
| Refactoring(리펙터링) | - 소프트웨어를 보다 쉽게 이해할 수 있고 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변환 없이 내부 구조를 변경하는 것 - 목적: 프로그램을 쉽게 이해하고 쉽게 수정하여 빠르게 개발할 수 있도록 하기 위함 |
| Small Releases(소규모 릴리즈) | 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있음 |
- 스파이크 솔루션: 기술 문제가 발생한 경우 이를 해결하기 위해 사용하는 솔루션
운영체제(OS): 컴퓨터 시스템의 자원을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어이다. 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작한다.
- 고려사항: 가용성, 성능, 기술지원, 주변기기, 구축비용
데이터베이스 관리 시스템(DBMS): 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어이다.
- 고려사항: 가용성, 성능, 기술지원, 상호 호환성, 구축비용
웹 애플리케이션 서버(WAS): 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어이다.
- 고려사항: 가용성, 성능, 기술지원, 구축비용
오픈 소스(Open Source): 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 소프트웨어이다.
- 고려사항: 라이선스의 종류, 사용자의 수, 기술의 지속 가능성
'정보처리기사' 카테고리의 다른 글
| [정보처리기사 요약 1-5] 개발 방법론부터 재공학까지 (0) | 2026.02.23 |
|---|---|
| [정보처리기사 요약 1-4] UML 모델링 가이드 (기능/정적/동적 다이어그램 비교) (1) | 2026.02.23 |
| [정보처리기사 요약 1-3] UML 다이어그램의 모든 것 (구조적/행위 다이어그램, 스테레오 타입) (0) | 2026.02.20 |
| [정보처리기사 요약 1-2] DFD, DD 기호부터 CASE 도구까지 완벽 대비 (0) | 2026.02.19 |
| 정보처리기사 취득(2025.06.13) (0) | 2026.02.19 |