본문 바로가기

정보처리기사 실기/02. 응용SW엔지니어링

[2020 정보처리기사 실기 - 서버 프로그램 구현] 2. 공통 모듈 구현하기

 

* 어플리케이션 개발 모델

 

1) 어플리케이션 개발 모델의 이해 

     - 많은 사람들 또는 신뢰 기관에서 검증한 보편적 설계 방법을 아키텍쳐 스타일이라고 함

     - 아키텍처 스타일의 여러 설계 방식을 아키텍처 모델 또는 어플리케이션 개발 모델이라고 함

 

2) 클라이언트/서버 아키텍처

     - 서버 : 클라이언트로부터 요청을 수신하여 처리하고 결과를 송신

     - 클라이언트 : 사용자의 입력을 받아 서버에 요청을 송신, 서버로부터 처리결과를 수신하여 사용자에게 전달

     - 장점 : 서버추가와 업그레이드 용이, 데이터가 서버에 집중되어 보안적 관리적 측면 용이

     - 단점 : 다수의 클라이언트의 업그레이드 및 관리 어려움, 서버에 부하가 발생할 수 있음

 

3) 계층적 아키텍처

     - 시스템을 고유한 역할을 수행하는 여러 개의 계층으로 구성하는 방식

     - 인접한 계층 간 요청과 응답을 주고 받지만 각 계층의 처리에는 관여하지 않도록 느슨한 결합 구성

     - 장점 : 전체가 아닌 특정 계층만 수정 가능, 변경 영향도 인접 계층에만 제한, 유지보수 용이, 

                    계층으로 분할하여 문제를 점진적 순차적 처리

     - 단점 : 적절하게 꼐층을 분할하는 데는 많은 노하우가 필요

 

4) MVC 아키텍처

     - 어플리케이션 모델, 뷰, 컨트롤러로 구성하는 아키텍처

        모델M : 어플리케이션의 핵심 기능과 상태 관리, 변화가 발생했을 때 컨트롤러와 뷰에 통보 

        뷰V : 모델로부터 정보를 얻어와 사용자에게 결과물을 생성

        컨트롤러C : 사용자의 입력을 받아 모델과 뷰에 명령을 전달

     - 장점 : 효율적인 모듈화로 개발과 유지보수 용이, 동일한 모델에대해 다양한 뷰 제공

     - 단점 :  간단한 어플리케이션에 적용하기에는 다소 복잡, 모델 변경이 잦은 경우 뷰도 자주 변경되어 비효율적

 

5) 저장소 아키텍처

     - 중앙의 자료구조와 독립된 컴포넌트로 구성된 아키텍처

     - 장점 : 대용량 데이터의 공유에 적합, 컴포넌트 추가 삭제 용이, 데이터 관리가 중앙 집중화되어 관리 용이 보안성 우수

     - 단점 : 저장소에 문제 발생 시 전체 시스템에 영향, 데이터 분산이 어려움

 

 

* 재사용을 지원하는 프레임워크 활용

 

1) 개발 프레임워크는 정보시스템 개발을 위해 필요한 기능 및 아키텍처를 미리 만들어 제공하여 효율적 정보시스템 개발 지원

     - 모듈화 : 인터페이스에 의한 캡슐화로 모듈화를 강화하고 설계 구현의 변경의 영향을 최소화하여 SW 품질 향상

     - 재사용성 : 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 함

     - 확장성 : 프레임워크 다형성을 통해 어플리케이션이 프레임워크의 인터페이스를 확장할 수 있게 함

     - 제어의 역흐름 : 프레임워크 코드가 처리흐름을 제어하여 특정한 이벤트 발생 시 다형성을 통해

                                     어플리케이션이 확장한 메소드를 호출하여 제어가 프레임워크로부터 어플리케이션으로 거꾸로 흐르게 함

2) 목표 시스템의 요구사항과 개발 환경에 맞는 개발 프레임워크 선정하여 활용하면

     컴포넌트 재사용으로 개발 비용절감, 검증된 아키텍처를 활용하여 일정 수준의 품질 보장, 모듈화를 통한 유지보수 용이성 효과

 

 

* 단위테스트 구현하기

 

1) 전체모듈을 통합하여 테스트하기 전에 개별 코드와 완성도를 측정하는 단위테스트를 수행

     미리 코드의 오류를 발견하여 후반부 공정 시간을 절약하고 코드의 품질 향상

2) 단위테스트를 위해 개별 코드를 테스트하는 테스트 보드 작성 : JUnit과 같은 테스트 도구 활용하여 쉽게 테스트 코드 작성, 자동화

3) 테스트 주도개발 TTD 에서는 테스트 코드 먼저 작성하고, 테스트코드를 성공하는 서비스 코드를 작성함

     테스트 코드 작성 순서는 프로젝트의 개발 방식에 맞게 조정 가능