728x90
728x90

이번 시간은 정보처리기사 실기에서 다루는 8장 서버 프로그램 구현에 대해서 정리를 해보았습니다.

 

* 이 글은 정보처리기사 공부 목적으로 쓴 글입니다. 그러다 보니 혹시 제가 잘못 작성한 부분이 있거나 수정이 필요하다면 댓글로 알려주시면 감사하겠습니다. 


 

개발 도구 분류 빌구테형 : 빌드 도구, 구현 도구, 테스트 도구, 형상관리 도구
운영체제 하드웨어를 사용자가 편리하게 사용하기 위한 소프트웨어 ex) Windows, Unix, Linux
웹서버 정적 콘텐츠를 처리하는 서버 (ex. 아파치 웹 서버, 구글 웹 서버 등)
웹 애플리케이션 서버 =WAS. 동적 콘텐츠(JSP, 서블릿)를 처리하는 서버 (ex. Tomcat, Weblogic 등)
클라이언트 프로그램 사용자가 설치해서 커뮤니케이션하는 프로그램
미들웨어 컴퓨터-컴퓨터 간 연결 및 연결 관리를 돕는 소프트웨어 ex) Weblogic, Jeus, Tomcat
DBMS 사용자-DB 사이에서 데이터 관리를 하는 소프트웨어 ex) Oracle, MySQL
형상관리 (CM) 소프트웨어 개발 과정에서 발생하는 변경사항을 관리하는 것
형상관리 절차 식통감기
1. 형상 식별 (관리할 대상 식별 후 번호 부여)
2. 형상 통제 (형상통제위원회 운영, 베이스라인 관리)
3. 형상 감사 (무결성 평가)
4. 형상 기록
형상관리 통제 위원회 (CCB) 형상관리 방침을 정하고 관리하는 조직
베이스라인 개발 산출물 변화를 통제하는 시점
형상관리 도구 유형 공클분
1. 공유 폴더 방식 (개발이 완료된 파일을 공유 폴더에 복사)
2. 클라이언트/서버 방식 (중앙에 버전관리 시스템이 동작)
3. 분산 저장소 방식 (로컬 저장소/원격 저장소 분산)
형상관리 도구별 특징 1. RCS: 공유폴더 방식 (잠금 처리 후 1명만 수정)
2. CVS: 클라/서버 방식 (동시 접근 가능)
3. SVN: 클라/서버 방식
4. Clear Case: 복수 클라/복수 서버 (필요시 서버 증설 가능)
5. Bitkeeper: 분산 저장소 방식
6. Git: 분산 저장소 방식
형상관리 명령어 1. 생성 git init | svn import
2. 복제 git clone | svn checkout
3. 커밋 git/svn commit
4. 변경내용 확인 git/svn diff
5. 추가 git/svn add
6. 이동 git/svn mv
7. 삭제 git/svn rm
8. 브랜치 생성 git branch | svn copy
9. 병합 git/svn merge
10. 원격 저장소 반영 git push | svn commit
11. 설정 확인 git config | svn info
모듈 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체 (기능 단위로 분해, 추상화되어 재사용 가능한 단위)
모듈화 성능 향상, 유지 관리 등을 위해 기능 단위 모듈로 분해하는 기법 (모듈 단위로 설계하는 기법)
루틴 특정 동작을 수행하는 일련의 코드
메인 루틴 전체의 개략적인 동작 절차를 표시하며 서브 루틴을 호출하는 루틴
서브 루틴 메인 루틴에 의해 호출되는 루틴
응집도 모듈 내부의 구성요소 간 연관 정도
응집도 유형 우논시절통순기
1) 우연적
2) 논리적
3) 시간적
4) 절차적
5) 통신적
6) 순차적
7) 기능적
우연적 응집도 Concidential. 서로 다른 상위 모듈에 의해 호출되어 연관이 없는 정도
논리적 응집도 Logical. 유사하거나 특정 형태로 분류되는 요소들이 함께 있는 정도
시간적 응집도 Temporal. 특정 시간에 함께 처리되는 사이일 때
절차적 응집도 Procedural. 모듈의 기능이 여러 개일 때, 구성요소들이 그 기능을 순차적으로 수행할 때
통신적 응집도 Commnunational. 동일한 입출력을 사용해 각자 다른 기능을 수행할 때
순차적 응집도 Sequential. 출력 결과를 다른 요소가 입력 데이터로 사용할 때
기능적 응집도 Functional. 내부 모든 기능이 하나의 목적을 위해 수행할 때
결합도 모듈과 다른 모듈 간 상호 의존도
결합도 유형 내공외제스자
1) 내부(내용)
2) 공통
3) 외부
4) 제어
5) 스탬프
6) 자료
내부 결합도 Content. 다른 모듈의 내부 변수나 기능을 사용할 때
공통 결합도 Common. 공통 데이터(전역 변수)를 공유할 때
외부 결합도 External. 외부의 데이터 포맷, 인터페이스, 프로토콜을 공유할 때
제어 결합도 Control. 다른 모듈의 내부 논리를 제어할 때
스탬프 결합도 Stamp. 인터페이스로 배열, 객체 등이 전달될 때
자료 결합도 Data. 인터페이스로 전달되는 파라미터로만 상호작용할 때
팬인 어떤 모듈을 제어(호출)하는 모듈의 수
팬아웃 어떤 모듈에 의해 제어(호출)되는 모듈의 수
서버 프로그램 구현방식 디스다써클
DTO/VO ⇒ SQL ⇒ DAO ⇒ Service Class ⇒ Controller Class
DTO Data Transfer Object. 화면에서 전달받은 데이터를 전송하는 객체
VO Value Object. 간단한 객체
MyBatis 자바의 DB 프로그래밍을 돕는 프레임워크
DAO Data Access Object. 실질적으로 DB에 접근하는 객체
배치 프로그램 사용자와 상호작용 없이, 일련의 작업들을 묶어 일괄적으로 처리하는 방법
배치 프로그램 유형 이온정
1) 이벤트 배치
2) 온디맨드 배치
3) 정기 배치
이벤트 배치 사전에 정의된 조건이 충족될 때 실행
온디맨드 배치 사용자의 요구가 있을 때 실행
정기 배치 정해진 시점에 실행
배치 스케줄러 배치(일괄 처리)를 위해 반복적인 작업을 지원하는 도구
배치 스케줄러 종류 스쿼
1) 스프링 배치 : 스프링 프레임워크에서 사용하는 스케줄러
2) 쿼츠 스케줄러 : Job 과 Trigger 를 분리하는 오픈 소스 스케줄러
쿼츠 크론 표현식 스케줄러에서 배치 수행시간을 설정하기 위한 표현식
크론 표현식 초분시일월요연
1=SUN, 7=SAT
* : 모든 수
? : 미사용
- : 기간 설정
, : 특정 기간 설정
/ : 시작시간과 반복간격
L : 마지막 기간
W : 가까운 평일
# : 몇 번째 주, 요일
크론 표현식 예시 0 0 12 * * ? : 매일 12시에 실행
0 * 14 * * ? : 매일 14시부터 15시까지 매 분마다 실행
0 0/5 14,20 * * ? : 매일 14:00~14:55까지 5분마다 실행, 매일 20:00~20:55까지 5분마다 실행
0 0 20 ? * MON-FRI : 매주 월요일부터 금요일 20시에 실행
0 15 10 L * ? : 매달 마지막 날 10시 15분에 실행
0 15 10 ? * 6L 2020-2021 : 2020년부터 2021년까지 매달 마지막 금요일 10시 15분에 실행
0 11 11 1 1 ? : 1월 1일 11시 11분마다 실행
0 0 9 * * 15W : 매달 15일 9시에 실행 (단, 15일이 일요일이면 16일 실행, 토요일이면 14일 실행)

 

728x90
300x250