취준일지/정보처리기사

[정보처리기사] 4.서버 프로그램 구현

양쏘쏘 2021. 10. 7. 01:00
728x90
반응형

01 개발환경 구축

1. 개발환경 구축

1.1 개발환경 구축의 개념

: 시스템 요구사항의 명확한 이해 필요

 개발 도구와 서버의 선정이 이루어지고 개발에 사용되는 도구들의 사용 편의성과 성능, 라이선스 확인

 

1.2 개발 도구의 분류

1) 빌드 도구 : 작성한 코드 빌드, 배포를 수행

2) 구현 도구 : 코드 작성과 디버깅, 수정 등의 작업 지원

3) 테스트 도구 : 코드의 기능 검증, 품질 향상을 위해 사용하는 도구

4) 형상 관리 도구 : 코드, 리소스 등 산출물에 대한 버전 관리를 위한 도구

 

1.3 개발환경 구성

1) 하드웨어 개발환경

서버 하드웨어 개발 환경 

 - 웹서버 : HTTP를 이용한 요청/응답 처리

 - 웹 애플리케이션 서버 : 동적 콘텐츠 제공

 - 데이터베이스 서버 : 데이터 수집,저장

 - 파일 서버 : 파일 저장 하드웨어, 물리 저장 장치 활용

클라이언트 하드웨어 개발환경

 - 클라이언트 프로그램 : 사용자와 커뮤니케이션하는 프로그램

 - 웹 브라우저 : 웹 서비스 형태

 - 모바일 앱 

 - 모바일 웹

 

2) 소프트웨어 개발환경

 - 운영체제 : 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어

 - 미들웨어 : 컴퓨터 간 연결을 쉽고 안전하게 할 수 있게 해주고 관리를 도와줌 

 - DBMS : 사용자와 데이터베이스 간의 사용자 요구에 따라 정보를 생성, 데이터베이스 관리

 

3) 형상 관리

: 소프트웨어 개발의 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위함

 생성 주기동안 형상 관리를 통해 산출물을 체계적으로 관리하여 가시성, 추적성, 무결성 등을 보장

> 형상 관리대상 파악, 베이스라인 지정, 버전 관리, 접근 제어

 - 형상 식별 : 형상 관리 대상을 정의, 식별

 - 형상 통제 : 형상 항목의 버전 관리를 위한 형상통제위원회 운영

 - 형상 검사 : 소프트웨어 베이스라인의 무결성 평가

 - 형상 기록 : 소프트웨어 형상 및 변경관리에 대한 각종 수행결과 기록

 

1.4 개발환경 구축 절차 

통합 개발 환경 설치

형상 관리 도구 설치

빌드 도구 설치

 

02 공통 모듈 구현

1. 공통 모듈 구현

1.1 공통 모듈 구현의 개념

1) 모듈의 개념

 : 하나의 소프트웨어, 하드웨어 단위를 지정하는 용어

  모듈화를 통해 분리된 시스템의 각 기능들로 서브프로그램, 서브 루틴, 소프트웨어 내의 단위 프로그램, 작업 단위 등

 

2) 모듈의 특징

- 모듈 간 상대적으로 독립성을 가짐

- 모듈 내부에는 모듈을 하나로 통합하는 수많은 조합이 존재 가능

- 단독으로 컴파일 가능, 재사용 가능

- 독립성이 높을수록 다른 모듈에 대한 영향도가 낮고 오류 발생시에도 해결이 쉬움

- 독립성을 높이기 위해 결합도는 약하게 응집도는 강하게, 모듈의 크기는 작게 만들어야함

 

3) 모듈화의 개념 및 기법

: 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록

기능 단위의 모듈로 분해하는 설계, 구현 기법

- 루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드

- 메인 루틴 : 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴

- 서브 루틴 : 메인 루틴에 의해 필요에 따라 호출되는 루틴

 

4) 공통 모듈 구현의 개념

: 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법

 

1.2 소프트웨어 모듈 응집도

1) 응집도의 개념

: 모듈의 독립성을 나타냄, 모듈 내부 구성요소 간 연관 정도

정보 은닉의 확장 개념

하나의 모듈은 하나의 기능을 수행함

 

2) 응집도의 유형

- 우연적 응집도

- 논리적 응집도

- 시간적 응집도

- 절차적 응집도

- 통신적 응집도

- 순차적 응집도

- 기능적 응집도

 

1.3 소프트웨어 모듈 결합도

1) 결합도의 개념

: 외부의 모듈과의 연관도, 모듈 간의 상호의존성

 

2) 결합도의 유형

- 내용 결합도

- 공통 결합도

- 외부 결합도

- 제어 결합도

- 스탬프 결합도

- 자료 결합도

 

1.4 공통 모듈 구현 대상

- 공통 모듈 : 화면 모듈, 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트

- 공통 모듈 구현 : 상세설계된 공통 모듈, 환경변수를 실제 프로그래밍 언어로 구현

 

1.5 공통 모듈 구현 절차

DTO/VO -> SQL -> DAO -> Serivce -> Controller -> 화면 구현 순

모델 : 비즈니스 로직을 처리

: 화면 처리

컨트롤러 : 뷰에 명령을 보내 화면 요청 결과를 전달

 

1.6 팬인 및 팬아웃

1) 팬인 및 팬아웃 개념

팬인 : 어떤 모듈을 제어하는 모듈의 수

팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수

팬인은 높게 팬아웃은 낮게 설계 -> 시스템 복잡도를 최적화

 

2) 팬인 및 팬아웃 계산 방법

 

2. 공통 모듈 테스트

2.1 공통 모듈 테스트의 개념

IDE 도구를 활용하여 개발 공통 모듈에 대한 디버깅을 수행

화이트 박스 기법을 활용

 

2.2 공통 모듈 테스트의 종류

- 화이트박스 테스트 : 소스 코드를 보면서 테스트 케이스를 만들어 테스트 수행

- 메서드 기반 테스트 : 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행

- 화면 기반 테스트 : 사용자 화면단위로 테스트, 사용자 시나리오 기반

- 테스트 드라이버/테스트 스텁 : 테스트 드라이버는 하위모듈만 있고 상위가 없는 경우, 스텁은 상위는 있지만 하위는 없는 경우

 

2.3 공통 모듈 테스트 구현

JUnit 을 사용

 

03 서버 프로그램 구현

1. 서버 프로그램 구현

1.1 서버 프로그램 구현의 개념

개발언어와 도구를 이용해 서비스 제공에 필요한 업무 프로그램을 구현함

 

1.2 서버 프로그램 구현 절차

백엔드와 프론트엔드로 구분하여 구현

 

1.3 서버 프로그램 세부 구현

1) DTO 구현

데이터베이스에 저장하는 객체 구현

 

2) SQL문 구현

데이터베이스 테이블 정의 및 생성

 

3) 데이터 접근 객체 구현(DAO)

SQL을 호출하여 조작을 수행

 

4) 서비스 클래스 구현

DAO를 호출 하는 서비스를 선언,구현

 

5) 컨트롤러 클래스 구현

단위 모듈의 메인 로직을 구현

 

6) 입출력 검증 로직 구현

성공/실패 시 각각 메세지 호출하는 검증 로직 구현

 

04 배치 프로그램 구현

1. 배치 프로그램

1.1 배치 프로그램의 개념

일련의 작업들이 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

 

1.2 배치 프로그램의 필수 요소

이벤트 배치 : 사전에 정의해 둔 조건 충족 시 자동으로 실행

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

정기 배치 : 정해진 시간에 정기적으로 실행

 

1.3 배치 스케쥴러

1) 배치 스케쥴러의 개념

: 일괄 처리를 위해 주기적,반복적으로 발생하는 작업을 지원해줌

 

2) 배치 스케쥴러의 종류

스프링 배치

쿼츠 배치

 

3) Cron 표현식

스케쥴러를 실행시키기 위해 작업이 실행되는 시간,주기를 설정

 

1.4 배치 프로그램 설계

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

프로그램 관리 대장을 읽고 구현해야할 배치 프로그램 기능을 확인

 

2) 배치 설계서 확인

프로그램 관리 대장의 ID와 일치하는 배치 설계서를 확인

 

1.5 배치 프로그램 작성

1) DTO 구현

데이터베이스에 저장할 객체를 구현

 

2) SQL문 구현

배치 프로그램 구현을 위한 SQL을 작성

 

3) 데이터 접근 객체 구현

4) 서비스 클래스 구현

5) 스케쥴러 등록

배치 프로그램을 정기적으로 실행하는 쿼츠 스케줄러를 등록

 

> 다음 글 보러가기

728x90