2020. 10. 12. 21:37ㆍ컴퓨터언어
개발 환경 구축
응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것
하드웨어 환경
사용자와의 인터페이스 역할을 하는 클라이언트 + 클라이언트와 통신하여 서비스를 제공하는 서버
웹서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버
소프트웨어 환경
클라이언트와 서버 운영을 위한 시스템 소프트웨어 + 개발에 사용되는 개발 소프트웨어
시스템 소프트웨어
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
'컴퓨터언어' 카테고리의 다른 글
정보처리기사 실기 - 필기 2과목 보완 %인터페이스% (0) | 2020.10.15 |
---|---|
정보처리기사 실기 - 필기시험 내용 보완 (0) | 2020.10.14 |
정보처리기사 실기 공부 - 통합구현 보완 (0) | 2020.10.12 |
정보처리기사 실기 공부 - 데이터 입출력 구현 보완 (0) | 2020.10.12 |
정보처리기사 실기 공부 - 다이어그램 보완 (0) | 2020.10.12 |