영보의 SystemOut.log

2020 정보처리기사 실기 요약정리- 4과목 본문

자기계발/정보처리기사

2020 정보처리기사 실기 요약정리- 4과목

영보로그 2020. 9. 26. 21:19
반응형

* 개발환경 구축

 - 개발환경 구성 시 구현될 시스템 요구사하으이 명확한 이해가 필요

 - 도구와 서버의 선정이 이루어져야 하고, 도구들의 사용 편의성과 라이선스 확인

 

 

* 개발 도구 분류

빌드 도구

  - 작성한 코드의 빌드 및 배포를 수행하는 도구

  - 각각의 구성요소와 모듈에 대한 의존성 관리를 지원

구현 도구

  - 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구

  - 프로그램 개발할 때 가장 많이 사용되는 도구

테스트 도구

  - 코드의 기능 검증과 전체의 품질을 높이기 위해 사용되는 도구

  - 코드 테스트/ 테스트 계획/ 수행 및 분석 등의 작업 가능

형상 관리 도구

  - 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구

  - 프로젝트 진행 시 필수로 포함되는 도구

 

 

* 서버 하드웨어 개발환경

 - 웹 서버

 - 웹 애플리케이션 서버(WAS)

 - 데이터베이스 서버

 - 파일 서버

 

 

*클라이언트 하드웨어 개발환경

 - 클라이언트 프로그램 : 설치-사용자와 커뮤니티

 - 웹 프라우저

 - 모바일 앱

 - 모바일 웹

 

 

* 소프트웨어 개발환경

 - 운영체제 Windows, Unix, Linux ...

 - 미들웨어 Tomcat, Weblogic, Jeus...

 - DBMS Oracle, MySQL ...

 

 

* JVM(Java Virtual Machine)

 - 시스템 메모리를 관리함녀서 자바 기반 애플리케이션을 위해 이식 가능한 실행환경을 제공하는 소프트웨어

 

 

* 컨테이너

 - JSP와 서블릿을 실행시킬 수 있는 소프트웨어

 

 

* 형상 관리

 - 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

 - 절차 : 형상 식별 형상 통제 형상 감사 형상 기록

 

 

* JDK

 - 자바 애플리케이션을 구축하기 위한 핵심 플랫폼

 

 

* 브랜치

여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능

각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스 코드를 변경할 수 있는 기능

 

 

* 모듈

크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어

모듈의 독립성을 높이려면 : 결합도는 낮게, 응집도는 강하게, 모듈의 크기는 작게

 

 

* 모듈화 기법

 - 루틴

 - 메인 루틴

 - 서브 루틴

 

 

* 응집도(Cohesion)

 - 모듈의 독립성을 나타내는 개념으로 모듈 내부 구성요소 간 연관 정도

 - 정보 은닉 확장 개념 -> 하나의 모듈은 하나의 기능을 수행

 

 

* 응집도의 유형 (밑으로 갈수록 좋은 품질)

 - 우연적 응집도

 - 논리적 응집도

 - 시간적 응집도

 - 절차적 응집도

 - 통신적 응집도

 - 순차적 응집도

 - 기능적 응집도

    => 응집도가 높을수록 품질이 좋아진다. (응집도 높고, 결합도 낮으면 굿굿)

 

 

* 결합도(Coupling)

 - 외부 모듈과의 연관도, 모듈 간의 상호 의존성

 - SW 구조에서 모듈 간의 관련성을 측정하는 척도

 

 

* 결합도의 유형

 - 내용 결합도

 - 공통 결합도

 - 외부 결합도

 - 제어 결합도

 - 스탬프 결합도

 - 자료 결합도

 

 

* MVC(Model, View, Controller) 패턴 역할

 - 모델 : APP이 무엇을 하지 정의, 내부 비즈니스 로직 처리하기 위한 역할

 - : 화면에 무엇인가를 보여주기 위한 역할

 - 컨트롤러 : 모델이 어떻게 처리할지를 알려주는 역할

 

 

* DAO(Data Access Object)

 - 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터를 조작하는 객체

 

 

* VO(Value Object)

 - 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체

 

 

* DTO(Data Transfer Object)

 - 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장, 회수 외에 다른 기능이 없는 객체

 

 

* 팬인(Fan-in) & 팬아웃(Fan-Out)

 - SW 구성요소인 모듈을 계층적으로 분석하기 위해 활용. 시스템 복잡도 측정 가능

팬인

팬아웃

어ᄄᅠᆫ 모듈을 제어하는 모듈의 수

어떤 모듈에 의해 제어 되는 모듈의 수

- 재사용 측면 설계 잘됨
-
단일 장애점 발생 가능
- 관리 비용, 테스트 비용 비쌈

- 불필요한 모듈 호출 여부 검토 필요
- 단순화 여부 검토 필요

 

* 루틴(Routine)

 - 소프트웨어에서 특정 동작을 수행하는 일련의 코드로서 기능을 가진 명령어들의 모임

 

 

* 통합 개발환경 IDE(Integrated Development Enviroment)

 - 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어

ex) 이클립스, Visual Studio

 

 

* 화이트박스 테스트

 - 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식

 

 

* 어노테이션(Annotation)

 - 자바코드에 주석을 달아 특별한 의미를 부여한 메타데이터의 일종 /보통 앞에@붙여서 사용

 

 

* 프론트 앤드와 백 앤드

프론트 앤드

백 앤드

- 사용자의 화면에 나타나는 웹 화면 영역으로 웹 페이지를 그리는 기술

JSP, HTML, CSS ..

 - 사용자와 만나지 않고 프론트앤드와 연동하여 핵심 로직을 처리하는 영역으로 DB나 인터페이스를 통해 시스템에 접근함

 

 

* MyBatis

 - 객체지향 언어인 자바의 관계형 DB프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임 워크

 

 

* 배치프로그

 - 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

 - 필수 요소 : 이벤트 배치/ 온디맨드 배치/ 정기 배치

 

 

* 배치 스케줄러 종류

스프링 배치

  - 스프링 프레임 워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러

쿼츠 스케줄러

  - 스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

 

 

* Cron 표현식

1

  0~59, 특수문자

2

  0~59, 특수문자

3

시간

  0~23 , 특수문자

4

  0~31, 특수문자

5

  0~12, JAN~DEC, 특수문자

6

요일

  1~7, SUN-SAT, 특수문자

7

연도

(생략가능)

  1970~2099, 특수문자

기호

의미

*

  모든 수

?

  해당 항목을 미사용

-

  기간 설정

,

  특정 기간 설정

/

  시작 기간과 반복 간격 설정

L

  마지막 기간에 동작

W

  가장 가까운 평일에 동작

#

  몇 번째 주, 요일 설정

 => 예

 - 0012*** : 매일 12시에 실행

 - */10**** : 10분 마다 실행

 

반응형