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
'개인공부 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 10. 애플리케이션 테스트 관리 (1) | 2024.05.04 |
---|---|
[정보처리기사 실기] 9. 소프트웨어 개발 보안구축 (1) | 2024.05.04 |
[정보처리기사 실기] 7. SQL 응용 (4) | 2024.05.03 |
[정보처리기사 실기] 6. 프로그래밍 언어 활용 (0) | 2024.05.02 |
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2024.05.02 |