Clean & Blue 자세히보기

전공/정보처리기사 실기

정보처리기사 실기 - 4. 서버 프로그램 구현(1) /개발환경/아키텍처/단위테스트

_청렴 2021. 4. 15. 13:41
반응형

NCS 정보처리기사

1) 개발 환경 구축하기

- 개발과 품질 관리에 대한 요구사항을 분석하여 형상 관리 서버, 테스트 서버, 빌드 서버를 결정

 -> 구현 도구, 테스트 도구, 형상 관리 도구, 빌드 도구 등 설계

 

- IDE(Integrated Development Environment)

통합 개발 환경, 프로그램 개발에 관련된 모든 작업을 하나의 프로그램에서 처리하는 환경을 제공하는 소프트웨어

 -> Eclipse, Visual Studio, Atom

 

- 형상관리 도구

 -> Git, CVS, SVN 등

 

- 빌드 도구

 -> Maven, Ant, Gradle

 

- 서버 개발 프레임워크를 활용한 개발 환경 구축

개발 프레임워크는 재사용 가능한 라이브러리와 애플리케이션 인터페이스, 설정 정보 뿐만 아니라 개발과 운영을 지원하는 도구도 함께 제공하는 경우 많음

 -> Spring, dJango, node.js

 -> 전자 정부 표준 프레임워크는 실행 환경, 운영 환경, 공통 컴포넌트와 함께 Eclipse 기반의 개발환경 제공

 

* CI : Continuous Integration

 

2) 공통 모듈 구현하기

•애플리케이션 개발 모델의 이해

- 아키텍처 스타일

많은 사람들 또는 신뢰 기간에서 검증한 보편적인 설계 방법

 

- 애플리케이션 개발 모델 

아키텍처 모델, 아키텍처 스타일의 여러 설계 방식

 

- 클라이언트/서버(Client/Server) 아키텍처

 -> 서버에 다수의 클라이언트가 접속하는 구조

 -> 데이터가 서버에 집중 -> 보안적, 관리적, 측면에서 용이

 -> 서버에 부하가 발생할 수 있음

 

- 계층적(Layerd) 아키텍처

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

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

-> 변경 영향이 인접 계층에만 제한되어 유지보수 용이

-> 계층 분할 시 많은 노하우 필요

 

- MVC 아키텍처

애플리케이션을 모델, 뷰, 컨트롤러로 구성

  • M : 애플리케이션의 핵심 기능 포함, 상태 관리, 변화 발생 시 V와 C에 통보
  • V : 모델로 부터 정보를 얻어 사용자에게 결과를 생성
  • C : 사용자의 입력을 받아 모델과 뷰에 명령 전달

-> 효율적인 모듈화

-> 동일한 모델에 대해 다양한 뷰 제공

-> 다소 복잡

 

- 저장소(Repository) 아키텍처

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

-> 대용량 데이터의 이동이 필요한 경우 적합

-> 컴포넌트의 추가와 삭제 용이

-> 데이터 관리가 중앙 집중화되어 관리 용이

-> 저장소 문제 발생 시 전체 시스템에 영향

 

* COCOMO 모델 : 비용 산정 시, 완성될 소프트웨어의 크기(라인 수, LOC)를 추정하고 이를 준비된 식에 대입하여 개발에 필요한 M/M을 예측하는 것

* CMM : 능력 성숙도, 초기/반복/정의/관리/최적화 순

* LOC ; Line of Code

* 폭포수 모델 : 단계적 완결

* 프로토타입 : 시제품 제작

* 나선형 모델 : 진화된 프로토타입 모델, 계획 및 요구분석/위험 분석/프로토타입 개발/평가 순으로 지속적 개발

* 테일러링 : 꼬리에 꼬리를 무는 개발

* 럼바우 분석 기법 : 객체 모델링, 동적 모델링, 기능 모델링

* 푸트남 : 노력 분포도 이용

* 델파이 : 전문가들에게 자문을 구하는 방식

 

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

- 개발 프레임워크 특징

  • 모듈화
  • 재사용성
  • 확장성 : 다형성을 통해 애플리케이션이 프레임워크의 인터페이스 확장
  • 제어의 역흐름 : 프레임 워크코드가 전체 애플리케이션 처리 흐름 제어, 다형성 통해 애플리케이션이 확장한 메소드 호출

-> 일정 수준 이상의 품질 보장, 모듈화를 통한 유지보수 용이

 

- 단위테스트 구현하기

전체 모듈을 통합하여 테스트하기 전에 개별코드의 완성도를 측정

-> 미리 코드의 오류는 발견할 수 있어서 후반부 공정의 시간 절약

-> 개별 코드를 테스트하는 테스트 코드 작성

-> 테스트주도 개발(TDD, Test Driven Development)에서는 테스트코드를 먼저 작성하고 테스트 코드를 성공하는 서비스코드를 작성하기도 함

 

 

 

정보처리기사 실기 - 4. 서버 프로그램 구현(2) /DTO/DAO/개발보안/cron/crontab

3) 서버 프로그램 구현하기 •프로그램 구현 절차 -> MVC 기반 구조 - DTO/VO 구현 DTO(Data Transfer Object)는 프로그램에서 유통되는 데이터를 객체화한 것  -> 데이터 값을 설정하고 조회하는 getter, sette.

aapslie94.tistory.com