일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 도커
- 쿠버네티스
- 마크다운
- docker 소개
- mybatis
- 필기
- java 기초
- DDL
- 쿠버네티스 기본 개념
- view
- 정보처리기사
- 데이터베이스
- VS Code
- DB
- 기초 선택자
- SQL
- github
- oracle
- ORACLE 기초
- Flutter
- DB 모델링
- docker
- 프로그래밍 기초
- 깃허브
- MVC 패턴
- java
- DB 개요
- dql
- 기본 API
- 웹개발 기초
- Today
- Total
핑구
Ⅱ. 소프트웨어 개발 : 통합 구현 본문
1. 단위 모듈 구현
단위 모듈
소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다. 따라서 독립적 컴파일이 가능하고, 처리/명령문, 데이터 구조를 포함한다.
단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 부른다. 따라서 모듈의 개수와 기능의 개수는 같다.
단위 모듈 구현 순서
- 단위 기능 명세서 작성
단위 기능 명세서 : 단위 기능을 명세화한 문서로 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요하다. 따라서 대형 시스템을 분해하여 단위 기능멸로 구분하고, 각 기능들을 계층적으로 구성하는 구조화 과정을 거친다. - 입출력 기능 구현
단위 모듈 간의 연동 또는 통신을 위한 입출력 데이터를 구현한다. 구현 시 사용자 인터페이스와의 연동을 고려하여야 하며, 단위 기능 구현을 위한 인터페이스 집합인 IPC가 필요하다. - 알고리즘 구현
입출력 데이터를 바탕으로 단위 기능별 요구사항들을 구현 가능 언어를 이용하여 모듈로 구현한다.
※ IPC(Inter Process Communication)란?
모듈 간 통신을 구현하기 위해 사용되는 프로그래밍 인터페이스 집합으로 프로세스 간 통신을 가능하게 한다. IPC가 필요한 이유에는 정보 공유, 가속화, 모듈화, 편의성이 있다.
IPC의 종류
- 메시지 전달 : 커널을 통해 메시지를 전달하는 방식으로 자원이나 데이터를 주고받는다.
- 소켓 : 네트워크 소켓을 이용하여 네트워크를 경유하는 통신을 수행한다.
- 파이프 : 선입선출의 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행한다.
- 메시지 큐잉 : 메시지가 발생하면 이를 전달하는 형태로 통신을 수행한다.
- 공유 메모리 : 공유 메모리 영역을 구축하고 공유 영역을 통해 자원이나 데이터를 주고받는다.
- 세마포어 : 공유 자원에 대한 접근 제어를 통해 통신을 수행한다.
2. 단위 모듈 테스트
단위 모듈 테스트 (Unit Test)
프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확하게 수행하는지 검증하는 것이다. 단위 모듈에 대한 테스트를 실행하는 것이기 때문에 시스템 수준의 오류(관련 모듈 간의 연쇄 작용으로 발생하는 오류)는 발견할 수 없다.
화이트박스 테스트와 블랙박스 테스트로 나뉜다.
화이트 박스 테스트
응용 프로그램의 내부 구조, 동작 등을 디테일하게 검사하는 방식으로 소스코드의 논리적인 경로를 테스트한다. 개발자 관점의 단위 테스팅 기법이다.
블랙박스 테스트
소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사라는 방식으로 해당 기능의 작동 여부를 테스트한다. 사용자 관점의 테스팅 기법이다.
테스트 케이스
구현된 소프트웨어가 요구사항을 정확하게 준수했는지 확인하기 위해 수행하는 테스트 항목에 대한 명세서로 명세 기반 테스트 설계 산출물에 해당한다.
ISO/IEC/IEEE 29119-3 표준에 따른 테스트 구성요소
- 식별자
- 테스트 항목
- 입출력 명세
- 환경 설정
- 특수절차 요구
- 의존성 기술
테스트 프로세스
테스트를 위해 수행하는 작업이 테스트의 목적과 조건을 달성할 수 있도록 도와주는 과정을 말한다.
테스트 프로세스 절차
- 계획/제어 : 목표 달성을 위한 꼐획을 수립하고, 진행될 수 있도록 제어한다.
- 분석/설계 : 목표를 구체화하여 테스트 시나리오와 테스트 케이스를 작성한다.
- 구현/실현 : 테스트 케이스들을 조합하여 테스트 프로시저에 명세하고, 모듈 환경에 적합한 단위 테스트 도구를 이용하여 테스트를 수행한다.
- 평가 : 테스트가 잘 수행되었는지 평가하고 기록한다.
- 완료 : 이후 테스트를 위해 수행 과정과 산출물을 기록 및 저장한다.
3. 개발 지원 도구
개발 지원 도구의 종류
통합 개발 환경, 빌드 도구, 협업 도구
통합 개발 환경(IDE: Integrated Development Environment)
개발에 필요한 편집기, 컴파일러, 디버거 등의 다양한 툴을 하나의 인터페시스로 통합하여 제공한다.
Eclipse, Visual Studio, Xcode, Android Studio, IDEA 등이 있다.
빌드 도구
소스 코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물을 의미하며, 전처리, 컴파일 등의 작업을 수행한다.
- Ant : 자바 프로젝트의 공식적인 빌드 도구이다. 의존성을 사용하지 않고 직접 라이브러리를 다운받거나 연결시켜 사용한다.
- Maven : Ant의 대안으로 의존성을 설정하여 라이브러리를 관리한다.
- Gradle : 안드로이드 스튜디오의 공식 빌드 도구이다.
협업 도구
개발에 참여하는 사람들이 서로 다른 작업 환경에서 프로젝트를 수행할 수 있도록 도와주는 도구로 협업 소프트웨어, 그룹웨어라고도 한다.
- 프로젝트 및 일정 관리 : 구글 캘린더, 분더리스트, 트렐, 지라, 플로우 등
- 정보 공유 및 커뮤니케이션 : 슬랙, 잔디, 태스크 월드 등
- 디자인 : 스케치, 제플린 등
- 아이디어 공유 : 에버노트 등
- API 문서화 : 스웨거 등
- Git 웹 호스팅 서비스 : 깃허브 등
'CS > 정보처리기사' 카테고리의 다른 글
정보처리기사 기출문제 풀이 5 (0) | 2022.02.28 |
---|---|
정보처리기사 기출문제 풀이 4 (0) | 2022.02.26 |
정보처리기사 기출문제 풀이 3 (0) | 2022.02.20 |
정보처리기사 기출문제 풀이 2 (0) | 2022.02.15 |
정보처리기사 기출문제 풀이 1 (0) | 2022.02.14 |