이 게시글은 정보처리기사 실기 준비를 위해 수제비책과 ToDev님 블로그를 참조했으며
N번째 시험을 겪으며 중요하다고 느껴지는 개념을 위주로 담았고
이번 시험이 마지막이길 기원하며 정리한 글입니다.
개념의 설명을 보고 어떤 개념인지 유추하고 맞춰보며 학습하도록 빈칸을 쳐 놓았습니다.
드래그를 통해 답을 맞춰보실 수 있습니다.
01 개발환경 구축
▶ 프로그램 개발을 위한 도구
빌드 도구, 구현 도구, 테스트 도구, 형상 관리 도구(산출물에 대한 버전 관리 도구)
▶서버 하드웨어 개발 환경
⦁ 웹 서버 : HTTP를 이용한 요청/응답 처리, 웹 상의 정적 콘텐츠 처리, Apache 웹 서버
⦁ 웹 애플리케이션 서버 : 동적 콘텐츠(Servlet, JSP)를 처리, Tomcat
⦁ 데이터베이스 서버
⦁ 파일 서버
▶ 형상 관리(Configuration Management)
소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동
▶ 형상 관리의 절차(식통감기)
⦁ 형상 식별 : 형상 관리 대상 정의 및 식별
⦁ 형상 통제 : 형상 항목 버전 관리를 위해 변경 여부와 변경 활동 통제
⦁ 형상 감사 : 소프트웨어 베이스라인의 무결성 평가, 베이스라인 변경 시 요구사항과 일치하는지 검토
* 베이스 라인 : 개발과정의 각 단계별 산출물에 대한 변화를 통제하는 시점의 기준
⦁ 형상 기록 : 형상 및 변경관리에 대한 각종 수행결과 기록
▶ 소프트웨어 형상 관리 도구
⦁ 공유 폴더 방식(RCS, SCCS) : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식
⦁ 클라이언트/서버 방식(CVS, SVN) : 중앙에 버전 관리 시스템을 항시 동작시키는 방식
⦁ 분산 저장소 방식(Git) : 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 방식
- CVS : 서버와 클라이언트로 구성, 다수의 인원이 동시에 운영체제로 접근 가능
- SVN(Subversion) : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와줌
- RCS : CVS와 달리 소스 파일의 수정을 한 사람 만으로 제한
- Bitkeeper : SVN과 비슷, 대규모 프로젝트에서 빠른 속도 내도록 개발된 형상 관리 도구
- Git : 속도에 중점을 둔 분산형 버전 관리 시스템, 대형프로젝트에 효과적이고 유용
- Clear Case : 서버가 부족할 때 하나씩 추가하여 확장성을 기할 수 있음
02 공통 모듈 구현
▶ 모듈(Module) : 하나의 완전한 기능을 수행할 수 있는 독립된 실체
▶ 모듈화(Modularity) : 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 시스템을 분해하고 추상화하는 기법
▶ 모듈화 기법
⦁ 루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
⦁ 메인 루틴, 서브 루틴
▶ 응집도(Cohesion)
모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소 간 연관 정도
▶ 결합도(Coupling)
모듈 내부가 아닌 외부의 모듈과의 연관도, 모듈 간의 상호의존성, 모듈 간의 관련성
▶ 응집도 유형 (우논시절 통순기)
⦁ Coincidental Cohesion(우연적 응집도) : 모듈 내부의 구성요소가 각 연관이 없을 경우
⦁ Logical Cohesion(논리적 응집도) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
⦁ Temporal Cohesion(시간적 응집도) : 특정 시간에 처리 되어야 하는 활동들
⦁ Procedural Cohesion(절차적 응집도) : 모듈이 다수의 관련 기능을 갖고, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
⦁ Communication Cohesion(통신적 응집도) : 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모임
⦁ Sequential Cohesion(순차적 응집도) : 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
⦁ Functional Cohesion(기능적 응집도) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
▶ 결합도 유형 (데스형 제외 공유랑 내가 닮았대?)
⦁ Data Coupling(자료 결합도) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
⦁ Stamp Coupling(스탬프 결합도) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
⦁ Control Coupling(제어 결합도) : 어떻게 처리를 해야 한다는 제어요소가 전달되는 경우
⦁ External Coupling(외부 결합도) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우
⦁ Common Coupling(공통 결합도) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우
⦁ Content Coupling(내용 결합도) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
** 하나의 모듈에서 하나의 기능을 스스로 하는 것이 좋음
응집도는 높고 결합도는 낮을수록 품질이 좋아짐
▶ 공통 모듈(또는 서버 프로그램)의 구현 절차
DTO/VO -> SQL -> DAO -> Service -> Controller -> View
* DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
* DTO(Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
* VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체
▶ MVC 패턴 역할
⦁ 모델 : 애플리케이션이 무엇을 할 것인지를 정의
⦁ 뷰 : 화면에 무엇인가를 보여주기 위한 역할
⦁ 컨트롤러 : 모델이 어떻게 처리할지를 알려주는 역할
▶ 팬인(Fan-In) / 팬 아웃(Fan-Out)
⦁ 팬인 : 모듈 자신을 기준으로 들어오면 팬인
⦁ 팬 아웃 : 모듈 자신을 기준으로 나가면 팬 아웃
▶ JUnit : 자바 프로그래밍 언어용 단위 테스트 도구
04 배치 프로그램 구현
▶ 배치 프로그램
일련의 작업들을 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
⦁ 배치 프로그램 유형 : 이벤트 배치, 온디맨드(사용자의 명시적 요구) 배치, 정기 배치
▶ 배치 스케줄러
일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구
⦁ 배치 스케줄러 종류 : 스프링 배치, 쿼츠 스케줄러
▶ Corn 표현식
⦁ 리눅스/유닉스 크론 표현식 : 분시일 월요연
⦁ 쿼츠 크론 표현식 : 초분시일 월요연
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 10. 애플리케이션 테스트 관리 (빈칸버전) ★ (0) | 2022.07.14 |
---|---|
[정보처리기사 실기] 09. 소프트웨어 개발 보안 구축 (빈칸버전) ★ (0) | 2022.07.14 |
[정보처리기사 실기] 07. SQL 응용 (빈칸버전) ★ (0) | 2022.07.13 |
[정보처리기사 실기] 05. 인터페이스 구현 (빈칸버전) (0) | 2022.07.13 |
[정보처리기사 실기] 04. 통합 구현 (빈칸버전) (0) | 2022.07.13 |