본문 바로가기
IT/정보처리기사

정보처리기사 8단원(서버 프로그램 구현) 요약

by 낭만파 2021. 7. 5.
반응형
기출문제가 출제된 부분은 배경색으로 표시해 두었습니다

목차

1. 개발환경 구축
2. 공통 모듈 구현
3. 배치 프로그램 구현

 

개발환경 구축


개발 도구의 분류

💡 암기 TIP
드, 현, 스트, 상 관리 → 빌구 테형 (잘못을 빌구 태형을 당하다)
구분 설명
빌드 도구 작성한 코드의 빌드 및 배포를 수행
구현 도구 개발자의 코드 작성, 디버깅, 수정 등을 지원
테스트 도구 코드의 기능 검증과 전체 품질을 높이기 위해 사용
형상 관리 도구 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리

 

서버 하드웨어 개발환경

통상적으로 WEB-WAS-DB의 3계층 구조를 실무에서 활용

용어 설명
웹 서버 HTTP를 이용한 요청/응답 처리
웹 상의 정적 콘텐츠(CSS, Javascript, Image) 처리
주로 Apache 웹 서버를 사용
웹 애플리케이션 서버(WAS) 사용자 요청 스레드를 처리, DB에 접속해 SQL 결괏값 반환
동적 콘텐츠(Servlet, JSP)를 처리하기 위해 사용
주로 Tomcat 등 사용
데이터베이스 서버 데이터의 수집, 저장을 위한 용도로 사용
MySql, Oracle, MS-SQL, DB2 등 존재
파일 서버 파일 저장 하드웨어로 물리 저장장치를 활용(대용량의 HDD, SSD)

 

미들웨어(Middleware)

컴퓨터와 컴퓨터 간 연결을 쉽고 안전하게 할 수 있도록 해주고, 이에 대한 관리를 도와주는 소프트웨어

자바 기반 환경에서 JVM을 설치하여 컨테이너로의 기능을 주로 이용

  1. JVM(Java Virtual Machine): 시스템 메모리를 관리하면서 자바 기반 프로그램을 위해 이식 가능한 실행 환경 제공
  2. 컨테이너(Container): JSP와 서블릿을 실행시킬 수 있는 소프트웨어

 

형상 관리(Configuration Management)

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

 

형상 관리의 절차

💡 암기 TIP
별, 제, 사, 록 → 감기
절차 설명
형상 식별 형상 관리 대상 정의 및 식별
형상 통제 형상 항목 버전 관리를 위해 변경 요구 관리, 변경 제어
형상 감사 소프트웨어 베이스라인의 무결성 평가
형상 기록 소프트웨어 형상 및 변경관리에 대한 수행결과 기록

 

소프트웨어 형상 관리 도구

초기에는 공유 폴더 방식을 많이 사용하였으나, 현재는 클라이언트/서버 방식분산 저장소 방식이 많이 활용

💡 암기 TIP
유폴더, 라이언트/서버, 산 → 공클분(수록 리하다)
형상 관리 도구 유형 설명
공유 폴더 방식(RCS, SCCS) 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사
클라이언트/서버 방식(CVS, SVN) 중앙에 버전 관리 시스템을 항시 동작
분산 저장소 방식(Git) 로컬 저장소와 원격 저장소로 분리되어 분산 저장
형상 관리 도구 설명
CVS(Concurrent Version System) 서버와 클라이언트로 구성, 다수의 인원이 동시에 접근 가능
SVN(Subversion) 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구
RCS(Revision Control System) CVS와 달리 파일의 수정을 한 사람만으로 제한
Bitkeeper SVN과 비슷한 중앙 통제 방식으로, 대규모 프로젝트에서 빠른 속도를 내도록 개발
Git 속도에 중점을 둔 분산형 버전 관리 시스템, 대형 프로젝트에 효과적이고 유용

 

 

공통 모듈 구현


모듈(Module)

그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체로, 모듈 간 결합도는 줄이고 응집도는 높인 공통 모듈 구현을 권장

 

모듈화(Modularity)

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

모듈화 기법 설명
루틴(Routine) 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
메인 루틴(Main Routine) 프로그램의 주요한 부분이며, 전체의 개략적인 동작 절차를 표시
서브 루틴(Subroutine) 메인 루틴에 의해 필요할 때마다 호출되는 루틴

 

응집도(Cohesion)

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

💡 암기 TIP
연적, 리적, 간적, 차적, 신적, 차적, 능적 → 우 논 시절 통 순기(리가 시절순기다.)
응집도 유형 설명
우연적(Coincidental) 응집도 (⬇) 내부 구성요소가 각 연관이 없을 경우
논리적(Logical) 응집도 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리
시간적(Temporal) 응집도 특정 시간에 처리되어야 하는 활동들
절차적(Procedural) 응집도 다수의 관련 기능을 갖고, 순차적으로 수행
통신적(Communication) 응집도 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모임
순차적(Sequential) 응집도 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용
기능적(Functional) 응집도 (⬆) 모듈 내부의 모든 기능이 단일한 목적을 위해 수행

 

결합도(Coupling)

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

💡 암기 TIP
용, 통, 부, 어, 탬프, 료 → 내 공 외제 스자 ( 사는 외제쓰자!)
용어 설명
내용(Content) 결합도 (⬆) 다른 모듈 내부에 있는 변수나 기능사용
공통(Common) 결합도 모듈 밖에 선언된 전역 변수를 참조하고 갱신하는 식으로 상호작용
외부(External) 결합도 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜 등을 공유
제어(Control) 결합도 처리 대상만 전달되는게 아닌 어떻게 처리 해야 한다는 제어 요소가 전달되는 경우
스탬프(Stamp) 결합도 모듈 간의 인터페이스로 배열, 객체, 구조 등이 전달
자료(Data) 결합도 (⬇) 모듈 간에 전달되는 파라미터만을 통해 모듈 간의 상호작용이 일어나는 경우

 

공통 모듈 구현 절차

💡 암기 TIP
DTO/VO, SQL, DAO, Service, Controller, 화면 → DS DSC 화면

DTO/VO → SQL → DAO → Service → Controller → 화면 구현

  1. DTO(Data Transfer Object): 프로세스 사이에서 데이터를 전송하는 객체
  2. VO(Value Object): 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체
  3. DAO(Data Access Object): 특정 타입의 DB에 추상 인터페이스를 제공

 

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

모듈을 계층적으로 분석하기 위해 팬인과 팬아웃을 활용

용어 설명 그림
팬인(Fan-In) 자신을 기준으로 모듈에 들어오면 팬인(in)
팬아웃(Fan-Out) 자신을 기준으로 모듈에서 나가면 팬아웃(out)

 

 

배치 프로그램 구현


배치 프로그램(Batch Program)

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

💡 암기 TIP
벤트, 디맨드, 기 → 이온 수기
배치 프로그램 유형 설명
이벤트 배치 사전에 정의해 둔 조건 충족 시 자동으로 실행
온디맨드 배치 사용자의 명시적 요구가 있을 때 실행
정기 배치 정해진 시점(주로 야간)에 정기적으로 실행

 

배치 스케줄러(Scheduler)

일괄 처리(Batch Processing)를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

스케줄러 종류 설명
스프링 배치(Spring Batch) 스프링 프레임워크의 3대 요소를 모두 사용 가능
쿼츠 스케줄러(Quartz Scheduler) 오픈소스 기반 스케줄러

 

반응형

댓글