서버프로그램 구현
개발환경 구축
개발 도구의 분류 (빌구테형)
- 빌드 도구 : 작성한 코드의 빌드 및 배포를 수행하는 도구
- 구현 도구 : 코드 작성과 디버깅, 수정 작업을 지원하는 도구
- 테스트 도구 : 코드의 기능 검증과 품질을 높이기 위한 도구
- 형상관리 도구 : 산출물(코드, 리소스)에 대한 버전 관리를 위한 도구
하드웨어 개발 환경(서버, 클라이언트)
- 서버 하드웨어 개발환경
- 웹 서버 : HTTP를 이용한 요청/응답 처리, 정적 콘텐츠 처리
- WAS 서버 : 동적 콘텐츠를 처리, 주요 제품 : 톰캣
- DB 서버 : 데이터 수집 용도로 사용
- 파일 서버 : 파일 저장 하드웨어로 물리 저장장치를 활용한 서버
- 클라이언트 하드웨어 개발환경
- 클라이언트 프로그램 : 설치를 통해 사용자와 커뮤니케이션하는 프로그램
- 웹 브라우저 : 웹 어플리케이션 응답 시 브라우저를 통해 사용자와 커뮤니케이션, 일반적인 웹 사이트
- 모바일 앱 : 모바일 디바이스에 설치되어 활용되는 앱
- 모바일 웹 : 웹 브라우저와 동일한 형태로 모바일에 최적화되어 있는 사이트 제공
소프트웨어 개발환경
- 운영체제 : 프로젝트의 성격에 따른 운영체제를 사용
- 미들웨어 : 자바 기반 환경에서 JVM을 설치하여 컨테이너의 기능을 주로 이용
- DBMS : 데이터의 저장 및 활용을 위해 DBMS 설치
형상관리의 개념 : 소프트웨어 개발의 전 과정에서 발생하는 모든 항목의 변경 사항을 관리하는 활동
형상관리의 절차 (식통감기)
- 형상 식별 : 형상 관리 대상을 정의 및 식별하는 행동
- 형상 통제 : 형상 항목의 버전관리를 위한 형상통제위원회(CCB) 운영, 변경에 관한 통제
- 형상 감사 : 베이스라인의 무결성 평가, 베이스 라인 변경 시 요구사항 일치 여부 검토
- 형상 기록 : 형상 및 변경 관리의 대한 각종 수행결과 기록, 형상결과 보고서 작성
형상관리도구 : 산출물에 대한 버전 관리를 위해 사용되는 도구
형상관리도구 유형 (공클분)
- 공유 폴더 방식 (RCS, SCCS) : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사
- 클라이언트/서버방식 (CVS, SVN) : 중앙에 버전 관리 시스템을 항상 작동시키는 방식
- 분산저장소방식 (Git) : 로컬 저장소와 원격 저장소로 분리되어 분산 저장 방식
*중앙의 저장소에서 로컬파일을 복사한 순간 자신만의 로컬 저장소에 생성, 로컬저장소 커밋, 원격 저장소 푸시
형상관리도구 별 특징
- CVS : 서버와 클라이언트로 구성, 다수의 인원이 동시에 접근 가능한 도구
- SVN : 하나의 서버에서 소스를 쉽게 관리할 수 있게 도와주는 도구 저장소를 만들어 그곳에 소스를 저장
- RCS : 소스 파일의 수정을 한 사람만으로 제한, 파일 잠금 방식
- Git : 분산 저장소 방식, 대형 프로젝트에서 유용, 커밋은 로컬 저장소, 푸시는 원격 저장소에 반영
공통 모듈 구현
모듈의 개념 : 그 자체로 하나의 기능을 완전히 수행할 수 있는 독립된 실체
모듈의 특징
- 각 모듈은 독립성을 가지고 있다.
- 모듈은 단독으로 컴파일할 수 있고, 재사용이 가능하다.
- 독립성이 높은 모듈일수록 다른 모듈에 영향을 끼치지 않는다.
- 모듈의 독립성은 결합도는 약하게, 응집도는 강하게 모듈의 크기는 작게 만들어야 높아진다
모듈화의 개념 : 성능을 향상시키거나 시스템의 수정, 재사용, 유지 관리를 위해 기능 단위로 모듈을 분해하는 기법
모듈화의 기법
- 루틴 : 특정 동작을 수행하는 일련의 코드, 기능을 가진 명령들의 모음
- 메인 루틴 : 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
- 서브 루틴 : 필요에 따라 메인 루틴에 호출되는 루틴이다.
공통 모듈 : 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드, 자체적으로 컴파일 및 재사용 가능
응집도의 개념 : 모듈 내부 구성요소 간 연관 정도이다. 하나의 기능을 수행할수록 응집도가 높다
응집도의 유형 (우논시절통순기) → 응집도 높은 순서
- 우연적 응집도 : 모듈 내부의 구성요소가 연관이 없을 경우
- 논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류한 처리 요소들이 한 모듈에서 처리되는 경우
- 시간적 응집도 : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
- 절차적 응집도 : 다수의 기능을 가질 때 구성 요소들이 그 기능을 순차적으로 수행할 경우
- 통신적 응집도 : 동일한 입출력을 사용하여 다른 기능을 수행하는 경우
- 순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
- 기능적 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
결합도의 개념 : 모듈 외부와 연관도 또는 모듈 간의 상호의존성
결합도 유형 (내공외제스자) → 결합도 낮은 순서
- 내용 결합도 : 다른 모듈에 있는 변수나 기능을 사용하는 경우
- 공통 결합도 : 모듈 밖에 전역 변수를 참조하는 경우
- 외부 결합도 : 외부에서 도입된 데이터 포맷, 통신 프로토콜을 공유하는 경우
- 제어 결합도 : 처리 대상의 값만 전달되는 게 아니라 어떻게 처리해야 한다는 제어요소가 전달되는 경우
- 스탬프 결합도 : 배열이나 객체, 구조 등이 전달되는 경우
- 자료 결합도 : 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우
MVC 패턴 (모델, 뷰, 컨트롤러)
- 모델 : 애플리케이션이 무엇을 할 것인지 정의, 내부 비즈니스 로직 처리를 위한 역할
- 뷰 : 화면에 무엇인가 보여주기 위한 역할, 모델, 컨트롤러가 보여주고자 하는 것을 화면에 처리
- 컨트롤러 : 모델이 어떻게 처리할 것인지 알려주는 역할, 뷰에 명령을 보내어 화면 요청 결과를 전달
팬-인 개념 : 어떤 모듈을 제어하는 모듈의 수
팬-인 고려사항
- 팬인이 높으면 재사용 좋음
- 팬인이 높으면 단일 장애 지점 발생 가능
- 팬인이 높으면 관리 비용 및 테스트 비용 증가
팬-아웃 개념 : 어떤 모듈에 의해 제어되는 모듈의 수
팬-아웃 고려사항
- 팬아웃이 높을 경우 불필요한 모듈 호출 여부 검토 필요
- 팬아웃이 높을 경우 단순화 여부 검토 필요
공통 모듈 테스트의 개념 : IDE 도구를 활용하여 개별 공통 모듈에 대한 디버깅을 수행, 화이트박스 기법, JUint
공통 모듈 테스트 종류
- 화이트박스 테스트 : 응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식, 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트 수행
- 메서드 기반 테스트 : 메서드에 다른 파라미터 값을 호출하면서 다양한 테스트를 수행
- 화면 기반 테스트 : 사용자 화면이 있는 경우, 각 화면 단위로 모듈을 개발 후 화면에서 데이터를 입력하여 테스트
- 테스트 드라이버/스텁 테스트 : 사용자 화면이나, 모듈이 구현되지 않은 경우 (상X드하X스)
서버 프로그램 구현
백엔드 : 사용자와 만나지 않고 프론트엔드와 연동하여 핵심 로직 처리하는 영역, DB나 인터페이스를 통해 접근
프론트엔드 : 사용자의 화면에 나타나는 웹 화면 영역, 웹 페이지를 그리는 기술 JSP, JS, HTML, CSS 등 활용
서버프로그램 구현 절차
- DTO/VO → SQL 문 → DAO → 서비스 → 컨트롤러
- DTO : 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장, 회수 외 다른 기능 없음
- DAO : 특정 타입의 데이터 베이스에 추상 인터페이스를 제공하는 객체, 세부내용 노출 없이 데이터 조작
- VO : 간단한 엔터티를 의미하는 작은 개체, 가변 클래스인 DTO와 달리 고정 클래스를 가짐
배치 프로그램 구현
배치프로그램 : 사용자와 상호작용 없이 일련의 작업을 작업 단위로 묶어 정기적으로 반복 수행
배치프로그램 (이온정)
- 이벤트 배치 : 사전에 정의한 조건이 충족 시 실행
- 온디멘드 배치 : 사용자의 명시적 요구가 있을 때 실행
- 정기 배치 : 특정 시점에 정기적으로 실행
배치 스케줄러 개념 : 일괄 처리를 위해 주기적, 반복적으로 발생하는 작업을 지원하는 도구
배치 스케줄러 종류
- 스프링 배치 : 스프링 프레임워크의 3대 요소를 사용, 대용량 처리를 제공하는 스케줄러 배치 애플리케이션이다.
- 쿼츠 스케줄러 : 스프링 프레임워크에 플러그인 되어 수행하는 작업, 실행 스케줄을 정의하는 트리거
- 크론표현식 : 스케쥴러를 실행시키기 위한 시간 및 주기를 설정하는 표현식, 리눅스/유닉스 크론은 초가 없다
- 쿼츠 크론 표현식 : 초 분 시 일 월요일 연도
*일요일은 0,7을 사용할 수 있으나 하나로 통일하여 사용
크론 표현식 특수문자 의미
* : 모든 수
? : 미사용
- : 기간 설정
, : 특정 기간 설정
/ : 반복 주기 설정
L : 마지막 날
W : 가장 가까운 평일
# : 몇 번째 주, 요일 설정
'정보처리기사 실기 요약본' 카테고리의 다른 글
[정보처리기사] 11.응용 SW 기초 기술 활용 (0) | 2023.03.09 |
---|---|
[정보처리기사] 10. 애플리케이션 테스트 관리 (0) | 2023.03.09 |
[정보처리기사] 9.소프트웨어 개발 보안 구축 (0) | 2023.03.09 |
[정보처리기사] 7. SQL 응용 (0) | 2023.03.09 |
[정보처리기사] 2. 화면 설계 (0) | 2023.03.09 |