본문 바로가기

자격증/정처기

정처기 실기 파트8

반응형

서버 프로그램 구현

I.    개발환경 구축

1.   개발환경 구축

(1)  분류

-     빌드 도구

-     구현 도구

-     테스트 도구

-     형상 관리 도구

(2)  구성요소

-     하드웨어 개발환경

  서버 하드웨어 개발환경 : 웹 서버, 웹 어플리케이션 서버, 데이터베이스 서버, 파일 서버

  클라이언트 하드웨어 개발환경 : 클라이언트 프로그램, 웹 브라우저, 모바일 앱, 모바일 웹

-     소프트웨어 개발환경

  운영체제, 미들웨어, DBMS

-     형상 관리(Configuration Management)

  개념 : 소프트웨어 개발을 위한 전체 과정에서의 모든 변경 사항 관리

  목적 : 프로젝트 생명주기 동안 제품의 무결성과 변경에 대한 추적성을 확보

  절차 : 형상 식별 > 형상 통제 > 형상 감사 > 형상 기록

  소프트웨어 형상 관리 도구 유형 : 공유 폴더 방식(RCS, SCCS), 클라이언트/서버 방식(CVS, SVN), 분산 저장소 방식(Git )

  소프트웨어 형상 관리 도구별 특징

CVS(Concurrent Versions System) 다수의 인원이 동시에 범용적인 운영체제로 접근 가능
SVN(Subversion) 저장소를 만들어 그곳에 소스를 저장
RCS(Revision Control System) 소스 파일의 수정을 한 사람만으로 제한
Bitkeeper 중앙통제방식, 대규모 프로젝트에서 빠른 속도
Git Git의 속도에 중점을 둔 분산형 비전 관리 시스템
Clear Case 복수 서버, 복수 클라이언트 구조

 

  소프트웨어 형상 관리 도구 사용시 유의사항 : 버전에 대한 쉬운 정보 접근성, 불필요한 사용자에 대한 접근 제어, 동일 프로젝트에 대한 동시 사용성, 빠른 오류 복구

(3)  개발환경 구축 절차

-     절차 : 통합 개발 환경 설치, 형상 관리 도구 설치, 빌드 도구 설치

-     Git, SVN 주요명령어

  Git SVN
저장소 생성 git init svn import
저장소 복제 git clone svn checkout
커밋 git commit svn commit
변경 내용 확인 git diff svn diff
추가 git add svn add
이동 git mv svn mv
삭제 git rm svn rm
브랜치 생성 git branch svn copy
병합 git merge svn merge
원격 저장소 반영 git push svn commit
설정 확인 git config svn info

 

II.   공통 모듈 구현

1.   공통 모듈 구현

(1)  개념

-     모듈(Module)의 개념 : 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체

-     특징 : 각각 모듈은 상대적 독립성 가짐, 단독으로 컴파일 가능, 재사용 가능

-     모듈화(Modularity)의 개념 및 기법

루틴(Routine) 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령의 모임
메인 루틴(Main Routine) 프로그램의 중추, 전체의 개략적인 동작 절차를 표시하도록 만듬 / 메인 루틴은 서브 루틴을 호출
서브 루틴(Subroutine) 메인 루틴에 의해 필요시 마다 호출

 

-     공통 모듈 구현의 개념 : 기능 분할, 추상화 하여 성능 향상 및 유지보수를 효과적으로 하기 위한 기법

(2)  소프트웨어 모듈 응집도

-     응집도(Cohension)의 개념 : 모듈의 독립성을 나타내는 정도

-     유형(낮음->높음)

우연적 응집도(Coincidental), 논리적(Logical) 응집도, 시간적(Temporal) 응집도, 절차적(Procedural) 응집도, 통신적(Communication) 응집도, 순차적(Sequential) 응집도, 기능적(Funcional) 응집도

(3)  소프트웨어 모듈 결합도

-     결합도(Coupling)의 개념 : 외부 모듈과의 연관도 또는 상호의존도

-     유형(높음->낮음)

내용(Content) 결합도, 공통(Common) 결합도, 외부(External) 결합도, 제어(Control) 결합도, 스탬프(Stamp) 결합도, 자료(Data) 결합도

(4)  공통 모듈 구현 절차

-     순서 : DTO/VO -> SQL -> DAO -> Service -> Controller -> 화면구현

-     MVC패턴 사용

(5)  팬인(Fan-In) 및 팬아웃(Fan-Out)

-     개념 : 모듈을 계층적으로 분석하기 위한 개념

-     팬인 자신에게 들어오는 모듈 / 팬아웃 자신에서 나가는 모듈

-     깊이(Depth) : 몇 계층 / 넓이(Width) : 모듈이 제일 많은 계층에서의 모듈의 수

2.   공통 모듈 테스트

(1)  종류

-     화이트박스 테스트 : 응용 프로그램의 내부 구조와 동작을 검사

-     메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 기반 테스트

-     화면 기반 테스트 : 사용자 시나리오에 기반한 공통 모듈 테스트 가능

-     테스트 드라이버(Driver) / 테스트 스텁(Stub) : 테스트 드라이버 하위 모듈은 있지만 상위 모듈이 없는 경우 / 테스트 스텁 상위 모듈은 있지만 하위 모듈이 없는 경우

III.  서버 프로그램 구현

1.   서버 프로그램 구현

(1)  절차 : 백 엔드 와 프론트 엔드를 구분하여 구현

(2)  서버 프로그램 세부 구현

-     DTO(Data Transfer Object) / VO(Value Object) 구현 : 화면에서 전달받은 정보 DB에 저장하는 객체 구현

-     SQL문 구현

  DB테이블 정의 및 생성

  Mybatis XML 구현

  데이터 접근 객체(DAO;Data Access Object) 구현

  Service 클래스 구현

  Controller 클래스 구현

  /출력 검증(Validation) 로직 구현

IV.  배치 프로그램 구현

1.   배치 프로그램(Batch Program)

(1)  개념 : 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적 또는 정해진 규칙에 따라 일괄 처리 하는 방법

(2)  유형

-     이벤트 배치 : 정의해둔 조건 충족시 자동 실행

-     온디맨드 배치 : 명시적 요구가 있을 때마다 실행

-     정기 배치 : 정해진 시점(주로 야간)에 정기적으로 실행

(3)  배치 스케줄러(Batch Scheduler)

-     개념 : Batch Processing을 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

-     종류

  스프링 배치(Spring Batch) : 스프링 프레임워크와 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공

  쿼츠 스케줄러(Quartz Scheduler) : 스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러

-     Cron표현식

  (쿼츠 크론만 있음) : 0~59, 특수문자

  : 0~59, 특수문자

  시간 : 0~23, 특수문자

  : 1~31, 특수문자

  : 1~12, 특수문자

  요일 : 1~7, 특수문자

  연도(생략가능) : 1970~2099, 특수문자

  * : 모든 수

  ? : 해당 항목을 미사용

  - : 기간 설정

  . : 특정 기간 설정

  / : 시작시간과 반복간격 설정

  L : 마지막 기간에 동작

  W : 가장 가까운 평일에 동작

  # : 몇 번째 주, 요일 설정

(4)  배치 프로그램 설계

-     배치 프로그램 관리대장 확인

-     배치 설계서 확인

(5)  배치 프로그램 작성

-     DTO, VO 구현

-     SQL 문 구현

-     DAO 구현

-     Service 클래스 구현

-     스케줄러 등록

반응형

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

정처기 실기 파트9  (0) 2022.07.10
정처기 실기 파트7  (0) 2022.07.10
정처기 실기 파트6  (0) 2022.07.10
정처기 실기 파트5  (0) 2022.07.10
정처기 실기 파트4  (0) 2022.07.10