728x90
[정리] 2020 정보처리기사 실기 5장 - 서버 프로그램 구현 ★
정보처리기사 실기에 많은 비중을 차지하는 단원 !!
개발 환경 구축
웹 서버의 기능
HTTP/HTTPS 지원 | 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 |
통신 기록 | 처리한 요청들을 로그파일로 기록하는 기능 |
정적 파일 관리 | HTML, CSS, 이미지 등의 정적파일들을 저장하고 관리하는 기능 |
대역폭제한 | 네트워크 트래픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 |
가상호스팅 | 하나의 서버로 여러개의 도메인 이름을 연결하는 기능 |
인증 | 사용자가 합법적인 사용자인지를 확인 |
개발 소프트웨어
- 요구사항 관리도구 : 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어
(JIRA, IBM DOORS, Trello등) - 설계/모델링 도구 : UML(통합 모델링 언어)을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어
- 구현 도구 : 개발 언어를 통해 실제 규현을 도와주는 소프트웨어
- 빌드 도구 : 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어
- 테스트 도구 : 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어
- 형상 관리 도구 : 산출물들이 버전별로 관리하여 품질 향상을 지원하는 소프트웨어 ( 2020 실기 2회 기출 )
개발 언어의 선정 기준
- 적정성 : 개발하려는 소프트웨어의 목적에 적합해야 한다.
- 효율성 : 코드의 작성 및 구현이 효율적이어야 한다.
- 이식성 : 다향한 시스템 및 환경에 적용이 가능해야 한다.
- 친밀성 : 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 한다.
- 범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 한다.
모듈
- 모듈 : 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 말한다
- 모듈화 : 소프트웨어의 성능을 향상시키거나 수정 및 재사용, 유지 관리등이 용이하도록 모듈 단위로 분해하는 것
- 결합도 : 모듈간에 상호 의존하는 정도 또는 두 모듈관의 연관 관계
- 응집도 : 모듈의 내부 요소들이 서로 관련되어 있는 정도
공통 모듈
공통 모듈 : 공통 모듈은 여러 프로그램에서 공통적으로 사용할 수 있는 모듈을 의미
재사용(Reuse) : 재사용은 비용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 재구성하기 적합하도록 최적화 시키는 것
- 공통 모듈의 명세 기법
정확성 | 시스템 구현 시 해당 기능이 필요하다는 것을 정확히 작성 |
명확성 | 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성 |
완전성 | 시스템 구현을 위해 필요한 모든 것을 기술 |
일관성 | 공통 기능들 간의 상호 충돌이 발생하지 않도록 작성 |
추적성 | 기능에 요구사항의 출처, 관련 시스템을 파악할 수 있도록 작성 |
- 재사용 규모에 따른 분류
함수와 객체, 컴포넌트, 애플리케이션
DBMS 접속의 개요
- 웹서버/WAS : 웹서버는 웹페이지, 저용량 자료등의 처리를 담당하고 ,WAS는 DBMS와 통신하며 대용량 파일이나 복잡한 로직 등을 처리 담당한다.
- 정적 SQL : 변수에 담지 않고 직접 기술함 , 사전검사 가능, 실행속도 빠름.
- 동적 SQL : 변수에 담아 동적 처리. 사전검사 불가능, 실행속도 느림.
DBMS 접속 기술
- JDBC : Java 언어로 다양한 데이터베이스에 접근하고 SQL을 수행할 때 사용되는 표준 API
- ODBC : 데이터베이스에 접근하기 위한 표준 개방형 API로 개발 언어에 관계 없이 사용 가능
- MyBatis : JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크
서버 개발
서버 개발 : 웹 애플리케이션의 로직에 구현할 서버프로그램을 웹 애플리케이션 서버 WAS에 탑재하는 것을 의미한다.
서버 개발 프레임워크
- Spring : Java를 기반으로 만들어진 프레임워크로, 전자정부 표준 프레임워크의 기반기술로 사용
- Node.js : JavaScript를 기반으로 만들어진 프레임워크로, 비동기 입*출력 처리와 이벤트 위주의 높은 처리성능을 가지고 있어 실시간으로 입,출력이 빈번한 애플리케이션에 적함
- Django : Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원한다.
프레임워크의 특성
모듈화 | 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 품질을 향상시킨다. |
재사용성 | 재사용 가능한 모듈들을 제공함으로써 생산성을 향상시킨다. |
확장성 | 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을가진다. |
제어의 역흐름 | 개발자가 관리하고 통제해야 하는 객체들의 제어 권한을 프레임워크에 넘김으로써 생산성을 향상시킴 |
서버 개발 과정
- 서버 개발 과정: DTO/VO , SQL, DAO, Service , Controller를 각각 구현하는 과정이다. (순서 상관x)
- DTO (Data Transfer Object) : 데이터의 교환을 위해 생성되는 객체 ( 2020 실기 2회 기출 )
- VO (Value Object) : DTO와 동일하지만 읽기만 가능한 객체, 변경이 불가능함.
- DAO (Data Access Object) : 데이터 베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작할수 있음.
- Service : 사용자의 요청에 응답하기위한 로직
- Controller : 사용자의 요청에 적절한 서비스를 호출, 그 결과를 사용자에게 반환하는 코드
배치 프로그램
배치 프로그램의 필수 요소
대용량 데이터 | 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야함 |
자동화 | 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입없이 수행되어야 함 |
견고성 | 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는일이 없이 수행되어야 함 |
안전성/신뢰성 | 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함 |
성능 | 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 함 |
배치 스케줄러 (Batch Scheduler)
배치 스케줄러 : 배치 일괄처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구이다.
- 스프링 배치 (Sprint Batch) : Spring Source 사와 Accenture 사가 공동으로 2007년에 개발한 오픈 소스 프레임워크
- Quartz : 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈소스 프레임워크
- Cron : 리눅스의 스케줄러 도구로 crontab 명령어를 통해 작업을 예약할 수 있다.
728x90
반응형
'✏️ 2020 정보처리기사 실기 > 단원 정리' 카테고리의 다른 글
[정리] 2020 정보처리기사 실기 10장 - 응용 SW 기초 기술 활용 ★ (0) | 2020.10.13 |
---|---|
[정리] 정보처리기사 실기 6장 - 화면 설계 (0) | 2020.10.07 |
[정리] 정보처리기사 실기 4장 - 통합 구현 (0) | 2020.10.07 |
[정리] 정보처리기사 실기 3장 - 데이터 입출력 확인 (0) | 2020.10.07 |
[정리] 정보처리기사 실기 2장 - 요구사항 확인 (0) | 2020.10.05 |