정보처리기사 필기시험을 대비해서 2과목 소프트웨어 개발을 인프런 강의를 보면서 정리한 포스트입니다. 틀린 부분이 있을 수도 있습니다.
인프런 강의 🔽
[지금 무료]정보처리기사 자격증 대비 교육(필기)| 국립안동대학교 SW융합교육원 - 인프런 강의
현재 평점 4.9점 수강생 1,488명인 강의를 만나보세요. NCS개정 정보처리기사 필기 합격을 위한 핵심요약 특강으로 CBT 필기시험과 필답형 실기시험을 효율적으로 학습 할수 있습니다. NCS 학습모듈,
www.inflearn.com
2과목 소프트웨어 개발 목차
1. 데이터 입출력 구현 (자료구조)
2. 통합구현
3. 제품소프트웨어 패키징 (배포)
4. 애플리케이션 테스트
5. 인터페이스 구현
9. 형상 관리 (Version Control Revision Control)
- 구성 관리(Software Configuration Management)라고도하며 소프트웨어에 가시성과 추적 가능성을 부여하여 제품의 품질과 안정성을 높인다.
- 형상 관리를 위해 구성된 팀은 형상 통제 위원회 (CCB : Configuration Control Board)이다. 형상 항목의 변경을 수락 또는 거절하는 책임을 진다.
- 소프트웨어 개발 생명주기 전반에 걸쳐 생성되는 소스 코드와 문서 등과 같은 산출물의 합 및 변경 과정을 체계적으로 관리하고 유지하는 일련의 개발 관리 활동
- 형상 식별, 통제, 상태 보고, 감사를 통하여 변경사항 관리
- 이전 리비전이나 버전에 대한정보에 접근 가능하여 배포본 관리에 유용하다.
- 불필요한 사용자의 소스 수정을 제한 할 수 있다
- 동일한 프로젝트에 대해 여러 개발자 동시개발이 가능하다
- 🌟형상 관리 도구: CVS, SVN(Subversion), Git

10. 애플리케이션 패키징
개발이 완료된 소프트웨어를 고객에 인도하기 위해 패키징하고, 설치 매뉴얼, 사용 매뉴얼 등을 작성하는 일련의 배포용 설치 파일을 만드는 작업을 의미한다.
- 향후 관리 편의성을 위해 모듈화하여 패키징한다
- 사용자를 중심으로 진행하며, 사용자의 다양한 환경에서 설치 할 수 있도록 패키징한다.
- 사용자의 불편함을 줄이고사용자의 편의성을 먼저 고려한다
- 패키징시 주의 사항 : 전체 내용을 포함, 고객 중심, 모듈화, 버전 관리 및 릴리즈 노트 관리
패키징 도구 활용 시 고려사항
- 제품 sw 종류에 적합한 암호화 알고리즘 적용
- 패키징 도구를 활용하여 여러가지 이기종 콘텐츠 및 단말기간 DRM 연동 고려한다.
- 사용자에게 배포되는 소프트웨어임을 고려하여 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려한다.
11. DRM (Digital Rights Management)
DRM
- 디지털 콘텐츠의 지식재산 보호 관리기능 및 안전한 유통과 배포를 보장하는 솔루션이다.
DRM 기술 요소
- 사용 규칙 제어 기술 : 콘텐츠 식별 체계, 메타 데이터, 권리 표현 기술
- 저작권 보호 기술
- 암호화(Encryption)
- 키관리(Key Management)
- 암호화 파일 생성(Packer)
- 식별 기술(Identification)
- 저작권 표현(Right Expression)
- 정책 관리(Policy Management)
- 크랙 방지 (Tamper Resistance)
- 인증(Authentication)
- 인터페이스(Interface)
- 이벤트 보고 (Event Reporting)
- 사용 권한(Permission)
DRM 시스템 구성요소
- 콘텐츠 제공자 (Contents Provider) : 콘텐츠를 제공하는 저작권자
- 콘텐츠 분배자(Contents Distributor): 쇼핑몰 등으로써 암호화된 콘텐츠 제공
- 패키저 (Packager): 콘텐츠를 메타 데이터와 함께 배포할 수 있는 단위로 묶는 기능
- 보안 컨테이너: 원본을 안전하게 유통하기 위한 전자적 보안 장치
- DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제
- 클리어링 하우스 (Clearing House) : 키 관리 및 라이센스 발급 관리
12. 소프트웨어 테스트의 원리
결합 집중 (Defect Clustrering)
- 파레토 법칙이 좌우한다
- 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다
- 결함은 발생한 모듈에서 계속 추가로 발생할 가능성이 크다
🌟살충제 패러독스(Pesticide Paradox)
- 동일한 테스트 케이스로 반복 테스트시 어느 시점부터 더 이상 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를리뷰하고 개선해야한다.
13. SW 테스트
테스트 단계 (V-모델)
- Perry에 의해 제안된 개발 작업과 검증 작업 사이의 관계를 명확히 들어내 놓은 폭포수 모델의 변형
- 폭포수 모델이 산출물 중심이라면 V 모델은 작업과 결과의 검증에 초점을 둔다.
- 🌟 테스트 레벨 : 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수테스트

14. 통합 테스트
통합 테스트
- 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트한다
시각에 따른 테스트
- 검증 테스트(Verification) : 제품이 명세서대로 완성되었는지 검증하는 단계. 개발자의 시각에서 제품의 생산 과정을 테스트 하는것
- 확인 테스트(validation) : 사용자의 요구사항을 잘 수행하고 있는지 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것
15. 테스트스텁과 테스트 드라이버
Test Stud (하향식 테스트에서 사용)
- 상위 모듈에서 하위 모듈 방향으로 통합테스트를 진행하는 하향식 테스트에서 사용한다
- 상위 모듈에서 하위모듈로의 테스트를 진행하는 과정 중 하위 시스템 컴포넌트의 개발이 완료되지 않은 상황에서 시스템 테스트를 진행하기 위하여 임시로 생성된 된 가상의 더미 컴포넌트
Test Driver (상향식 테스트에서 사용)
- 하위 모듈에서 상위 모듈로 통합하면서 테스트하는 상향식 테스트에서 사용한다
- 테스트 할 소프트웨어 또는 시스템을 제어하고 동작시키는데 사용되는 도구를 의미한다
- 시스템이나 시스템 컴포넌트를 시험하는 환경 일부분으로 시험을 지원하는 목적하에 생성된 코드와 데이터이다
16. 인수 테스트
인수 테스트
- 일반적인 테스트 레벨의 가장 마지막 상위 레벨로, SW 제품에 대한 요구사항이 제대로 이행되었는지 확인하는 단계이다
- 테스트 환경을 실사용자 환경에서 진행하며 수행하는 주체가 사용자이다
- 🌟알파, 베타 테스트와 가장 밀접한 연관이 있다
- 알파 테스트 : 베타 테스트 전에 프로그램 개발 시 내부에서 미리 평가하고 버그를 찾아 수정하기 위해 시험해 보는 검사이다
- 베타 테스트 : 정식으로 프로그램을 공개하기 전에 한정된 집단 또는 일반인에게 공개하여 기능을 시험하는 검사이다 (필드 테스팅이라고도 도불린다)
17. 테스트 케이스
테스트 케이스 정의
구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값 실행 조건,기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미한다.
- 테스트의 목표 및 테스트방법을 결정하고 테스트 케이스를 작성해야한다
- 테스트 케이스의 자동생성
- 자료 흐름도 -> 테스트 경로 관리
- 입력 도메인분석 -> 테스트 데이터 산출
- 랜덤 테스트 -> 무작위 값 입력, 신뢰성 검사
18. 알고리즘 순환 복잡도
알고리즘 순환 복잡도


19. 소스 코드 최적화
클린 코드 (Clean Code)
- 깔끔하게 잘 정리된코드이다
- 중복 코드 제거로 애플리케이션의 설계가 개선된다
- 가독성이 높아진다
- 버그를 찾기 쉬워지며 프로그래밍 속도가 빨라진다
외계인 코드(Alien Code)
- 아주 오래되거나 참고문서 또는 개발자가 없이 유지보수 작업이 어려운 프로그램을 의미한다.
소스 코드품질 분석 기법

'{etc} > qualifications' 카테고리의 다른 글
| [정보처리기사] 3과목 데이터베이스 구축 정리 및 요약 (2) (1) | 2026.01.22 |
|---|---|
| [정보처리기사] 3과목 데이터베이스 구축 정리 및 요약 (1) (1) | 2026.01.20 |
| [정보처리기사] 2과목 소프트웨어 개발 정리 및 요약 (1) (1) | 2026.01.19 |
| [정보처리기사] 1과목 소프트웨어 설계 정리 및 요약(2) (1) | 2026.01.17 |
| [정보처리기사] 1과목 소프트웨어 설계 정리 및 요약 (1) (1) | 2026.01.17 |