728x90
반응형
(1) 개발 환경 구축
- 개발 환경 구축
응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것.
개발 환경은 응용 소프트웨어가 운영될 환경과 유사한 구조로 구축하며, 분석 단계의 산출물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어를 선정함. - 하드웨어 환경
- 클라이언트(Client)와 서버(Server)로 구성되며, 클라이언트는 사용자의 인터페이스 역할을 하고 서버는 서비스를 제공함.
- 서버의 종류:
- 웹 서버(Web Server): 클라이언트로부터 직접 요청을 받아 처리함. 저용량의 정적 파일들을 제공함.
- 웹 애플리케이션 서버(WAS): 동적 서비스를 제공하거나, 웹 서버와 데이터베이스 서버 사이에서 인터페이스 역할을 수행함.
- 데이터베이스 서버(DB Server): 데이터베이스와 이를 관리하는 DBMS를 운영함.
- 파일 서버(File Server): 비효율적인 데이터를 저장하고 관리함.
- 소프트웨어 환경
- 클라이언트 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성됨.
- 개발 소프트웨어의 종류:
- 요구사항 관리 도구: 요구사항 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어.
- 설계/모델링 도구: UML을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어.
- 구현 도구: 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어.
- 빌드 도구: 구현된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어.
- 테스트 도구: 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어.
- 형상 관리 도구: 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어.
(2) 소프트웨어 아키텍처
- 소프트웨어 아키텍처
소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체.
아키텍처 설계의 기본 원리에는 모듈화, 추상화, 단계적 분해, 정보 은닉이 있음. - 모듈화(Modularity)
소프트웨어의 성능 향상, 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 기능들을 모듈 단위로 나누는 것. - 추상화(Abstraction)
문제의 전체적이고 포괄적인 개념을 설계한 후, 세분화하여 구체화하는 것. - 단계적 분해(Stepwise Refinement)
문제를 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법. - 정보 은닉(Information Hiding)
한 모듈 내부에 포함된 절차와 자료들의 정보를 감추어 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법.
(3) 아키텍처 패턴
- 아키텍처 패턴(Patterns)
소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시하는 전형적인 해결 방식. - 레이어 패턴(Layers Pattern)
시스템을 계층으로 구분하여 구성하는 고전적인 방법. 상위 계층은 하위 계층에 대한 서비스 제공자가 되고, 하위 계층은 상위 계층의 클라이언트가 됨. - 클라이언트-서버 패턴(Client-Server Pattern)
하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴. - 파이프-필터 패턴(Pipe-Filter Pattern)
데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴.
(4) 객체 지향
- 객체 지향
소프트웨어의 각 요소들을 객체(Object)로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법. - 객체(Object)
데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈. - 클래스(Class)
공통된 속성과 연산을 갖는 객체의 집합. - 메시지(Message)
객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구 사항.
(5) 객체 지향 분석 및 설계
- 객체 지향 분석(OOA; Object Oriented Analysis)
사용자의 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 작업. - 객체 지향 분석의 방법론
대표적인 방법론으로는 Rumbaugh(럼바우) 방법, Booch(부치) 방법, Jacobson 방법 등이 있음.
(6) 모듈
- 모듈(Module)
모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브 시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미. - 결합도(Coupling)
모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계. - 응집도(Cohesion)
모듈의 내부 요소들이 서로 연관되어 있는 정도.
(7) 단위 모듈
- 단위 모듈(Unit Module)
소프트웨어 구현에 필요한 여러 동작 중, 한 가지 동작을 수행하는 기능을 모듈로 구현한 것. - IPC(Inter-Process Communication)
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합.
(8) 공통 모듈
- 공통 모듈
여러 프로그램에서 공통으로 사용할 수 있는 모듈로, 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들로 구성됨.
(9) 코드
- 코드(Code)
자료의 분류, 조합, 집계, 추출을 용이하게 하기 위해 사용하는 기호.
(10) 디자인 패턴
- 디자인 패턴(Design Pattern)
모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식.
(11) 개발 지원 도구
- 통합 개발 환경(IDE; Integrated Development Environment)
개발에 필요한 환경을 하나의 인터페이스로 통합하여 제공하는 소프트웨어.
(12) 서버 개발
- 서버 개발
웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것.
728x90
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 6단원. 화면설계 (0) | 2023.07.14 |
---|---|
[정보처리기사] 실기 5단원. 인터페이스 구 (0) | 2023.07.14 |
[정보처리기사] 실기 3단원. 데이터 입출력 구현 (0) | 2023.07.14 |
[정보처리기사] 실기 2단원. 데이터입출력 구현 (0) | 2023.07.14 |
[정보처리기사] 실기 1단원. 요구사항 확인 (0) | 2023.07.06 |