[6] 서버 프로그램 구현
(1) 개발도구
- 빌드 도구
- 구현 도구
- 테스트 도구
- 형상 관리 도구
(2) 서버 하드웨어 개발 환경
- 웹 서버 : 정적 콘텐츠 (CSS, Javascript, Image)처리 / Spache 웹 서버
- 웹 애플리케이션 서버 : 동적 콘텐츠 (Servlet, JSP) 처리 / Tomcat
- 데이터베이스 서버 : MySQL, Oracle
- 파일 서버 : HDD, SDD
(3) 소프트웨어 개발 환경
- 운영체제 : 하드웨어를 사용자가 편리하고 유용하게 사용하기 위한 소프트웨어
- 미들웨어 : 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있게
- DBMS : 데이터베이스 관리
(4) 형상 관리
: 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동
- 절차 ( 약술형 )
- 형상 식별 : 형상 관리 대상 정의 및 식별
- 형상 통제 : 형상 항목 버전 관리를 위해 변경 여부와 변경 호라동 통제
- 형상 감사 : 소프트웨어 베이스라인의 무결성 평가, 베이스라인 변셩 시 요구사항과 일치하는지 검토
- 베이스 라인 : 개발 과정의 각 단계별 산출물에 대한 변화를 통제하는 시점의 기준
- 형상 기록 : 형상 및 변경관리에 대한 각종 수행 결과 기록
(5) 소프트웨어 형상 관리 도구
- 공유 폴더 방식 : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사
- RCS : 소스 파일의 수정을 한 사람만으로 제한
- SCCS
- 클라이언트 / 서버 방식 : 중앙에 버전 관리 시스템을 항시 동작
- CVS : 다수 인원 동시에 운영체제 접근 가능
- SVN : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 해줌
- Bitkeeper : SVN과 비슷, 대규모 프로젝트에서 빠른 속도 내도록 개발된 형상 관리 도구
- 분산 저장소 방식 : 로컬 / 원격 저장소로 분리되어 분산 저장
- Git : commit, push
(6) 모듈
- 하나의 완전한 기능을 수행할 수 있는 독립된 실체
(7) 모듈화
- 소프트웨어의 성능을 향상 시키거나 프로그램을 효율적으로 관리할 수 있도록 시스템을 분해하고 추상화하는 기법
- 루틴 : 소프트웨어에서의 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령어들의 모임
(8) 응집도(Cohesion)
- 모듈 내부 구성요소간 연관 정도 ( 낮음[나쁜 품질] -> 높음[높은 품질])
- 우연적 (Coincidental) : 모듈 내부의 각 구성 요소가 연관이 없을 경우
- 논리적 (Logical) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
- 시간적 (Temporal) : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
- 절차적 (Procedual) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
- 통신적 (Communication) : 동일한 입출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우
- 순차적 (Sequential) : 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우
- 기능적 (Functional) : 모듈 내부 모든 기능이 단일한 목적을 위해 수행되는 경우
(낮음 -> 높음 순으로 작성하는 문제 몇 번 본 듯,,)
(9) 결합도(Coupling)
- 모듈 내부가 아닌 외부 모듈과의 연관도 또는 모듈 간의 상호 의존성 (높음[나쁜 물질] -> 낮음[높은 품질])
- 내용 (Content) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
- 공통 (Common) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용 하는 경우
- 외부 (External) : 두 개의 모듈이 외부에서 도입된 인터페이스를 공유할 경우
- 제어 (Control) : 단순 처리할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
- 스탬프 (Stamp) : 인터페이스로 배열, 객체, 구조 등이 전달되는 경우
- 자료 (Data) : 파라미터를 통해서만 상호작용이 일어나는 경우
(10) 공통 모듈 구현 절차
- DTO/VO -> SQL -> DAO -> Service -> Controller -> View
- DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
- DTO(Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
- VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체
(11) 팬인(Fan-In) / 팬 아웃(Fan-out)
- 시스템 복잡도를 최적화 하기 위해서는 팬인은 높게, 팬 아웃은 낮게
(12) 배치 프로그램
- 일련의 작업들을 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
- 이벤트 배치 : 사전에 정의해 둔 조건 충족 시
- 온디맨드 배치 : 사용자의 요구가 있을 때마다
- 정기 배치 : 정해진 시점
(13) 배치 스케줄러
- 일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구
- 스프링 배치 : 스프링 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공
(14) Cron 표현식
- 리눅스, 유닉스 : 분시일 월요연
- 퀴츠 : 초분시일 월요연
'IT_STUDY > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 8. 애플리케이션 테스트 (1) | 2023.09.24 |
---|---|
[정보처리기사 실기] 7. 소프트웨어 개발 보안 구축 (1) | 2023.09.20 |
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2023.09.12 |
[정보처리기사 실기] 4. 통합 구현 (0) | 2023.09.12 |
[정보처리기사 실기] 3. 데이터 입출력 구현 (0) | 2023.09.12 |