
개발환경 구축의 개념
개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해가 필요하다
개발 도구와 서버의 선정이 이루어져야 하고, 개발에 사용되는 도구들의 사용 편의성과 성능, 라이선스를 확인한다
개발 도구의 분류(빌구테형)
빌드 도구
작성한 코드의 빌드 및 배포를 수행하는 도구
각각의 구성요소와 모듈에 대한 의존성 관리를 지원
구현 도구
개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구
프로그램을 개발할 때 가장 많이 사용되는 도구
테스트 도구
코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 가능
형상 관리 도구
개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구
하드웨어 개발환경 – 서버
웹 서버
HTTP를 이용한 요청/응답을 처리
웹 상의 정적 콘텐츠 처리, WEB-WAS-DB 3계층 구조를 실무에서 활용
웹 어플리케이션 서버
동적 컨텐츠를 처리하기 제공하기 위해 사용
주요 제품으로 Tomcat, Weblogic, Jeus, Resin 등 존재
데이터베이스 서버
데이터의 수집, 저장을 위한 용도로 사용
파일 서버
파일 저장 하드웨어로 물리 저장장치를 활용한 서버
하드웨어 개발환경 – 클라이언트
클라이언트 프로그램
설치를 통해 사용자와 커뮤니케이션하는 프로그램
웹 브라우저
웹 서비스의 형태로 서버에서 웹 애플리케이션을 응답 시 브라우저를 통해 사용자와 커뮤니케이션
모바일 앱
모바일 디바이스에 설치되어 활용되는 애플리케이션
모바일 웹
앱 브라우저와 동일한 형태로 모바일 상 웹 브라우저를 통해 서비스를 제공
소프트웨어 개발환경
운영체제
서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
미들웨어
컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어
DBMS
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
형상관리
소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위환 활동
형상 관리의 절차(식통감기)
형상 식별
형상 관리 대상을 정의 및 식별하는 활동
추적성 부여를 위해 ID와 관리번호를 부여
변경 관련 이슈 발생시 ID와 관리번호를 이용하여 추적
형상 통제
형상 항목의 버전 관리를 위한 형상통제위원회 운영
변경요구 관리, 변경제어, 형상 관리 등 통제 지원
베이스라인에 대한 관리 및 형상 통제 수행 가능
형상 감사
소프트웨어 베이스라인의 무결성 평가
베이스라인* 변경 시 요구사항과 일치 여부 검토
*베이스라인 : 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점의 기준
형상 기록
소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록
모듈
크게 독립된 하나의 SW 또는 HW 단위를 지칭하는 용어
모듈의 특징
- 각각의 모듈은 상대적으로 독립성을 가지고 있다.
- 모듈 내부에는 그 모듈을 하나로 통합하는 수많은 조합이 존재할 수 있다.
- 단독으로 컴파일 할 수 있으며 재사용할 수 있다
- 모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도는 약하게, 응집도는 강하게, 크기는 작게 만들어야 한다
모듈화
SW 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법
모듈화 기법
루틴
SW에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
메인 루틴
프로그램의 주요한 부분이며, 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
서브 루틴
메인 루틴에 의해 필요할 때마다 호출되는 루틴
공통 모듈 구현
소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법.
응집도
모듈의 독립성을 나타내는 개념으로 모듈 내부 구성요소 간 연관 정도
응집도의 유형(우논시절통순기)
우연적 응집도
모듈 내부의 각 구성요소가 연관이 없을 경우
논리적 응집도
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
시간적 응집도
연관된 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
절차적 응집도
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 순차적으로 수행할 경우
통신적 응집도
동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모여 있을 경우
순차적 응집도
모듈 내 한 활동으로부터 출력값을 다른 활동이 사용할 경우
기능적 응집도
모듈 내부 기능이 단일한 목적을 위해 수행되는 경우
결합도
모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
결합도의 유형(내공외제스자)
내용 결합도
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
공통 결합도
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조해 전역 변수를 갱신하는 식으로 상호작용하는 경우
외부 결합도
두 개의 모듈이 외부에서 도입된 데이터 포맷 또는 디바이스 인터페이스를 공유할 경우
제어 결합도
단순 처리할 대상인 값만 전달된는게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
스탬프 결합도
모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
자료 결합도
모듈 간의 인터페이스로 전달되는 파라미터를 통해 모듈 간의 상호작용이 일어나는 경우
공통 모듈 구현 절차(디스다써클)
공통 모듈은 DTO/VO – SQL – DAO – Service – Controller – 화면 구현순으로 진행된다.
공통 모듈의 구현을 위해 절차에 구현되는 MVC 패턴의 개념을 이해한다.
모델
애플리케이션이 무엇을 할 것인지 정의
내부 비즈니스 로직을 처리하기 위한 역할
뷰
화면에 무엇인가를 보여주기 위한 역할
모델, 컨트롤러가 보여주려고 하는 것들을 화면에 처리
컨트롤러
모델이 어떻게 처리할지를 알려주는 역할
뷰에 명령을 보내어 화면 요청 결과를 전달
팬인 및 팬아웃 개념
구분 | 팬인 | 팬아웃 |
개념 | 어떤 모듈을 제어하는 모듈의 수 | 어떤 모듈에 의해 제어되는 모듈의 수 |
모듈 숫자 계산 | 모듈 자신을 기준으로 모둘에 들어오면 팬 인 | 모듈 자신을 기준으로 모듈에서 나가면 팬 아웃 |
고려사항 | 팬인이 높으면 재사용 측면에서 설계가 잘 되었지만 단일 장애점 발생 가능 |
팬아웃이 높을 경우 불필요한 모듈 호출 여부 검토 필요 |
공통 모듈 테스트의 개념
공통 모듈 테스트를 위해 IDE 도구를 활용해 개별 공통 모듈에 대한 디버깅을 수행한다.
공통 모듈 테스트는 화이트 박스 기법을 이용한다.
대표적인 단위테스트 도구인 Junit을 활용해 테스트 코드를 구현한다.
공통 모듈 테스트의 종류(화메화드스)
화이트박스 테스트
응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행
메서드 기반 테스트
공통 모듈의 외부에 공개된 메서드 기반의 테스트
메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행
화면 기반 테스트
사용자용 화면이 있을 경우 각각의 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행
화면 기반 테스트는 화면과 연계된 서비스, 비즈니스 컴포넌트 및 공통 컴포넌트를 한거번에 단위 테스트에 참여
테스트 드라이버, 테스트 스텁
기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 스텁을 통해 테스트를 수행
배치 프로그램
사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법이다.
배치 프로그램의 유형(이온정)
이벤트 배치
사전에 정의해 둔 조건 충족시 자동으로 실행
온디맨드 배치
사용자의 명시적 요구가 있을 때마다 실행
정기 배치
정해진 시점에 정기적으로 실행
배치 스케줄러
일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구
배치 프로그램의 유형
스프링 배치
스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량, 처리를 제공하는 스케줄러
쿼츠 스케줄러
스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트기러를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러
크론 표현식(초분시일월요년)
순서 | 필드 이름 | 허용 값 |
1 | 초 | 0 ~ 59, 특수문자 |
2 | 분 | 0 ~ 59, 특수문자 |
3 | 시간 | 0 ~ 23, 특수문자 |
4 | 일 | 1 ~ 31, 특수문자 |
5 | 월 | 1 ~ 12, JAN ~ DEC, 특수문자 |
6 | 요일 | 1 ~ 7, SUN ~ SAT, 특수문자 |
7 | 연도 (생략 가능) | 1970 ~ 2099, 특수문자 |
크론 표현식 특수문자 의미
기호 | 의미 |
* | 모든 수 |
? | 해당 항목 미사용 |
- | 기간 설정 |
. | 특정 기간 설정 |
/ | 시작 시간과 반복 간격 설정 |
L | 마지막 기간에 동작 |
W | 가장 가까운 평일에 동작 |
# | 몇 번째 주 |
'공부 > 정보처리기사' 카테고리의 다른 글
2020년 정보처리기사 실기 정리 #6 (0) | 2022.11.12 |
---|---|
2020년 정보처리기사 실기 정리 #5 (1) | 2022.11.11 |
2020년 정보처리기사 실기 정리 #3 (0) | 2022.11.09 |
2020년 정보처리기사 실기 정리 #2 (0) | 2022.11.08 |
2020년 정보처리기사 실기 정리 #1 (0) | 2022.11.07 |