개발환경 구축
IT 위키
더 많은 작업
- Development Environment Setup
- 응용 소프트웨어 개발에 필요한 하드웨어와 소프트웨어를 선정·설치하고 개발 프로젝트를 이해하는 활동
개발환경은 크게 하드웨어 환경과 소프트웨어 환경으로 나눈다. 시스템 요구사항과 현행 시스템 분석 결과를 바탕으로 목표 시스템의 운영 환경과 같거나 비슷하게 구성한다.
- 시스템 소프트웨어: 운영체제, 웹 서버·WAS 운용 소프트웨어, DBMS
- 개발 소프트웨어: 아래 도구들
| 도구 | 설명 | 예 |
|---|---|---|
| 요구사항 관리 도구 | 요구사항 수집·분석·추적 | JFeature, JRequire |
| 설계/모델링 도구 | UML 등으로 설계와 모델링을 지원 | StarUML, ArgoUML, DB Designer |
| 구현 도구 | 코드 작성·디버깅·컴파일을 지원하는 IDE | Eclipse, IntelliJ IDEA, Visual Studio |
| 테스트 도구 | 모듈·통합 테스트와 성능 측정 | JUnit, CppUnit, JMeter |
| 형상 관리 도구 | 산출물과 소스 코드의 버전 관리 | Git, Subversion, CVS |
| 빌드 도구 | 소스 코드를 실행 가능한 산출물로 컴파일·패키징 | Ant, Maven, Gradle, Jenkins |
- 적정성: 개발하려는 소프트웨어 목적에 적합한가
- 효율성: 코드가 효율적으로 실행되는가
- 이식성: 여러 운영체제·환경에서 쉽게 쓸 수 있는가
- 친밀성: 개발자가 이해하고 활용할 수 있는가
- 범용성: 다른 개발 사례에서도 널리 쓰이는가
서버 개발은 웹 애플리케이션을 구현하는 작업이며, 보통 프레임워크 위에서 진행한다. 프레임워크는 공통 기능을 미리 구현해 두어 개발 생산성과 품질을 높인다.
| 프레임워크 | 언어 | 비고 |
|---|---|---|
| Spring | Java | 전자정부 표준프레임워크의 기반 |
| Node.js (Express) | JavaScript | 비동기 이벤트 기반 |
| Django | Python | 관리자 기능 기본 제공 |
| CodeIgniter | PHP | 경량 프레임워크 |
| Ruby on Rails | Ruby | 관례에 따른 설정 |
- 프레임워크의 특성: 모듈화, 재사용성, 확장성, 제어의 역흐름(IoC: 객체 흐름을 개발자가 아니라 프레임워크가 관리)
- 선정 시 고려 사항: 지원 언어와 개발팀 역량, 운영 환경과의 호환성, 커뮤니티·기술 지원, 라이선스, 공공 사업의 경우 전자정부 표준프레임워크 적용 여부
- 필기: 개발 소프트웨어 도구의 분류(요구사항 관리, 설계/모델링, 구현, 테스트, 형상 관리, 빌드)와 예시 도구를 짝짓는 문제
- 필기: 웹 서버와 WAS, DB 서버의 역할 구분
- 프레임워크의 특성(모듈화, 재사용성, 확장성, 제어의 역흐름)과 전자정부 표준프레임워크