본문 바로가기
정보처리기사 실기준비

[정처기] PART 04 : 서버 프로그램 구현 정리노트

by 코딩개미뚠뚠 2021. 4. 15.
반응형

시스템 구축에 필요한 도구 : 구현도구, 테스트도구, 형상관리 도구, 빌드 도구 등

 

구현도구 : ex> 통합 개발환경(IDE)

형상관리도구 : ex> CVS, SVN, Git

빌드도구 : Ant, Maven, Gradle

서버 개발 프레임워크 : Spring(java), django(python), Node.js(Javascript)

 

애플리케이션 개발 모델(=아키텍처 모델)

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

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

 

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

서버에 다수의 클라이언트가 접속하는 구조로 서버는 하나로 구성하기도하고 분산된 다수의 서버로 구성하기도 한다.

장점 : 서버의 추가와 업그레이드가 용이하다.

단점 : 다수의 클라이언트의 업그레이드 및 관리가 어렵다.

        서버에 부하가 발생할 수 있다.

 

계층적 아키텍처 

시스템을 고유한 역할을 수행하는 여러 개의 계층으로 구성하는 방식으로, 인접한 계층 간에는 요청과 응답을 주고 받지만 각 계층의 처리에는 관여하지 않도록 느슨한 결합구조를 갖는다.

장점 : 전체가 아닌 특정 계층만 수정할 수 있고 변경 영향도 인접 계층에만 제한되어 유지보수가 용이하다.

        문제를 점진적 순차적으로 처리할 수 있다.

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

 

MVC 아키텍처

애플리케이션을 모델, 뷰, 컨트롤러로 구성하는 아키텍처이다.

장점 : 효율적인 모듈화를 통해 개발 및 유지보수가 용이하다.

        동일한 모델에 대해 다양한 뷰를 제공할 수 있다.

단점 : 간단한 어플리케이션에 적용하기에는 다소 복잡하다.

 

저장소 아키텍처 

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

장점 : 대용량 데이터의 공유와 이동이 필요한 경우 적합하다.

        컴포넌트의 추가와 삭제가 용이하다.

        데이터 관리가 중앙집중화되어 관리가 용이하고 보안성이 우수하다.

단점 : 데이터 분산이 어렵다.

        저장소에 문제 발생시 전체 시스템에 영향을 미친다.

 

개발 프레임워크 특징 : 모듈화, 재사용성, 확장성, 제어의 역흐름

 

단위테스트 : 전체 모듈을 통합하여 테스트를 하기 전에 개별코드의 완성도를 측정하는 단위테스트를 수행하면 미리 코드의 오류를 발견할 수 있어서 후반부 공정의 시간을 절약하고 코드의 품질을 더 향상시킬 수 있다.

테스트 도구 ex> JUnit

 

DTO/VO(데이터 교환을 위해 사용)

DTO(data transfer object) : 프로그램에서 유통되는 데이터를 객체화한 것이다. 데이터 값을 설정하고 조회하는 getter. setter 외에 비지니스 로직을 가지지 않는다.

VO(value object) : DTO와 비슷하나 데이터의 값을 변경할 수 없는 특징으로 가진 객체이다.

 

SQL의 프레임워크 : Mybatis

 

DAO(data access object) : 데이터베이스에 접근하여 데이터를 생성, 조회, 수정, 삭제하는 역할을 담당한다.

 

소프트웨어 개발보안 : SW개발과정에서 개발자의 실수, 논리적 오류 등으로 인해 발생될 수 있는 보안 취약점, 보안약점들을 최소화하여 사이버 보안위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 보안활동

 

SQL 삽입 : 응용프로그램의 보안상 허점을 의도적으로 이용하여 악의적인 SQL문을 실행하게 함으로써 데이터베이스를 비정상적으로 조작하는 코드를 삽입하는 공격 방법이다.

 

정수형 오버플로우 : 정수값이 증가하면서 허용된 가장 큰 값보다 커져서 실제 저장되는 값이 의도하지 않게 아주 작은 수이거나 음수가 된다.

 

오류 메시지를 통한 정보 노출 : 샐행환경, 사용자 등과 관련된 민감한 정보를 포함한 오류 메시지를 생성하여 외부에서 제공하는 경우, 공격자가 이 정보를 악용할 수 있다.

 

취약한 API 사용 : 보안상 금지되거나 부주의하게 사용될 가능성이 많은 API 사용

 

배치 프로그램 : 대용량의 데이터를 일괄적으로 처리한다.

1> 대용량 데이터 : 대용량 데이터 처리 가능해야 함

2> 자동화 : 심각한 오류 상황이외에는 사용자의 개입없이 동작해야 한다.

3> 견고함 : 유효하지 않은 데이터에 대해서도 비정상적인 실행중단이 발생하면 안된다.

4> 신뢰성 : 문제의 원인이나 문제 발생 지점 등을 추적할 수 있어야 한다.

5> 성능 : 주어진 시간 내에 처리를 완료하고 같은 시점에 실행중인 다른 애플리케이션을 방해해서는 안된다.

 

스프링 배치 : 애플리케이션 + 배치 코어 + 배치 인프라

 

배치 스케줄러 : 배치 프로그램을 통한 일괄 처리는 주기적으로 동작하거나 특정 이벤트가 발생했을 때 반복적으로 수행되는 성격을 갖는다. 이런 배치 프로그램을 일정한 규칙에 따라 실행하도록 지원하는 것

반응형

댓글