1. 소프트웨어
1. 상용 소프트웨어
- 돈 받고 파는 거, 소스코드 안보여줌
- 범용, 특화
2. 응용 소프트웨어
- 특정 업무 처리 위한 거
- 오피스나 영상 편집 뭐 이런 거
3. 시스템 소프트웨어
- 컴퓨터 자원 효율적으로 쓰게 하는 거
- OS
3-1. 시스템 정의
- 입력, 처리, 출력, 제어, 피드백
3-2. 성능평가 기준
| 처리능력 (Throughput) | 단위 시간 내 작업 처리량 |
| 반환 시간(Turnaround Time) | 작업 의뢰부터 처리까지의 시간 |
| 사용 가능도(Availability) | 필요할 때 즉시 사용 가능한 정도(가용성) |
| 신뢰도(Reliability) | 주어진 문제를 정확하게 해결하는 정도 |
3-3. 플랫폼
- 특정 시스템 기반 운영체제나 운영환경
- 플랫폼 성능측정 기준
| 가용성 (Availability) | 필요할 때 즉시 사용 가능한 정도 (사용 가능도) |
| 응답 시간 (Response TIme) | 명령에 반응하는 시간 (처리 시간과 다름) |
| 정확성 (Accuracy) | 처리 결과가 기대한 값과 비교해서 정확한지 측정 |
| 사용률 (Utilization) | 데이터 처리에 시스템 자원을 사용하는 정도 |
4. 소프트웨어 공학
- 효율적으로 SW 만들기
5. 소프트웨어 개발 프레임워크
5-1. 모듈
- 기능별로 분할
- 개발자가 기본 툴 제공하면 모듈을 활용하여 기능 구체화
5-2. 라이브러리
- 모듈 모은거
- 각 모듈이 반드시 독립적이진 않다
5-3. 디자인 패턴
- 문제해결을 위한 추상적 가이드라인
5-4. 소프트웨어 개발 프레임워크
- 디자인패턴에 모듈의 장점 결합하여 실제적인 개발 틀 제공
- 프레임워크가 기본 틀 제공하면 개발자가 기능 구체화
5-5. 소프트웨어 아키텍처
- 다수의 프레임워크를 체계적으로 구성하고 설명하는 구조체
5-6. 컴포넌트
- 소프트웨어 블록
5-7. 재사용 가능한 소프트웨어 요소
- 소프트웨어 부분 또는 전체 영역
- 부분적인 코드뿐 아니라 응용된 지식과 데이터 구조
- 개발 이후 테스트 계획, 문서화 방법 및 절차 등
5-8. 소프트웨어 재사용 방법
- 합성 / 생성
2. 수명주기
1. 수명주기 종류
1-1. 폭포수 (Waterfall)

계획 > 요구분석 > 설계 > 구현 > 테스트 > 유지보수
이전단계로 못돌아감, 매뉴얼 작성 필수
1-2. 프로토타입 (Prototype)

시제품 만들어서 피드백 후 수정 및 구현
1-3. 나선형(Spiral)

폭포수 모델 장점 + 프로토타입 모델 장점 + 위험분석기능
여러번의 지속적인 개발 과정, 사이클 돌릴수록 완성도 올라감
유지보수 필요없음
누락된거 반영 가능
1-4. 애자일 (Agile)

고객과의 소통 중심
짧은 개발 주기를 반복하며 고객의 피드백 반영
소통, 협업, 변화 대응
2. 스크럼 (Scrum) - 애자일 모델 중 하나

팀을 중심으로 개발 효율성 향상
반복적인 스프린트
확약, 전념, 정직, 존중, 용기
구성
- 제품 책임자
- 스크럼 마스터
- 개발팀
3. XP (eXtreme Programming)
고객의 참여와 짧은 개발 과정 반복 극대화
의사소통, 단순성, 용기, 존중, 피드백
스파이크: 특정 기술의 확인을 위해 다른 모든 조건을 무시하고 간단하게 개발
이터레이션: 하나의 릴리즈를 1-3주의 개발 기간으로 세분화한 단위
스파이크 해서 되면 이터레이션으로 전달
3. 개발 방법론
1. 소프트웨어 개발 방법론
- SW 개발 전 과정에 지속적으로 적용할 수 있는 방법이나 기법
- 절차
| 분석 | 개발 준비, 시스템 요구사항 분석, 소프트웨어 요구사항 분석 |
| 설계 | 시스템 설계, 소프트웨어 구조 및 상세 설계 |
| 구현 | 소프트웨어 코딩 및 단위 시험 |
| 시험 | 소프트웨어와 시스템 통합 및 테스트, 소프트웨어 설치 및 인수 지원 |
- 선정 계획서 바탕으로 정성, 정량 평가 진행하여 결정
2. 종류
2-1. 구조적 방법론
- 요구사항을 자료흐름도(DFD)로 표현
- 순차, 선택, 반복의 논리 구조 구성
2-2. 정보공학 방법론
- 정형화된 기법 이용
- 개념적 수준의 데이터와 프로세스 설계
- ERD 기반 설계
2-3. 객체지향 방법론
- Entity를 Object로 표현, 객체 간 메시지 교환
- 기본 원칙
| 캡슐화 | 데이터와 해당 데이터의 처리 기능을 하나로 묶음 |
| 정보 은닉 | 다른 객체에게 자신의 정보를 숨김 |
| 추상화 | 객체의 공통적인 속성을 상위 객체로 도출 |
| 상속성 | 상위 객체의 속성을 하위 개체가 물려받음 |
| 다형성 | 하나의 수행 방법으로 여러 형태의 기능 수행 |
2-4. 컴포넌트 기반(CBD) 방법론
- 컴포넌트 조합해 사용
- 일반적으로 프로세스 설계 과정에서는 객체지향 방법론을, 데이터 설계 과정에서는 정보공학 방법론 사용
- 선행 투자 비용이 높고, 조립식 시스템에 따르는 책임 및 지적 재산권 고려
2-5. 애자일 방법론
- 수시로 변하는거 바로 반영하여 개발
2-6. 제품계열 방법론
- 특정 제품에 넣고싶은 공통 기능 개발
- 임베디드 등
3. 소프트웨어 보안 개발 방법론
- 보안취약점 최소화
- 종류
| MS-SDL | MS에서 자체 수립 |
| Seven Touchpoints | 모범 사례 7가지 |
| CLASP | 개발 초기 단계 보안 강화 |
| CWE | 취약점 원인 7가지 |
'자격증 > 정보처리기사(실기)' 카테고리의 다른 글
| [정보처리기사 실기] 테일러링 (0) | 2026.10.20 |
|---|
댓글