상세 컨텐츠

본문 제목

🏷️ 2025 정보처리기사 필기 요점정리 2과목 소프트웨어개발(2)

자격정보

by best2253 2025. 8. 11. 18:19

본문

 

🏷️ 정보처리기사 필기 요점정리

2과목 소프트웨어개발

 

정처기 수업시간 요약본입니다

 

📢 모듈 구현

단위모듈 구현 : 단위 기능을 모듈로 구현

 

-단위 기능 명세서 작성

: 설계 과정에서 단위 기능을 명세화한 문서

 

① 추상화 : 복잡한 시스템을 단순히 구현, 상위 수준에서 제품의 구현을 먼저 생각, 큰 흐름 잡기

② 구조화 : 시스템을 분해하여 단위 기능별로 구분, 계층적으로 구성

. 문제를 하위 수준의 독립된 단위로 나누기

. 구분된 문제의 자세한 구현은 뒤로 미루기

. 점증적으로 구체화 작업 계속하기

③ 캡슐화(정보 은닉)

: 단위 모듈의 내부 내용은 숨기고 인터페이스를 통해서만 메시지를 전달하도록 하여 다른 모듈의 접근과 변경을 막는다

④ 기능적 독립성

: 모듈은 뚜렷한 목적을 가지면서, 다른 모듈과의 상호 의존도가 낮도록

 

 

📢 입출력 기능 구현

: 명세서에 정의한 데이터 형식에 따라 알고리즘 및 데이터 구현

Shared
Memory
다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스간 통신 수행
Socket
프로세스들 사이의 통신을 가능하게 함
Semaphore
공유 자원에 대한 접근제어를 통해 프로세스간 데이터를 동기화 하고 보호
PIPE
PIPE라는 메모리를 이용해서 모든 프로세스들 사이에서 통신이 가능
Message
Queueing
메시지가 발생하면 이를 전달.
PIPE가 데이터의 흐름이라면 메시지 큐는 메모리 공간

 

📢 알고리즘 구현

입출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현

디바이스 드라이버모듈
하드웨어 주변 장치의 동작을 구현한 모듈
네트워크 모듈
네트워크 장치 및 데이터 통신을 위한 기능을 구현
파일 모듈
컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현
메모리 모듈
파일을 프로세스의 가상 메모리에 매핑/해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈
프로세스 모듈
하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈

 

📢 단위 모듈 테스트

소프트웨어 개발 후 테스트 가능한 최소단위 기준으로 결함을 찾고, 기능을 검증하는 테스트 활동

소스 코드의 특정 모듈이 의도된 대로 정확히 작동하느지 검증하는 절차

 

■ 단위 모듈 테스트이 장점

-문제점 발견의 용이성, -구조변경의 용이성

-통합의 용이성

■ 테스트 방법 비교

화이트 박스
블랙 박스
개발자 관점
사용자 관점
프로그램 내부 로직(수행경로구조, 루프구조 등)을 보면서 테스트 수행. 기초경로검사,제어구조검사
프로그램의 외부사용자 요구사항 명세를 보면서 테스트
동치분할 검사, 경계값 분석
각 모듈이 하나의 시스템단위로서 올바른 기능을 수행하는지 여부 테스트
문제의 검증과 프로그램 구조에 관련된 결과에 중점을 두고 시험
오류 발견이 쉬움
테스트 쉬움
소스코드의 논리적인 경로 테스트
해당 기능의 작동 여부 테스트

 

📢 단위 모듈 테스트 환경

: 스텁과 드라이버 활용 테스트

-사용자용 화면이 없는 경우 스텁 혹은 드라이버를 활용한 단위 모듈 테스트

-서비스 컴포넌트, 비즈니스 컴포넌트 등 하위 모듈 개발이 안된 경우에도 스텁과 드라이버를 활용한 단위 테스트 가능

-드라이버 : 테스트 대상이 되는 모듈의 상위 가상 모듈

-스텁 : 테스트 대상이 되는 모듈의 하위 가상 모듈

 

📢 통합 개발 환경

코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어.

테스트할 때 오류가 발생한 부분을 시각화 하므로 수정용이

외부의 다양한 서비스와 연동, 개발에 편의를 제공

 

종류 : 이클립스, 비주얼 스튜디오, 엑스코드, 안드로이드, 스튜디오, IDEA

 

📢 빌드도구

빌드 : 소스코드파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물

도구 : Ant, Maven, Gradle(두가지기능보완, Groovy 기반)

 

📢 협업 도구

-개발자들이 서로 다른 작업 환경에서 원활히 업무를 수행할 수 있도록 도와주는 도구

-기본적으로는 소프트웨어형 클라우드 서비스를 기반으로 팀 커뮤니케이션, 할 일 및 일정관리, 파일공유, 노트작성,

프로젝트 관리 등 지식노동자들의 원활한 업무를 도와주는 서비스를 의미

 

 

📢 패키징

개발이 완료된 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고,

설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성

제품 소프트웨어에 대한 패치 개발과

업그레이드를 위해 버전 관리를 수행하는 능력

개발자가 아닌 사용자 중심

 

▣ 패키징 시 고려사항

-사용자의 시스템 환경 즉, OS CPU 메모리 등의 수행 최소 환경을 정의한다

-사용자가 직관적으로 확인할 수 있는 UI를 제공하고, 매뉴얼과 일치시켜 패키징 작업

-제품 소프트웨어는 하드웨어와 함께 통합 적용될 수 있도록, 패키징은 Managed Service 형태로 제공되는 것이 좋다

-다양한 사용자의 요구 사항을 반영하기 위해 항상 패키징의 변경 및 개선 관리를 고려하여 패키징 배포한다

 

📢 디지털 저작권 관리(DRM)

1) 저작권

문학 학술 또는 예술의 범위에 속하는 창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한

2) 저작권 보호 기술의 필요성

배포된 제품 소프트웨어의 무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 특성을 가짐

제품 소프트웨어가 상용으로 배포되면 다양한 부가 가치를 가질 수 있는 상품으로 바뀜에 따라 패키징시에 원작자에 대한 권리 보호 우선 필요

3) DRM 이란?

디지털 환경에서 만들어낸 이의 지적 재산권 보호와 그리고 그 창작물을 사용하고자 하는 사용자의 의무와 권리를 보호하기 위한 기술

IPC(Inter Process Communication)

모듈간 통신 방식을 구현하기 위해 사용되는 대표적인 인터페이스 집합

4) 저작권 관리 구성 요소

출처 : 시나공 정보처리기사 교재

 

-콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자

-콘텐츠 분배자 : 쇼핑몰 등으로써 암호화된 콘텐츠 제공

-패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능

-보안 컨테이너 : 원본을 안전하게 유통 하기 위한 전자적 보안 장치

-DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제

-클리어링 하우스 : 키 관리 및 라이선스 발급 관리

📢 형상 관리 도구

시스템 형상 요소(개발 소스, 산출물 문서 등)의 기능적 특성이나 물리적 특성을 문서화하고 그들 특성의 변경을 관리하며, 변경의 과정이나 실현 상황을 기록.보고하여 지정된 요건을 충족되었다는 사실을 검증하는 것이나 또는 그 과정을 위한 기능을 제공하는 도구

 

-형상 : 구조도, 프로그램 코드, 코드를 담은 디스크, 설계 사양서, 지침서 등 소프트웨어 개발에 필요한 모든 것

 

-형상관리 프로세스

식별 : 소프트웨어가 변경될 만한 부분을 미리 정의한다

버전관리 : 변경전과 변경후를 정확히 기록한다

변경관리 : 변경으로 인한 성능 및 품질을 평가한다

형상감사 : 제대로 변경됬는지 확인한다

보고 : 변경사항을 문서화한다

 

-형상관리도구의 주요기능

저장소
최신 버전의 파일들과 변경 내역에 대한 정보들이 있는 곳
체크인
개발자가 수정한 소스를 저장소로 업로드
체크아웃
저장소로부터 최신 버전을 개발자 PC로 다운로드
커밋
개발자가 소스를 업로드 후 최종적인 사항을 형상 관리 서버에 반영시키는 기능

 

📢 형상관리도구의 종류

-Client/Server 타입 : Subversion(SVC), CVS, Perforce, ClearCase, TFS

-분산저장소 타입 : Git, Mercurial, Bitkeeper, SVK, Darcs

-Folder 공유 타입 : RCS, SCCS

 

📢 형상 관리 도구 종류

1) CVS(Concurrent Version System)

90년에 출시된 무료 서버-클라이언트 형상관리 시스템

파일 전체를 저장하는 것이 아니라 변경사항만을 저장, 속도 느림

2) SVN(Subversion)

형상관리/소스관리 툴. 커밋 실패 시 롤백 기능을 지원

3) Git

분산형 방식

저장소의 완전한 복사본을 로컬에 저장. 처리속도가 빠르지만 대용량 코드 관리에 부적절

4) Perforce(P4D)

빠른속도, 빠른 Merge가 가능하며 큰 리소스 관리에 좋다

유료, 파일명이 바뀌면 히스토리 추적이 곤란함

 

📢 빌드 자동화 도구

빌드 : 소스코드파일들을 컴파일한후 여러 개의 모듈로 묶어 실행 파일로 만드는 과정.

 

Jenkins : JAVA 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화도구

Gradle : Groovy를 기반으로 한 오픈 소스 형태의 자동화도구. 안드로이드 앱 개발 환경에 사용

모두 모두 화이팅!!

 

반응형

관련글 더보기