컴퓨터언어

정보처리기사 실기 공부 - 서버 프로그램 구현 보완

bbanpro 2020. 10. 12. 21:37
728x90
반응형

 

개발 환경 구축

응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것

 

하드웨어 환경

사용자와의 인터페이스 역할을 하는 클라이언트 + 클라이언트와 통신하여 서비스를 제공하는 서버

웹서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버

 

소프트웨어 환경

클라이언트와 서버 운영을 위한 시스템 소프트웨어 + 개발에 사용되는 개발 소프트웨어

 

시스템 소프트웨어

OS, 웹 서버나 WAS 운영을 위한 서버 프로그램, DBMS

 

개발 소프트웨어

요구사항 관리 도구 : 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어

설계/모델링 도구 : UML을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어

구현 도구 : 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어

빌드 도구 : 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어

테스트 도구 : 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어

형상 관리 도구 : 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어

 

개발 언어의 선정 기준

범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함

친밀성 : 개발자가 언어에 친숙 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함

이식성 : 다양한 시스템 및 환경에 적용이 가능해야 함

효율성 : 코드를 작성 및 구현이 효율적

적정성 : 개발하려는 소프트웨어의 목적에 적합

 

모듈

모듈화를 통해 분리된 시스템의 각 기능들로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용된다.

 

모듈화

소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것으로 모듈 간 결합도의 최소화, 응집도의 최대화가 목표임

 

팬인 : 어떤 모듈을 제어하는 모듈의 수

팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수

 

공통 모듈 명세 기법 - 다른 개발자들이 해당 기능을 명확히 이해할 수 있도록 함

정확성 : 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성

명확성 : 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성

완전성 : 시스템 구현을 위해 필요한 모든 것을 기술

일관성 : 공통 기능들 간 상호 충돌이 발생하지 않도록 작성

추적성 : 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성

 

재사용

비용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업

 

재사용 규모에 따른 분류

함수와 객체 : 클래스나 메소드 단위의 소스 코드를 재사용함

컴포넌트 : 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용함

애플리케이션 : 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용함

 

결합도 : 모듈 간에 상호 의존하는 정도

응집도 : 모듈 내부 요소들의 서로 관련되어 있는 정도

 

DBMS 접속

사용자가 데이터를 사용하기 위해 응용 시스템을 이용하여 DBMS에 접근하는 것

 

API

응용 프로그램 개발 시 운영체제나 DBMS 등을 이용할 수 있도록 규칙 등에 대해 정의해 놓은 인터페이스

 

DBMS 접속 기술

DBMS에 접근하기 위해 사용하는 API 또는 API의 사용을 편리하게 도와주는 프레임워크

JDBC, ODBC, MyBatis

 

라이브러리

프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체로, 필요할 때 언제든지 호출하여 사용할 수 있다

 

프레임워크

특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체

 

MyBatis

JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈소스 접속 프레임워크

 

커서

SQL문의 실행 결과로 반환된 복수 개의 튜플들에 접근할 수 있도록 해주는 기능

 

정적SQL

SQL 코드를 변수에 담지 않고 코드 사이에 직접 기술한 SQL문

 

동적 SQL

다양한 조건에 따라 SQL 구문을 동적으로 변경하여 처리할 수 있는 SQL문

 

서버 개발

웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것

 

프레임워크의 특징

모듈화 : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질 향상

재사용성 : 재사용 가능한 모듈들을 제공함으로써 개발자의 생산성 향상

확장성 : 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능하다.

제어의 역흐름 : 개발자가 관리하고 통제해야 하는 객체들의 제어 권한을 프레임워크에 넘김으로써 생산성 향상

 

서버 개발 과정

DTO : 데이터 교환을 위해 사용할 객체를 만드는 과정

SQL 구현 : 데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문 생성

DAO 구현 : 데이터베이스에 접근하고 SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정

Service 구현 : 사용자의 요청에 응답하기 위한 로직을 구현하는 과정

Controller 구현 : 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정

 

배치 프로그램

사용자와의 상호작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것

정기 배치, 이벤트성 배치, On-Demand 배치

 

배치 프로그램의 필수 요소

대용량 데이터

자동화

견고성

안정성/신뢰성

성능

 

배치 프로그램 스케줄러

Spring Batch, Quartz, Cron

728x90
반응형