본문 바로가기

Others/정보처리기사

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

1. 개발환경 구축

개발 도구

- 빌드 도구, 구현 도구, 테스트 도구, 형상 관리 도구

 

서버 하드웨어 개발환경

- 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버

 

소프트웨어 개발환경

- 운영체제, 미들웨어, DBMS

 

형상 관리

- 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

- 공유 폴더 방식(RCS, SCCS), 클라이언트/서버 방식(CVS, SVN), 분산 저장소 방식(Git)

 

2. 공통 모듈 구현

모듈

- 모듈화를 통해 분리된 시스템의 각 기능들, 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체

- 독립성을 높이기 위해, 결합도는 낮게, 응집도는 강하게, 모듈의 크기는 작게

 

모듈화

- 소프트웨어의 성능을 향상시키거나, 복잡한 시스템의 수정, 재사용, 유지 관리에 용이 하도록 기능 단위의 모듈로 분해하는 설계 및 구현

- 루틴, 메인 루틴, 서브 루틴

 

응집도

- 모듈 내부 구성요소 간 연관 정도

- 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적

 

결합도

- 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성

- 내용 < 공통 < 외부 < 제어 < 스탬프 < 자료

 

MVC 패턴

- Model: 내부 비즈니스 로직을 처리하기 위한 역할, 애플리케이션이 무엇을 하는가

- View: 모델, 컨트롤러가 보여주려고 하는 것들을 화면에 처리, 화면에 무엇을 보여주는가

- Controller: 뷰에 명령을 보내 화면 요청 결과를 전달, 모델이 어떻게 처리할 것인가

 

팬인 과 팬아웃

- 시스템 복잡도 최적화를 위해, 팬인은 높게, 팬아웃은 낮게

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

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

 

공통 모듈 테스트

- 화이트박스 테스트, 메서드 기반 테스트, 화면 기반 테스트, 테스트 드라이버 / 테스트 스텁

 

3. 서버 프로그램 구현

4. 배치 프로그램 구현

배치 프로그램

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

- 이벤트 배치, 온디맨드 배치, 정기 배치

 

배치 스케줄러

- 배치 프로세싱을 위해 주기적으로 발생하거나, 반복적으로 발생하는 작업을 지원하는 도구

- 스프링 배치, 쿼츠 스케줄러

 

Cron 표현식