자격증/정보처리기사

19. 서버 프로그램 구현

컴퓨터공부용 2023. 4. 11. 15:39

결합도와 응집도

모듈의 독립성을 높이기 위해서 결합도는 약하게, 응집도는 강하게 만들어야 한다.

 

결합도 

두 모듈 간의 상호작용 또는 의존도 정도

내용 결합도 : 다른 모듈 내부에 있는 변수나 기능을 사용하는 경우

공통 결합도 : 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 경우

외부 결합도 : 외부의 데이터 포맷, 인터페이스, 프로토콜을 공유할 때

제어 결합도 : 다른 모듈의 내부 논리 조직을 제어하기 위한 제어 신호를 통신하는 경우

스탬프 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우

자료 결합도 : 모듈 간 인터페이스로 전달되는 인수와 전달받는 매개변수를 통해서만 상호작용 하는 경우

 

응집도

한 모듈 내에 있는 처리요소들 사이의 기능적인 연관 정도

우연적 응집도 : 서로 간에 어떠한 의미 있는 연관관계도 지니지 않는 경우

논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우

시간적 응집도 : 서로 다른 기능을 같은 시간대에 함께 실행하는 경우

절차적 응집도 : 모듈 안의 구성요소들이 기능을 순차적으로 수행하는 경우

통신적 응집도 : 동일한 입출력을 사용하는 경우

순차적 응집도 : 모듈에서 나온 출력이 다른 활동의 입력으로 사용되는 경우 

기능적 응집도 : 하나의 기능에 모두 기여하고 밀접하게 관련되어 있는 경우

 

모듈

하나의 완전한 기능을 수행할 수 있는 독립된 실체

모듈화 : 프로그램 개발 시 생산성과 최적화, 관리 용이를 위해 기능 단위로 분할하는 기법

 

공통 모듈

정확성 : 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성

명확성 : 해당 기능에 대해 일관되게 이해되고, 한 가지로 해석될 수 있도록 작성

완전성 : 시스템 구현을 위해 필요한 모든 것을 기술

일관성 : 공통 기능들 간 상호 충돌이 발생하지 않도록 작성

추적성 : 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수  있도록 작성

 

Fan-In 및 Fan-Out 

Fan-In : 어떤 모듈을 제어하는 수 (모듈 자신을 기준으로 모듈에 들어오면 Fan-In)

Fan-Out : 어떤 모듈이 제어하는 수 (모듈 자신을 기준으로 모듈에서 나가면 Fan-Out)

Fan-In은 높게, Fan-Out은 낮게 설계 해야한다.

 

형상 관리

개발 과정의 변경사항 관리

소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지, SW 식별, 수정 및 통제하는 프로세스 제공

실수를 최소화하고 생산성의 최대화를 목적으로 한다

CVS, SVN, GIT, Clear Case 등이 있다.

 

형상 관리 도구의 주요 기능

저장소 : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳

가져오기 : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사하는 것

동기화 : 저장소에 있는 최신 버전을 자신의 작업 공간에 동기화시키는 것

체크 아웃 : 프로그램 수정을 위해 저장소에서 파일을 받아오는 것

체크 인 : 저장소에 새로운 버전 파일로 갱신하는 것

커밋 : 체크인을 수행할 때 충돌 날 경우 diff도구를 이용해 수정 후 갱신 완료

 

형상 관리 절차

형상 식별 : 형상 관리 계획을 근거로 형상 관리의 대상이 무엇인지 식별

형상 통제 : 형상 항목의 버전 관리를 위해서 변경 여부와 활동을 통제하는 활동

형상 감사 : 계획대로 형상 관리가 진행되고 있는지 살펴보는 활동

형상 기록/보고 : 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리하는 보고서 작성 작업

 

버전 관리

공유 폴더 방식 : 로컬 컴퓨터의 공유 폴더에 저장되어 관리

클라이언트/서버 방식 : 중앙 시스템(서버)에 저장되어 관리

분산 저장소 방식 : 원격 저장소와 로컬 저장소에 함께 저장되어 관리

 

미들웨어

클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어

 

DB : 클라이언트에서 원격의 데이터베이스와 연결

WAS : 사용자의 동적 콘텐츠를 처리하기 위해 사용

RPC : 원격 프로시저를 로컬 프로시저처럼 호출

TP Monitor : 트랜잭션을 처리 및 감시

MOM : 메시지 기반의 비동기형 메시지를 전달

Legacyware : 기존 앱에 새로운 업데이트된 기능을 덧붙이고자 할 때 사용

ORB : CORBA 표준 스펙을 구현한 객체 지향 미들웨어

 

배치 프로그램

유저와 상호작용 없이 일련의 작업을 묶어 정기적으로 반복 수행하는 일괄 처리 방법

 

배치 프로그램 유형

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

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

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

 

배치 스케줄러

일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원하는 도구

스프링 배치 : 스프링 프레임워크에서 사용, 대용량 처리를 제공하는 스케쥴러

쿼츠 스케줄링 : Job/Trigger 분리하는 오픈소스 스케줄러