솜은 코튼
[정보처리기사] 5장 서버 프로그램 구현 본문
01. 개발 환경 구축 - 하드웨어 환경
클라이언트 : PC, 스마트폰
서버 : 웹 서버, 웹 애플리케이션, DB Server, File Server
# 웹 서버 : 직접 요청을 받아 처리, 저용량 정적 파일 제공
(HTTP/HTTPS 지원, 통신 기록, 정적 파일 관리, 대역폭 제한, 가상 호스팅, 인증)
# 웹 애플리케이션 서버 : 웹 서버와 데이터베이스 서버 사이에서 인터페이스 역할 수행
# 데이터베이스 서버 : 데이터베이스와 DBMS 운영
# 파일 서버 : 데이터베이스에 저장하기 비효율적인 파일들 저장
02. 개발 환경 구축 - 소프트웨어 환경
시스템 소프트웨어 : OS/DBMS
개발 소프트웨어 :
# 요구사항 관리 도구 : 요구사항의 수집과 분석, 추적 등을 도와줌
# 설계/모델링 도구 : UML 지원, 개발의 전 과정에서 설꼐 및 모델링을 도와줌
# 구현 도구 : 애플리케이션의 실제 구현을 지원
# 빌드 도구 : 빌드 및 배포, 라이브러리 관리 지원
# 테스트 도구 : 요구사항에 적합하게 구현되었는지 테스트
# 형상 관리 도구 : 산출물 버전별로 관리
03. 모듈
: 단독 컴파일 가능, 재사용 가능, 기능이 서로 독립됨
# 결합도 : 낮을수록 품질이 높음
결합도↓ 결합도↑
자료 결합도 스탬프 제어 결합도 외부 결합도 공통 결합도 내용 결합도
# 응집도 : 정보 은닉 개념 확장, 높을수록 품질 높음
응집도↑ 응집도↓
기능적 응집도 순차적 응집도 교환적 응집도 절차적 응집도 시간적 응집도 논리적 응집도 우연적 응집도
# 팬 인 / 팬 아웃
A B
↘ ↙
C
: 팬 인) A, B는 0 / C는 2 팬 아웃) A, B는 1 / C는 0
04. 공통 모듈
: 모듈의 재사용성 확보와 중복 개발 회피를 위함
명세 기법 : 정확성, 명확성, 완전성, 일관성, 추적성
재사용 : 외부 모듈과 결합도↓, 응집도↑
재사용 규모에 따른 분류 : 함수와 객체, 컴포넌트, 애플리케이션
05. DBMS 접속(Connection)
웹 응용 시스템의 구조
웹 응용 프로그램 <-> 웹 서버 <-> WAS <-> DBMS
----웹 응용 시스템----
DBMS 접속 기술
# JDBC : Java언어로 DB접속하고 SQL문 수행할 때 사용되는 표준 API
# ODBC : DB 접근하기 위한 표준 개방형 API
# MyBatis : JDBC코드 단순화 사용 SQL Mapping 기반 오픈 소스 접속 프레임워크
동적 SQL vs 정적 SQL
동적 SQL |
정적 SQL |
|
SQL 구성 |
문자열 변수에 담아 동적 처리 |
커서를 통한 정적 처리 |
개발 패턴 |
반복문 활용 |
NVL 함수 없이 로직통해 작성 |
실행 속도 |
빠름 |
느림 |
사전 검사 |
가능 |
불가능 |
06. 서버 개발
: WAS에 탑재하는 것. 언어는 Java, JavaScript, Python, PHP, Ruby 등
서버 개발 프레임워크 : 대부분 MVC 패턴 기반
# spring : java 기반, 전자정부 표준 프레임워크 기반 기술
# Node.js : JavaScript 기반, 비동기 입출력 처리, 애플리케이션에 적합
# Django : Python 기반, 컴포넌트 재사용과 플러그인화 강조, 신속한 개발 가능
# Codeigniter : PHP 기반, 인터페이스 간편, 서버 자원 적게 사용
# Ruby on Rails : Ruby 기반, 데이터베이스 작업을 단순화, 자동화시켜 신속한 개발 가능
프레임워크의 특징
# 모듈화 : 캡슐화를 통해 변경에 따른 영향 최소화, 품질 향상
# 재사용성 : 개발자의 생산성 향상
# 확장성 : 다형성을 통한 인터페이스 확장 가능, 애플리케이션 개발 간으
# 제어의 역흐름 : 객체들의 제어 권한을 프레임워크에 넘김으로 생산성 향상
07. 서버 개발 과정
DTO/VO 구현 : 데이터 교환을 위해 사용할 객체 생성 (get/set)
SQL 구현 : IUDS 등 작업 수행 SQL문 생성 (mapper)
DAO 구현 : DB 접근, 데이터 실제 조작 (selectList)
Service 구현 : 사용자 요청 응답 로직 구현 (@Resource(name="memDao")
Controller 구현 : 사용자 요청에 적절한 서비스 호출 후 결과 반환 (@RequestMapping(value="/test/employees",~)
08. 배치 프로그램
: 상호작용 없이 미리 정해진 일련의 순서에 따라 일괄적 처리
- 주기에 따라 정기 배치(정해진 기간), 이벤트성 배치(특정 조건), On-Demand 배치(사용자 요청 시)
- 필수 요소 : 대용량 데이터, 자동화, 견고성, 안정성/신뢰성, 성능
배치 스케줄러
# 스프링 배치 : Job / Job Lancher / Step / Job Repository
# Quartz : Scheduler / Job / Job Detail / Trigger
# Cron : 리눅스의 스케줄러 도구
[분] [시] [일] [월] [요일] [명령어]
0~59 0~23 1~31 1~12 0(일)~6(토)
(*: 매시기마다, /3: 3시간마다, 18-21: 18시~21시 사이, 4,9,11 4/9/11월)
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 7장 애플리케이션 테스트 관리 (0) | 2020.07.14 |
---|---|
[정보처리기사] 6장 화면 설계 (0) | 2020.07.14 |
[정보처리기사] 4장 통합 구현 (0) | 2020.07.11 |
[정보처리기사] 3장 데이터 입출력 구현 (0) | 2020.07.11 |
[정보처리기사] 2장 요구사항 (0) | 2020.07.11 |