티스토리 뷰
[Note]
정보처리기사 실기 요약 정리 공유
04. 서버 프로그램 구현
01. 개발환경 구축
WEB의 3계층 구조
- WEB-WAS-DB
JVM (Java Virtual Machine)
- 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공하는 소프트웨어.
JDK (Java Development Kit)
- 자바 애플리케이션을 구축하기 위한 핵심 플랫폼이다.
02. 공통 모듈 구현
모듈 (Module)
- 개념
- 모듈은 크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어.
- 모듈화를 통해 분리된 시스템의 각 기능들로 서브프로그램, 서브 루틴, 소프트웨어 내의 단위 프로그램, 작업 단위 등과 같은 의미로 사용된다.
- 특징
- 각각의 모듈은 상대적으로 독립성을 가지고 있다.
- 모듈 내부에는 그 모듈을 하나로 통합하는 수많은 조합이 존재할 수 있다.
- 모듈은 단독으로 컴파일할 수 있으며, 재사용할 수 있다.
- 독립성이 높은 모듈일수록 모듈 수정 시에도 다른 모듈들에는 영향을 거의 미치지 않고, 오류가 발생 시에도 쉽게 해결할 수 있다.
- 모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도는 약하게(낮게), 응집도는 강하게(높게), 모듈의 크기는 작게 만들어야 한다.
모듈화 (Modularity)
- 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법.
- 모듈을 이용하여 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법
- 모듈화의 장점 : 개발 편의성, 복잡성 감소, 성능 향상, 유지보수 용이
응집도 (Cohesion)
- 개념
- 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.
- 정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.
- 유형 (우논시절 통순기)
- 우연적 응집도 (응집도 가장 낮음)
- : 모듈 내부의 각 구성요소가 연관이 없을 경우
- 논리적 응집도
- : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
- 시간적 응집도
- : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
- 절차적 응집도
- : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
- 통신적 응집도
- : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
- 순차적 응집도
- : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
- 기능적 응집도 (응집도 가장 높음)
- : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
결합도
- 개념
- 모듈 내부가 아닌 외부의 모듈과 연관도 또는 모듈 간의 상호의존성이다.
- 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도다.
- 유형 (내공외제 스자)
- 내용 결합도 (결합도 높음)
- : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
- 공통 결합도
- : 파라미터가 아닌 모듈 밖에서 선언되어 있는 전역 변수를 참조하고, 전역 변수를 갱신하는 식으로 상호작용하는 경우
- 외부 결합도
- : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우
- 제어 결합도
- : 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
- 스템프 결합도
- : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
- 자료 결합도 (결합도 낮음)
- : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우
DAO (Data Access Object)
- 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터를 조작하는 객체이다.
DTO (Data Transfer Object)
- 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장 & 회수 외에 다른 기능이 없는 객체
VO (Value Object)
- 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와는 달리 고정 클래스를 가지는 객체이다.
MVC 패턴
- 애플리케이션을 Model, View, Controller의 3가지 역할로 구분한 패턴을 말한다.
- Model : 어플리케이션이 무엇을 할 것인지를 정의. 내부 비즈니스 로직을 처리하기 위한 역할.
- View : 화면에 무엇인가를 보여주기 위한 역할. 모델, 컨트롤러가 보여주려고 하는 것들을 화면에 처리.
- Controller : 모델이 어떻게 처리할지를 알려주는 역할. 뷰에 명령을 보내어 화면 요청 결과를 전달.
Fan-In
- 개념
- 어떤 모듈을 제어(호출)하는 모듈의 수
- 고려사항
- 팬인이 높으면 재사용 측면에서 설계가 잘 되었지만, 단일 장애점 발생 가능.
- 팬인이 높으면 관리 비용 및 테스트 비용이 증가함.
Fan-Out
- 개념
- 어떤 모듈에 의해 제어(호출) 되는 모듈의 수
- 고려사항
- 팬아웃이 높을 경우에는 불필요한 모듈 호출 여부 검토 필요
- 팬아웃이 높을 경우에는 단순화 여부 검토 필요
⇒ 시스템 복잡도를 최적화하기 위해서는 팬인은 높게, 팬아웃은 낮게 설계해야 한다.
공통 모듈 테스트의 종류 (화메 화드스)
- 화이트박스 테스트
- 프로그램의 로직을 이해하고, 내부 구조와 동직을 검사하는 소프트웨어 테스트 방식.
- 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
- 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행
- 메서드 기반 테스트
- 공통 모듈의 외부에 공개된 메서드 기반의 테스트
- 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행
- 화면 기반 테스트
- 사용자용 화면이 있는 경우, 각각의 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행
- 화면 기반 테스트는 화면과 연계된 서비스, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 테스트에 참여
- 사용자 시나리오에 기반한 공통 모듈 테스트를 할 수 있는 장점이 있음.
- 테스트 드라이버 / 테스트 스텁
- 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트를 수행
- 테스트 드라이버는 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법이며, 테스트 스텁은 상위 모듈은 있지만 하위 모듈은 없는 경우
03. 서버 프로그램 구현
Cron 표현식
- 초분시일월요연
- : 초 분 시간 일 월 요일 연도(생략가능)
- 표현식 특수문자 의미/ : 시작 시간과 반복 간격 설정W : 가장 가까운 평일에 동작
- \# : 몇번째 주, 요일 설정
- L : 마지막 기간에 동작
- \* : 모든 수
? : 미사용
\- : 기간 설정 , 특정 기간 설정
틀린 내용이 있거나 문제가 있을시 알려주세요. 같이 공부해요 😊
이 글이 도움이 되셨다면 공감, 댓글 부탁드려요 👍🏻
'Study' 카테고리의 다른 글
[Note] 2021 정보처리기사 실기 요약 정리 공유 | 06. 화면 설계 (0) | 2021.06.29 |
---|---|
[Note] 2021 정보처리기사 실기 요약 정리 공유 | 05. 인터페이스 구현 (0) | 2021.06.25 |
[Note] 2021 정보처리기사 실기 요약 정리 공유 | 03. 통합 구현 (0) | 2021.06.25 |
[Note] 2021 정보처리기사 실기 요약 정리 공유 | 02. 데이터 입출력 구현 (0) | 2021.06.21 |
[Note] 2021 정보처리기사 실기 요약 정리 공유 | 01. 요구사항 확인 (9) | 2021.06.21 |
댓글