본문 바로가기
NCS공부/애플리케이션

[NCS] 애플리케이션 구현

by 승싱생숭 2019. 7. 30.
728x90

개발 환경 구축의 이해

개발환경을 구축하기 위해서는 우선 해당 프로젝트의 목적및 구축 설계에 대한 명확한 이해가 필요하다.

 

개발을 위해 사용되는 소프트웨어의 종류

Eclipse, NetBeans, InteliJ

 

개발 언어의 선정 기준

개발하고자 하는 시스템이나 응용프로그램의 목적에 적합해야 한다.

프로그래밍의 효율성이 고려되어야 한다.

일반적인 PC 및 OS에 개발 환경이 설치 가능해야한다.

 

형성관리 도구 특징

Git은 분산버전 관리시스템, 리눅스 토발즈가 리눅스 커널 개발에 이용하려고 개발하였다.

SVN은 CVS에 비해 폴더 이동이 자유롭고, 행동 단위로 복구가 가능하다.

CVS는 Boost Library FileZiler 등이 CVS 기반으로 관리되고 있다.

 

개발 환경 구축에 필요한 하드웨어 중 애플리케이션 서버란

시스템에서 제공하는 서버 서비스를 활용하기 위해 거래를 발생시키는 하드웨어이다.

데이터베이스가 설치되는 하드웨어이다.

개발 시 작성되는 산출물 및 소스코드 등 제반 파일을 저장하고, 공유하기 위한 하드웨어이다.

 

개발환경에 적용된 아키텍처 패턴의 장단점

계층별 컴포넌트의 종속성이 최소화되어 부분적인 변경 시에 영향도가 적다.

컴포넌트의 재사용성이 뛰어나고, 교환 가능성이 확보된다.

계층의 적저한 개수나 규모를 결정하는 것이 어렵다.

 

형상관리의 정의 및 특성

형성관리란, 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.

소프트웨어 변경의 원인을 알아내고 제어하며 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보하는 작업이다.

형상관리는 소프트웨어 개발의 전 단계는 물론 유지보수 단계에서도 수행되는 활동이다.

 

소프트웨어 모듈 결합도란

어떤 모듈이 다른 모듈에 의존하는 정도를 나타내는 것이다.

결합도는 보통 응집도와 대비된다.

낮은 결합도는 종종 구조화가 잘된 컴퓨터 시스템의 지표이다.

 

소프트웨어 모듈결합도 순서

자료결합도 -> 스탬프 결합도 -> 제어 결합도 -> 외부 결합도 -> 공통 결합도 -> 내용 결합도

 

모듈 안의 기능들의 연관성 정도를 나타내는 것이 소프트웨어 모듈 응집도이다.

이 응집도 유형 중 절차적 응집도란 입출력을 공유하지 않으나 순서에 따라 수행될 필요가 있는 경우이다.

 

서버 프로그램 구현을 위한 프레임워크

소프트웨어 프레임워크란 효율적인 정보시스템 개발을 위한 코드 라이브러리, 애플리케이션, 애플리케이션 인터페이스 규약, 설정 정보 등의 집합으로서 소프트웨어 구성에 필요한 기본 뼈대를 제공한다.

프레임워크의 특징에는 모듈화, 재사용성, 확장성, 제어의 역흐름이 있다.

프레임워크의 구성 요소는 실행환경, 개발환경, 운영환경, 관리환경이 있다.

 

Java Bean 중 DTO란

프로세스 사이에서 데이터를 전송하는 객체를 의미한다. 스스로의 데이터를 저장 및 회수하는 기능을 제외하고 아무기능도 갖고 있지 않다.

 

서버 프로그램 작성하기에서 처리 흐름

1) JSP에서 요청

2) JavaScript에서 유효성 검사 및 Submit

3) web.xml에서 servlet-mapping으로 해당 컨트롤러로 이동

4) 해당 컨트롤러에서 받은 데이터를 회원 DTO클래스에 set

5) Insert 할 데이터를 DB작업을 수행하기 위해 DAO로 전달

6) DAO는 mybatis를 이용하여 DB에 데이터를 Insert하고 결과를 리턴

7) Controller는 받은 결과에 따라 작업을 성공/실패로 출력

 

목표시스템을 구성하는 하위 시스템간의 연동시, 안정적으로 동작할 수 있는 배치 애플리케이션 개발의 필수요소

대용량데이터, 자동화, 견고함과 안정성

 

소프트웨어 테스트 관련 설명

소프트웨어의 결함이 존재함을 보이는 과정이다.

시스템이 정해진요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 수동 또는 자동 방법을 동원하여 검사하고 평가하는 일련의 과정이다.

소프트웨어 테스트의 종류는 화이트박스 테스트, 블랙 박스 테스트가 있다.

 

단위테스트란?

단위 테스트는 시스템의 소스 코드 로직 등을 점검하는 단계이다.

소스코드의 Class나 Method단위의 검증을 수행한다.

자신이 코딩한 Method나 Class가 정상적으로 동작하는지를 테스트하는데, 주로 기능위주의 작동여부를 점검한다.

 

In Container Test

자바 애플리케이션에서는 주로 JUnit과 같은 XUnit시리즈의 단위 테스트 프레임워크를 사용하는 데, Tomcat이나 WebLogic과 같은 미들웨어 위에서 작동하는 애플리케이션의 경우 테스트가 반드시 해당 미들웨어 위에서 동작해야 한다.

 

프로그램 성능 향상 기법

시스템호출의 사용빈도를 줄인다.

IO집중에 따른 결합 자체를 회피하거나 분산시킨다.

Object 재사용한다.

728x90