1. 개발 환경 구축
- 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구죽하는 것
- 운영될 환경과 유사한 구조로 구축
- 분석 단계의 산출물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어 선정
- 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품들을 최종적으로 결정하여 구축
1) 하드웨어 환경
- 사용자와의 인터페이스 역할을 하는 클라이언트(Client), 클라이언트와 통신하여 서비스를 제공하는 서버(Server)로 구성
- 클라이언트에는 PC, 스마트폰 등
- 서버는 사용 목적에 따라 웹서버, 웹 애플리케이션, 데이터베이스 서버, 파일 서버 등으로 나뉨
- 웹 서버(Web Server)
- 클라이언트로부터 직접 요청을 받아 처리하는 서버
- 저용량의 정적 파일 제공
- ex) Apache HTTP Server, Microsoft Internet Information Service, Google Web Server
- 웹 애플리케이션 서버(WAS; Web Application Server)
- 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 아이에서 인터페이스 역할을 수행하는 서버
- ex) Apache Tomcat, IBM WebSphere, Oracle WebLogic
- 데이터베이스 서버(DB Server)
- 데이터베이스와 이를 관리하는 DBMS를 운영하는 서버
- MySQL Server, Oracle Server, Microsoft SQL Server
- 파일 서버(File Server)
- 데이터베이스에 저장하기에 비효율적이나 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버
- ex) AWS S3
- 웹 서버(Web Server)
💡 웹 서버의 기능
| 기능 | 설명 |
| HTTP/HTTPS 지원 | 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 |
| 통신 기록 (Communication Log) |
처리한 요청등을 로그 파일로 기록하는 기능 |
| 정적 파일 관리 (Managing Static Files) |
HTML, CSS, 이미지 등의 정적 파일들을 저장하고 관리하는 기능 |
| 대역폭 제한 (Bandwidth Throtting) |
네트워크 트래픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 |
| 가상 호스팅 (Virtual Hosting) |
하나의 서버로 여러 개의 도메인 이름을 연결하는 기능 |
| 인증 (Authentication) |
사용자가 합법적인 사용자인지를 확인하는 기능 |
2) 소프트웨어 환경
- 클라이언트와 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성
- 시스템 소프트웨어
- 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS
- 개발 소프트웨어
- 요구사항 관리 도구
- 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어
- ex) JIRA, IBM DOORS, inteGREAT, Reqtify, Trello
- 설계/모델링 도구
- UML(통합 모델링 언어)를 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어
- ex) DB Designer, PlantUML, ArgoUML
- 구현 도구
- 개발 언어를 통해 애플리케이션의 실제 구형을 지원하는 소프트웨어
- ex) Eclipse, IntelliJ IDEA, Visual Studio, Netbeans, Node.js
- 빌드 도구
- 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어
- ex) Ant, Gradle, Maven, Jenkins
- 테스트 도구
- 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어
- CppUnit, JUnit, HttpUnit, NUnit, SpringTest
- 형상관리 도구
- 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어
- ex) GIT, CVS, Subversion, Mercurial
- 요구사항 관리 도구
💡 개발 언어 선정 기준
| 기준 | 설명 |
| 적정성 | 개발하려는 소프트웨어의 목적에 적합해야 함 |
| 효율성 | 코드의 작성 및 구현이 효율적이어야 함 |
| 이식성 | 다양한 시스템 및 환경에 적용이 가능해야 함 |
| 친밀성 | 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함 |
| 범용성 | 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함 |
2. 서버 개발
- 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것을 의미
- WAS에 구현된 서버 프로그램은 웹 서버로부터 받은 요청을 처리하여 결과를 반환하는 역할을 수행
- Java, JS, Python, PHP, Ruby 등
- 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크가 존재
1) 서버 개발 프레임워크
- 개발 시 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어
- Spring
- JAVA를 기반으로 만들어진 프레임워크
- 전자정부 표준 프레임워크의 기반 기술로 사용
- Node.js
- JavaScript를 기반으로 만들어진 프레임워크
- 비동기 입 · 출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있음
- 실시간 입 · 출력이 빈번한 애플리케이션에 적합
- Django
- Python을 기반으로 만들어진 프레임워크
- 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원
- Codeigniter
- PHP를 기반으로 반들어진 프레임워크
- 인터페이스가 간편하며 서버 자원을 적게 사용
- Ruby on Rails
- Ruby 기반으로 만들어진 프레임워크
- 테스트를 위한 웹 서버를 지원
- 데이터베이스 작업 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발 가능
2) 서버 프로그램 구현
- 모듈 및 공통 모듈을 개발한 후, 모듈들을 통합하는 방식으로 구현
- 모듈 개발 시 기능적 독립성을 고려하여 다른 모듈과의 과도한 상호작용을 배제함으로써 특정 모듈의 수정이 다른 모듈들에게 영향을 미치지 않아야 함
- 모듈의 독립성을 높이려면 모듈의 결합도를 약하게, 응집도는 강하게 하여 모듈의 크기를 작게 만들어야 함
- 공통 모듈은 재상용할 수 있는 모듈을 의미
- 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들
📖 Reference
2023 시나공 정보처리기사 필기 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
728x90
반응형
'Certificate > 정보처리기사' 카테고리의 다른 글
| [4과목 프로그래밍 언어 활용] 서버 프로그램 구현 - 130. ⭐ 배치 프로그램 (0) | 2025.11.20 |
|---|---|
| [4과목 프로그래밍 언어 활용] 서버 프로그램 구현 - 129. 보안 및 API (0) | 2025.11.20 |
| [3과목 데이터베이스 구축] 데이터 전환 - 124. 데이터 검증 ~ 126. 데이터 정제요청서 및 정제보고서 (1) | 2025.11.20 |
| [3과목 데이터베이스 구축] 데이터 전환 - 121. 데이터 전환 ~ 123. 데이터 전환 방안 (0) | 2025.11.19 |
| [3과목 데이터베이스 구축] SQL 활용 - 120. 쿼리 성능 최적화 (0) | 2025.11.19 |