■ 제품 소프트 웨어 패키징
고객에게 전달하기 위한 형태로 패키징하고 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 패치 개발 + 업그레이드를 위한 버전 관리를 수행하는 능력이다.
- 개발자가 아닌 사용자 중심으로 진행된다.
- 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리한다.
■ 모듈화
소프트웨어 설계에서 기능단위로 분해하고 추상화되어 재사용 및 공유 가능한 수준으로 만들어진 단위
소프트웨어 성능을 향상 시키거나 시스템의 디버깅, 시험, 통합 및 수정이 용이하도록 만든 소프트웨어 설계기법
■ 모듈화의 장점
- 프로그램의 효율적인 관리 및 성능 향상
- 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소
- 소프트웨어 시험, 통합, 수정 용이
- 기능의 분리 가능하며 인터페이스가 단순
- 오류의 파급 효과를 최소화
- 모듈의 재사용기능으로 개발과 유지보수가 용이
■ 모듈화의 목표
- 응집도 최대화(Strong Cohension) / 결합도 최소화 (Loose Coupling)
■ 빌드 (Build)
소스 코드 파일을 컴퓨텉에서 실행할 수 있는 제품 소프트웨어의 단위로 변환하는 과정 또는 그 결과물
ex ) Maven, Ant, Make, Gradle 등
■빌드 자동화 도구
- Jenkins
자바 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구
서블릿 컨테이너에서 실행되는 서버기반도구
SVN, Git 등 대부분의 형상관리도구와 연동이 가능
여러대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능
- Gradle
Groovy를 기반으로 한 오픈소스 형태의 자동화도구, 안드로이드 앱 개발 환경에서 사용
안드로이드 말고도 플러그인 설정시 Java, C/C++, Python에서도 빌드가 가능하다
Groovy를 사용해서 만든 DSL (Domain Specific Language)를 스크립트 언어로 사용한다.
Gradle은 실행할 처리 명령어들을 모아 태스크 (Task)로 만든 후 테스크 단위로 실행한다.
■ 용어정리
- 제품 소프트웨어 패키징 : 고객에게 전달하기 위한 형태로 패키징하고 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 패치 개발 + 업그레이드를 위한 버전 관리를 수행하는 능력이다.
(고객 편의성 및 사용자 실행 환경을 고려하여 진행)
- 제품 소프트웨어 매뉴얼 : 사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서 (사용자 측면의 주요 내용들을 문서로 기록)
- 제품 소프트웨어 버전 관리 : SW의 변화를 시간에 따라 기록하며 특정 시점의 버전을 다시 꺼내올 수 있도록 관리하는 체계
■ 형상관리
- 형상관리란? (SCM : Software Configuration Management)
소프트웨어의 변경사항을 체계적으로 추적, 통제, 감사, 기록하는 활동이다.
+ 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
■ 형상관리 절차 [ 식 통 감 기 ]
형상 식별 -> 형상 통제 -> 형상 감사 -> 형상 기록
(1) 형상 식별
(2) 형상 통제
(3) 형상 감사 : 베이스라인 무결성을 평가하기 위해 확인(Validation), 검증 (Verification) 과정을 통해 공식적으로 승인하는 작업 단계
(4) 형상 기록
■ 사용자 중심의 모듈 패키지 수행순서
기능식별 -> 모듈화 -> 빌드진행 -> 사용자 환경분석 -> 패키징 적용시험 -> 패키징 변경 개선
■ 릴리즈 노트
최종사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서이다. (+ 테스트 결과와 정보가 포함)
+ 상세 서비스를 포함하여 회사가 제공하는 제품을 만들어 수정, 변경, 또는 개선하는 일련의 작업들이며, 릴리즈 정보들이 있는 문서
+ 현재 시재로 작성 되어야하며, 명확하고 정확하며 완전한 정보를 제공해야한다.
■ 릴리즈 노트 작성항목 (몇 가지만)
- Header(머릿말) : 문서이름(릴리즈 노트 이름), 제품이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등
- 개요 : 제품 및 변경에 대한 간략하고 전반적인 개요
- 목적 : 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적의 간략한 개요 / 버그 수정 및 새로운 기능 기술
- 면책 조항 : 회사 및 표준 제품과 관련된 메시지 / 프리웨어, 불법 복제 방지, 중복 등 참조에 대한 고지사항
■ 릴리즈 노트 작성순서 [ 모 정 개 영 정 추 ]
(1) 모듈식별
(2) 릴리즈 정보확인
(3) 릴리즈 노트개요 작성
(4) 영향도 체크 : 발생된 버그의 설명, 개선한 릴리즈 항목을 기술하는 단계
(5) 정식 릴리즈 노트 작성
(6) 추가 개선항목식별
■ 저작권 보호기술
콘텐츠 및 컴퓨터 프로그램 같이 복제가 용이한 저작물에 대해 불법 복제 및 배포등을 막기위한 기술적인 방법을 통칭
■ 저작권 관리 (DRM - Digital Rights Management)
기업 내 주요 정보의 생성부터 보관 유통 폐기와 같은 전 과정을 통제하는 솔루션. 넓은 의미로는 음악이나 동영상에 대한 저작권 관리 기술 까지 포함. '기술적 증거' 라고도 함.
+ 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호기술이다.
(DRM 기술요소 : 암호화 / 키 관리 / 암호화 파일 생성 / 식별 기술 / 저작권 표현 / 정책 관리 / 크랙 방지 / 인증)
■ DRM 저작권 관리 구성요소
- 콘텐츠 제공자
- 콘텐츠 분배자 : 쇼핑몰등
- 패키저 (Packager) : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기술
- DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제
- 보안 컨테이너 : 원본을 안전하게 유통하기 위한 전자적 보안장치
- 클리어링 하우스(Clearing House) : 키 관리 및 라이선스 발급 관리
■ 패키징 도구를 활용한 설치 및 배포 수행 순서
빌드 내용 식별 -> 패키징 도구 식별 (패키징 도구를 사전 식별하고 암호/보안 기능을 확인하는 단계) -> 패키징 수행 -> 패키징 도구 설치 -> 배포 작업 -> 정상 배포 확인
■ 제품 소프트웨어 매뉴얼 기본 작성 항목
(1) 목차 (요약)
(2) 개요 (정리)
(3) 서문 (이력정보, 설치 메뉴얼의 주석을 기재하는 항목)
* 설치 메뉴얼 주석에 포함되는 주석
- 주의 사항 : 사용자가 제품 설치 시 반드시 숙지해야하는 중요한 정보 주석 표시
- 참고 사항 : 설치 관련하여 영향을 미치는 특별한 사용자 환경 및 상황에 대한 내용 주석 표시
(4) 기본사항 (기능 및 UI 첨부요약)
■ 제품 소프트웨어 설치 매뉴얼 작성 수행순서
기능 식별 -> UI 분류 -> 설치/백업 파일 확인 -> Uninstall 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용
■ 사용자 매뉴얼
개발 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼
■ 제품 소프트웨어 버전관리하기
버전관리에서 자주 사용되는 용어 정리
- 가져오기 (Import) : 버전이 관리되지 않은 로컬 디렉터리 파일을 처음으로 저장소(Repository)에 복사
- 체크아웃 (Check-out) : 저장소에 파일 받기
- 체크인 (Check-in) : 저장소에 새로운 버전으로 갱신
- 커밋 (Commit) : 체크인 시 이전 갱신사항이 있는 경우 충돌(conflict)알림 / diff 도구 이용수정 / commit 과정 수행
- 저장소(Repository) : 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소
■ 버전 등록순서
Add > Check-out > Commit > Update > Diff
■ 버전관리 도구 유형
- 공유폴더 방식 : 공유폴더로 작업 (RCS, SCCS)
- 클라이언트/서버 방식 : 중앙에 버전관리 시스템이 항시 동작 / 개발자들이 동시에 같은 파일을 작업하면 경고 출력 (CVS, SVN - Subversion)
- 분산 저장소 방식 : 로컬 저장소와 원격 저장소 구조 (Git, Bitkeeper 등)
* Git - 리눅스 토발즈가 개발
■ 깃 Git 명령어
실행동작 | Git | SVN |
저장소 생성 저장소 복제 커밋 변경 내용 확인 추가 이동 삭제 브랜치 생성 병합 원격 저장소 반영 설정확인 |
git inti git clone git commit git diff git add git mv git rm git branch git merge git push git config |
svn import svn checkout svn commit svn diff svn add svn mv svn rm svn copy svn merge svn commit svn into |
■국제 제품 품질
9126, 12119, 14598, 25000
* ISO 9126 → SW의 최상위의 품질 목표 달성을 위한 소프트웨어 품질 특성에 대한 국제 표준
[주특성]
기능성(Functionality) / 신뢰성(Reliability) / 사용성(Usability) / 효율성(Efficiency) / 유지보수성(Maintainability) / 이식성(Portability)
■국제 프로세스 품질 (프로세스 품질은 0, 2 , 5 중복숫자 / 1은아님)
9001, 12207, 15504
■ 동기식 전송 / 비동기식 전송
- 동기화 (Synchronization))는 송신 측에서 전송한 데이터의 각 비트를 수신측에서 정확하게 수신할 수 있도록 하는 기법 (비트지향 / 문자지향 동기화 기법이 있음)
■ IPv4/ IPv6
■ 다중화 (Multiplexing)
고속의 전송로 하나에 데이터 신호 여러 개를 중복시켜 고속 신호 하나를 만들어 전송하는 방식
■ ARQ (Auto Repeat Request) 방식
통신 상의 오류가 발생하면 수신 측은 송신 측에 오류가 발생한 사실을 알리고 송신 측에 오류가 발생한 프레임을 재전송할 것을 요구하는 기법
■ 서브네팅 (Subnetting)
네트워크의 효율적 사용을 위하여 네트워크를 여러 개의 서브넷으로 분리하는 기법
■ 3Way-HandShaking
TCP 프로토콜은 단말기와 단말기 간의 세션을 설정할 때, 3방향 연결설정(3Way-HandShaking)을 통하여 신뢰성 있는 정보 전송을 제공하는 기법)
■ 슬라이딩 윈도우 (Sliding window) rlqjq
TCP 프로토콜의 TCP의 흐름제어(Flow Control)기법 중 하나로 윈도우 크기(Window Size) 단위로 바이트를 송신하고, 수신 측에서 수신한 바이트에 대한 확인/응답 신호를 전송하면, 한꺼번에 윈도우 크기만큼 버퍼가 미끄러지듯이 이동하는 기법
■ 슬로우 스타트 (Slow Start)
데이터 전송 시 미리 정해진 임계값에 도달할 때까지 윈도우의 크기를 전송 시마다 크기를 두 배씩 증가하기 떄문에 전송되는 데이터의 크기는 지수 함수적으로 증가되는 기법
■ 무선 LAN 표준 → IEEE 802.11
IEEE 802.11i : 보안을 위한 MAC 지원 기능을 강화한 무선 LAN 표준
■ WPAN (Wireless Personal Area Network)
10m 이내의 짧은 거리에 존재하는 여러 디지털 장치를 식별하고 기기 사이의 데이터 전송 및 제어가 가능한 ad-hoc 기반의 무선 네트워크 기술
■ NAT (Network Access Translation)
외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 IP 주소를 변환하는 기술
■ DHCP (Dynamic Host Configuration Protocol)
네트워크 관리자가 일정한 시간 동안만 유효하도록 하는 임대 개념의 IP 주소를 할당하고 관리할 수 있도록 하는 프로토콜
■ CDN (Contents Delivery Network)
컨텐츠 제공업자(CP)의 웹 서버에 집중 되어있는 용량이 크고 사용자 요구가 잦은 컨텐츠를 캐시 서버에 미리 저장하여 최적의 경로로 사용자에게 컨텐츠를 전달하는 기술
■ SDN (SW Defined NW)
소프트웨어 기술(OpenFlow)를 기반으로 네트워크 장비의 패킷 포워딩 기능과 컨트롤러 기능을 표준 인터페이스로 분리하여 네트워크 개방성을 제공하는 기술의 이름
■ CSS (Cascading Style Sheets)
마크업 언어(Markup Language)가 실제 브라우저에 표시되는 웹 문서의 전반적인 스타일을 미리 저장해둔 방법을 기술한 언어
■ 디지털 트랜스포메이션 (Digital transformation)
디지털 기반으로 기업의 전략, 조직, 프로세스, 비지니스 모델, 문화, 커뮤니케이션, 시스템을 근본적으로 변화시키는 경영전략을 의미하는 말
■ SLA (Service Level Agreement)
IT 아웃소싱 서비스를 제공하는 업체와 사용하는 업체 간의 서비스에 대한 책임과 의무사항을 기술한 협약서
■ STCP (Streaming Control Transmission Protocol)
멀티미디어 통신을 위해 UDP 와 TCP의 일부 장점을 결합하여 설계되었으며, 장애를 대비한 대체 경로 확보, Multi-Streaming 기능 등이 포함된 고도의 신뢰 전송을 제공하는 전송 계층 프로토콜
■ RAID (Redundant Array of Independent Disks)
처리속도, 데이터 보호를 목적으로 여러개의 물리적인 디스크를, 중복성을 가진 하나의 논리적인 디스크 어레이(DIsk Array)로 변환하는 기술
■ 하이퍼바이저 (Hypervisor)
하나의 서버나 컴퓨터에서 자원의 효율적 사용을 목적으로 동시에 다수의 운영 체제를 구동시킬 수 있는 하드웨어와 운영체제 사이의 설치된 소프트웨어 가상화 기술
■ 도커 (Docker)
하이퍼바이저 없이 리눅스 컨테이너 기술을 바탕으로 소프트웨어의 배포를 자동화하는 기술
■ Node.js
구글에서 만든 오픈소스 가상머신 형식의 자바 스크립트 V8 엔진 위에서 비동기 I/O로 서버사이드 애플리케이션 개발에 사용되는 소프트웨어 프레임워크
[ 구성요소 ]
V8 / Thread Pool / Event Loop / Node binding / Node standard library
■ ALM (Application Lifecycle Management) 애플리케이션 라이프사이클 관리
요구사항 수집, 모델링, 개발, 테스트, 프로젝트 관리 및 형상관리까지 소프트웨어 개발의 전 과정을 자동화된 툴을 통해 체계적으로 통합하고 시각화해 관리하는 기법
■ 데이터 유형
- 다크데이터 (Dark Data) : 기업 내에 저장은 되어 있으나 분석되지 않은 데이터
- 스몰데이터 (Small Data) : 빅데이터와 구분되는 이전의 데이터, 전통적인 데이터
- 패스트 데이터 (Fast Data) : 실시간으로 처리하고 분석하기 위한 초대용량 데이터
- 스마트 데이터 (Smart Data) : 빅데이터에 비해 다소 용량은 적지만 바로 분석할 수 있는 데이터, 품질이 보장되고 빠르게 분석가능한 데이터
■ EA (Enterprise Architecture) 엔터프라이즈 아키텍쳐
전사차원에서 정보화를 효율적으로 추진하기 위해 조직의 프로세스 및 정보 시스템 및 부서의 구조와 기능을 포괄적이고 정확한 방법으로 기술하는 설계도면 또는 청사진
(조직의 전략적인 목표 및 정보자원 관리 목표를 도달하기 위해 기업의 IT와 비지니스 관계를 총괄하여 설명하는 설계도)
■ HDFS (Hadoop Distributed File System)
빅데이터에서 사용되는 오픈소스 기술로 수십테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일시스템
■ 리팩토링 (Refactoring )
유지보수 및 생산성 향상을 목적으로 외부기능은 그대로 유지하면서 비효율적인 내부 코드의 구조를 개선하느 소프트웨어 시스템 변경기법
■ 3R (Reverse, Re-engineering, Reuse)
소프트웨어 생산성을 극대화하는 기법으로 역공학 (Reverse Engineering) / 재공학 (Re-engineering) / 재사용 (Reuse)가 있다.
■ 머신러닝 파이프라인 (Machine Learning Pipeline)
머신러닝 기술을 적용함에 있어서 초기 계획부터 데이터 수집, 가공, 분석과 배포관리 전 단계의 정의된 프로세스
머신러닝 모델을 지속적으로 고도화하는데 필요한 데이터 플로우(Data Flow)를 구성하고 자동화하기 위해 사용
머신러닝 파이프라인은 일회성이 아닌 재학습 등의 반복적으로 순환하는 흐름을 의미한다.
■ 스마트시티 플랫폼 (Smart City Platform)
도시 관리 기능을 지능화하여 중앙센터에서 방범, 방재, 교통, 시설물 관리 등 분야별 정보 시스템을 연계활용하기 위한 기반 소프트웨어 플랫폼
스마트시티 플랫폼은 지능화된 도시 관리를 위해 운영중인 각종정보 시스템, 센터를 연계하여 운영할 수 있도록 지원하는 기반 플랫폼
[ 구성 요소 ]
통합관제 / 통합운영 / 통합연계 / 통합DB
■ 인슈어 테크 (InsurTech)
보험과 기술의 합성어로 인공지능, 블록테인, 핀테크 등의 IT기술을 보험산업에 적용한 기술
■ 텐서플로(TensorFlow)
구글이 2015년에 오픈소스로 공개한 기계학습 라이브러리
기계학습과 딥러닝을 위해 데이터 플로우 그래프 방식을 사용하여 수치 연산하는 오픈소스 소프트웨어 라이브러리
텐서플로는 데이터를 텐서로 표현하고 데이터 흐름 그래프를 이용하여 연산을 처리한다.
* 텐서 Tensors : 다차원 데이터 배열
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기 책 리뷰] - 이기적 & NCS1000 (0) | 2020.11.22 |
---|---|
[정보처리기사_실기] Chapter 11. 응용 소프트웨어 기초 기술 활용 (0) | 2020.10.12 |
[정보처리기사_실기] Chapter 10. 프로그래밍 언어 활용 (0) | 2020.10.11 |
[정보처리기사_실기] Chapter 9. 소프트웨어 개발 보안 구축 (0) | 2020.10.11 |
[정보처리기사_실기] Chapter 8. SQL 응용 (0) | 2020.10.11 |