3장 통합 구현

2021. 4. 28. 10:23자격증/정보처리기사 실기

제3장 통합 구현

제 1절 연계 데이터 구성하기

1.통합구현

통합구현은 사용자들의 요구사항에 맞게 연계 시스템과 송신/수신 시스템 간의 관계를 적절히 구현하는 것이다.

  • 송신 시스템
    • 운영 데이터베이스에서 연계 데이터를 식별 및 추출하여 인터페이스 테이블(파일)로 생성하여 송신하는 시스템
    • 전송하고자 하는 데이터 생성 → 필요에 따라 변환 후 송신
    • 송신 모듈, 송신 모니터링
  • 수신 시스템
    • 송신 시스템으로부터 수신한 테이블을 수신 시스템의 운영 데이터베이스나 환경에 맞게 변환하여 처리에 활용할 수 있도록 하는 시스템이다.
    • 수신 받은 데이터를 정제, 가공하여 서비스
    • 수신 모듈, 수신 모니터링
  • 연계 응용 시스템(중계 시스템)
    • 송신 시스템과 수신시스템을 연계해주는 서버나 시스템에 해당된다.
    • 외부시스템간의 연계시에 적용되는 아키텍처
    • 중계 모니터링, 변환 및 매핑

2.연계 요구사항 분석

  • 개발하고자 하는 응용소프트웨어와 관련된 외부 및 내부 모듈 간의 데이터 연계 요구사항을 분석할 수 있다.
  • 사용자의 요구사항 분석은 연계 데이터와 연계 환경을 구성하기 위해 성능, 보안, 데이터 발생 유형 및 주기 등을 고려해야함

3.단위모듈 구현

  • 공통모듈
    • 전체 시스템 설계를 할 때에 각각의 서브 시스템에서 공통으로 사용되는 모듈들을 하나로 묶어서 놓은 소프트웨어 라이브러리를 말한다. (재사용성多)
    • 공통 모듈을 만드는 이유는 각각의 서브 시스템에서 제각각 모듈을 만들면 개발비도 중복으로 들어가고 표준화도 되지 않기 때문
    • 공통 모듈을 하나로 만들면 나중에 서브 시스템이 추가되더라도 공통 모듈은 재개발 없이 재사용이 가능하다는 장점이 있다.
  • 단위모듈
    • 화면 모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트 등이 있다. ex)계산기에서 +,-,*,/
    • 공통모듈을 먼저 구현하고 이를 단위모듈 구현시에 재사용한다.
  • 모듈화
    • 모듈의 독립성이 높아야 모듈화가 잘 되었다고 평가할 수 있다.
    • 결합도:결합도는 모듈들이 서로 관련되거나 연결된 정도를 나타낸다. 두 모듈 간의 상호 의존도
    • 응집도:한 모듈 내에 있는 처리 요소들 사이의 기능적인 연관 정도를 나타내며, 응집도가 높아야 좋은 모듈이 된다.

제 2절 연계 매커니즘 구성하기

1.연계 매커니즘

  • 송신시스템과 수신시스템으로 구성된다.

    -송신 시스템:데이터의 생성과 전송을 담당하는 시스템

    -수신 시스템:수신 및 운영 데이터베이스 반영을 담당하는 시스템

  • 송신/수신 시스템의 현황을 모니터링하는 연계(중계)시스템을 설치 할 수 있다.

  • 연계 방식은 직접/간접 연계 방식으로 나눌 수 있다.

2.직접연계방식

  • 직접연계방식은 중간 매개체 없이 송신 시스템과 수신 시스템이 직접 연계되는 방식이다.
  • 연계 및 구현이 단순하고 개발 소요 비용과 기간이 적게 소요된다.
  • 중간 매개체가 없기 때문에 데이터 연계처리 성능이 대체적으로 좋다.
  • 시스템간의 결합도가 높고, 시스템 변경에 민감하게 반응한다.
  • 보안을 위한 암복호화 처리와 비즈니스 로직 적용 등이 불가하다.

3.간접연계방식

  • 간접연계방식은 연계 솔루션과 같이 중간 매개체를 이용하여 연계하는 방식이다.
  • 운영 데이터베이스에서 연계 데이터를 생성 및 변환과 송신 로그를 모니터링하는 구현 대상 솔루션에서 제공하는 송수신 엔진과 어댑터로 구성한다.
  • 중간 매개체가 존재하므로 서로 상이한 네트워크, 프로토콜 등 다양한 환경을 연계 및 통합 할 수 있다.
  • 시스템 간 인터페이스 변경 시에도 장애나 오류없이 서비스가 가능하며, 암복호화나 비즈니스 로직적용이 용이하다.
  • 중간 매개체로 인한 성능이 저하될 수 있으며, 매커니즘이 복잡하다.

4.연계 방식 분류

  • 직접연계방식:DB Link, DB API/Open API, JDBC

  • 간접연계방식:Web Service, Socket

  • 오픈 API

    • Open Application Programmer Interface의 약자로, 인터넷 이용자가 웹 검색결과 및 사용자 인터페이스(UI)를 제공받는데 그치지 않고 직접 응용 프로그램과 서비스를 개발할 수 있도록 공개된 API.
    • 산업 인력 관리 공단은 공공데이터인 자격정보, 기능경기, 직업방송 동영상 등 다양한 컨텐츠를 공공데이터포털에 공개하여 사용자가 원하는 컨텐츠로 재가공 할 수 있도록 제공중에 있으며, 큐넷은 자격정보를 API형태로 제공중에 있다.

제 3절 내외부 연계 모듈 구현하기

1.IDE 도구

(1)IDE의 개요

  • 효율적으로 소프트웨어를 개발하기 위한 통합 개발 환경(IDE, Integrated Development Enviornment)이다.
  • 기존의 소프트웨어 개발에서 코드 편집기, 디버거, 컴파일러, 인터프리터 등 분리되어 사용되던 것들을 통합하여 개발자에게 제공한다.

(2)IDE의 종류

  1. 이클립스(Eclipse)
  2. 라자루스(Lazurus)
  3. 엑스코드(X code)
  4. 비주얼스튜디오(Visual Studio)
  5. 제이빌더(J Builder)
  6. C++빌더(C++ Builder)

2.협업 도구

(1)협업도구의 개요

  • 소프트웨어 개발 프로젝트에 많은 개발자들이 참여하기 때문에 협업을 위한 도구가 필요하다.
  • 프로젝트 임무를 수행하기 위해 각기 다른 장소에 있는 많은 사람들이 모여 IT 기술을 활용해 협력하고, 팀 단위의 활동을 수행하는 것을 가능하게하기 위해 협업도구가 필요하다.

(2)협업도구의 기능

  1. 업무효율성 향상
  2. 정보 접근성 향상
  3. 전체 이슈 진행 과정을 쉽게 파악
  4. 직원관리(전자결재, 근태관리, 주소록)

(3)협업도구의 종류

  1. 문서 공유:구글 드라이브
  2. 디자인 공유: 레드 펜
  3. 소스 공유:Git Hub
  4. 프로젝트 관리:트렐로, 레드마인, 지라
  5. 일정 관리: 구글 캘린더

3.형상관리 도구(☆★)

(1)소프트웨어 형상관리

→변경을 문서로 관리

1) 형상 관리의 개요

  • 형상(Configuration): 소프트웨어 공학의 프로세스 부분으로부터 생성된 모든 정보항목의 집합체

  • 소프트웨어 형상관리 항목(SCI, Software Configuration Item)

    1. 분석서
    2. 설계서
    3. 프로그램(원시코드, 목적코드, 명렁어 파일, 자료 파일, 테스트 파일)
    4. 사용자 지침서
  • 형상관리 (SCM, Software Configuration Management)

    1. 소프트웨어에 대한 변경을 철저히 관리하기 위해 개발된 일련의 활동
    2. 소프트웨어를 이루는 부품의 Baseline(번경통제 시점)을 정하고 변경을 철저히 통제하는것
  • 베이스라인(Baseline) 기준선

    정식으로 검터되고 합의된 명세서나 제품으로서, 이것으로부터 앞으로의 개발을 위한 바탕 역할을 하며, 정식 변경 통제 절차들을 통해서만 변경될 수 있는 것(IEEE)

    정당화될 수 있는 변경에 심하게 저항하지 않으면서 변경을 통제하게 도와주는 하나의 소프트웨어 형상관리 개념이다.

  • 전체 소프트웨어 프로세스에 적용되는 "보호활동" 이다.

2) 형상관리를 위한 조직(형상관리 위원회(팀)) 소프트웨어의 이해당사자

  1. 분석가: 사용자와 상의하여 무엇이 문제이며 어떤 기능향상 및 개작이 필요한가를 결정한다.
  2. 프로그래머: 분석가와 협동하여 문제의 원인을 찾아내고 변경의 형태와 내용을 알아낸다. 실제 프로그램의 수정을 담당한다.
  3. 프로그램 사서: 문서와 코드에 대한 변경을 계속 보관하고 관리한다.

3) 형상관리의 목적

  1. 가시성의 결여(Lack of Visibility)에 대한 문제 해결
  2. 통제의 어려움(Lack of Control)에 대한 문제 해결
  3. 추적의 결여(Lack of Traceability)에 대한 문제 해결
  4. 감시의 마비(Lack of Monitoring)에 대한 문제 해결
  5. 무절제한 변경(Incontrolled Change)에 대한 문제 해결

(2)형상관리의 기능

1) 형상 식별(Identification)

  1. 형상 식별은 소프트웨어 형상의 모든 항목에 대해 의미있고 항구적인 명명을 보증하는 소프트웨어 형상관리 활동이다.
  2. 형상관리 항목(SCI, Software Configuration Item)에 대해 관리 목록 번호를 부여하고 나무 구조(tree)를 표현하여 저장한다. 이는 관련 문서에 대한 추적을 용이하게 한다.
  3. 통제가 쉽도록 "누가, 언제, 무엇을 왜 정의하였는가?" 하는 정보를 생성하며, 기준선을 설정한다.

2) 형상 통제(Control)

  1. 식별된 SCI의 변경요구를 검토하고 승인하여 현재의 베이스라인에 적절히 반영될 수 있도록 통제하기 위한 형상관리 활동이다.
  2. 소프트웨어 유지보수를 위한 변경관리와 일치한다.

3) 형상 감사(Auditing)

  • 변경이 적절하게 시행되었는지 객관적인 검증과 확인(V&V) 과정을 거쳐 새로운 형상의 무결성을 확보하기 위한 활동이다.
  • 정형검토회의(Formal Technical Review)FTR:수정 완료된 형상 객체의 기술적인 정확성에 초점을 둔다. 검토자들은 SCI를 산정하여 다른 SCI와의 일관 혹은 잠재적인 부작용 유무를 검토한다.
  • 소프트웨어 형상 검사(Software Configuration Audit):검토시 일반적으로 고려되지 않은 특성들에 대해 형상 객체를 산정함으로써 FTR을 보완한다. SCM이 정식 활동일 경우에는 품질보증 조직과 별도로 SCM 감사를 실시한다.

4) 형상 보고(Status Accounting) 기록

  1. 형상 식별, 변경 통제, 형상 감사 기능의 수행 결과를 기록하고 데이터베이스에 의해 관리를 하며 이에 대한 보고서를 작성하는 활동이다. 레포팅
  2. 형상 상태 보고(CSR, Configuration Status Reporting)라고도 한다.

(3)형상관리 도구

1) 형상관리 도구의 개요

  1. 프로그램 소스를 특정 저장소에 저장해둔 것을 내려 받아 수정 후 업로드시키고 다른 개발자가 개발한 최신 소스를 내려받아 분석 및 빌드하도록 도와주는 도구이다.
  2. 형상관리는 일반적으로 버전관리, 소스관리, 소스코드관리와 동일한 의미로 사용한다.
  3. 소스코드 버전 관리 툴의 종류로는 CVS,SVN,GIT 등이있다.

2) 형상관리 도구의 주요 기능

  1. 소프트웨어 프로젝트를 빌드하기 위한 소스코드, 이미지, 스크립트 등의 저장소 repository
  2. 이러한 파일들의 변경을 체계적으로 관리, 제어(변경기록 추적, 특정 시점 파일 상태 조회)
  3. 팀내 다수의 개발자와 협업(작성된 소스 코드와 변경사항을 확인 및 수정)을 위한 도구와 매커니즘
  4. 장애 혹은 기능상 필요할 때 이전 버전으로 소프트웨어를 원상복구할 수 있다.
  5. 동일한 소프트웨어를 여러 개의 버전으로 분기해서 개발할 필요가 있는 경우에 유용. 버전관리

3) 형상관리 도구의 구성 요소☆

  • Repository

    프로젝트의 프로그램 소스를 포함한 형상항목이 저장되는 장소

    소스뿐만 아니라 소스의 변경사항도 모두 저장

    네트워크를 통해서 여러 사람이 접근 가능함.

  • checkout

    저장소에서 소스 및 버전관리 파일들을 받아 옴

  • commit

    소스를 수정 및 삭제, 새파일 추가등의 변경사항을 저장소에 갱신

  • Update

    체크아웃을 통해서 소스를 가져왔다 하더라도 다른 사람이 커밋을 하면 로컬 소스코드가 달라지는데 이때, Update 명령어를 통해서 저장소에 있는 최신 버전의 소스를 가져올 수 있다.

    로컬 소스 코드와 저장소에 있는 소스 코드를 비교하여 차이가 발생하는 부분만 바꿈

4) 형상관리 도구의 종류

  • GitHub★

    분산형 버전관리 시스템

    개발자가 중앙 서버에 접속하지 않아도 코딩 가능

    어떤 코드를 누가 수정했는지 기록, 추적 가능

    SVN, CVS보다 우수하다

  • SVN

    SuberVersion의 줄임말(CVS의 단점 보안)

    파일과 디렉토리의 삭제, 이동, 이름 변경, 복사 등을 지원(버전 관리 O)

    Trunk, Branches, Tags 로 구성

  • CVS

    개발 과정에서 사용하는 파일들의 변경내역을 관리

    아스키코드를 지원하며, 유니코드는 제한적으로 지원한다 → 요새 사용하기 힘듬

    속도가 상대적으로 느리다.

'자격증 > 정보처리기사 실기' 카테고리의 다른 글

스크럼 기법  (0) 2022.04.04
소프트웨어 생명주기  (0) 2022.04.04
4장 서버프로그램 구현  (0) 2021.04.28
2장 데이터 입출력 구현  (0) 2021.04.28
1장 요구사항확인  (0) 2021.04.10