개발 환경 구축 개념
응용 소프트웨어 개발 편의성, 개발 성능 향상위해 하드웨어 및 소프트웨어 개발 환경 구축하는 과정
개발 도구 분류
빌구테형 빌드 도구/구현 도구/테스트 도구/형상 관리 도구
| 빌드 도구 | • 작성한 코드의 빌드 및 배포 수행 • 각각 구성요소/모듈에 대한 의존성 관리 지원 | • Ant • Maven • Gradle | | --- | --- | --- | | 구현 도구 | • 개발자의 코드 작성/디버깅/수정 같은 작업 지원 • 개발 시 가장 많이 사용 | • Eclipse • IntelliJ • Spring Tool Suite • NetBeans • Visual Studio | | 테스트 도구 | • 코드 기능 검증, 전체 품질 높이기 위해 사용 • 코드 테스트, 테스트 계획, 수행, 분석 등의 작업 | • xUnit • PMD Findbugs • Cppcheck • Sonar | | 형상 관리 도구 | • 코드/리소스 등 산출물에 대한 버전 관리 • 프로젝트 진행 시 필수 포함 | • CVC • Subversion • Git |
개발 환경 구성 요소
하드웨어 개발 환경/소프트웨어 개발 환경
서버 HW 개발 환경
| 웹 서버 | 웹 브라우저 요청을 받아 HTTP 통해 HTML 문서나 오브젝트 전송해주는 서버 |
|---|---|
| 웹 애플리케이션 서버 | |
| (WAS) | 동적 서비스 제공 위해 웹 서버로부터 요청받아 데이터 처리 수행하거나, 웹서버-DB 서버 또는 웹서버-파일 서버 사이에서 인터페이스 역할 |
| DB 서버 | 데이터베이스와 이를 관리하는 DBMS 운영하는 서버 |
| 파일 서버 | 파일 저장 하드웨어로 물리 저장 장치 활용한 서버 |
클라이언트 HW 개발 환경
| 클라이언트
| 프로그램 | 설치 통해 사용자와 커뮤니케이션 |
|---|---|
| 웹 브라우저 | 웹 서비스 형태로 서버에서 웹 애플리케이션 응답 시 브라우저 통해 사용자와 커뮤니케이션 |
| 모바일 앱 | 모바일 디바이스에 설치되어 활용 |
| 모바일 웹 | 웹 브라우저와 동일한 형태로 브라우저 통해 서비스 제공 |
SW 개발 환경
| 운영 체제(OS) | 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 SW |
|---|---|
| 미들 웨어 | 컴퓨터-컴퓨터 간 연결을 쉽고 안전하게 하고 관리 도와주는 SW |
| DBMS | 사용자-DB 사이에서 요구에 따라 정보 생성해주고 DB 관리 |
형상 관리 [2020 2회 기출] ❣️
SW 개발 위한 전체 과정에서 발생하는 모든 항목의 변경 사항 관리하기 위한 활동(CVS, SVN, Git)
형상 관리 도구의 기능
| Check-in | 개발자가 수정한 소스 형상 관리 저장소로 업로드하는 기능 |
|---|---|
| Check-out | 형상관리 저장소로부터 최신 버전을 개바라자 PC로 다운로드 받는 기능 |
| Commit | 개발자가 소스를 형상 관리 저장소에 업로드 후 최종적으로 업데이트 되었을 때 형상 관리 서버에서 반영하도록 하는 기능 |
형상 관리 절차 [2020 3회 기출]
식통감기 형상 식별/형상 통제/형상 감사/형상 기록
| 형상 식별 | • 형상 관리 대상 정의 및 식별 • 추적성 부여 위해 ID/관리 번호 부여 | | --- | --- | | 형상 통제 | • 형상 항목 버전 관리 위한 형상 통제 위원회 운영 • 변경 요구 관리, 변경 제어, 형상 관리 등 통제 지원 | | 형상 감사 | • SW 베이스라인 무결성 평가 • 베이스라인 변경 시 요구사항과 일치 여부 검토 | | 형상 기록 | • SW 형상 및 변경 관리에 대한 각종 수행 결과 기록 • 형상 결과 보고서 작성 |
베이스 라인(Baseline)❣️
개발 과정의 각 단계 사출물을 검토, 평가, 조정, 처리 등 변화 통제하는 시점의 기준
소프트웨어 형상 관리 도구 유형❣️
공클분
| 공유 폴더 방식 | • 매번 완료된 파일은 정해진 위치와 공유 폴더에 복사 • 전문 담당자가 정상 실행 확인 • RCS: 소스 파일 수정 한사람으로 제한(잠금 방식 제어) | | --- | --- | | 클라이언트 서버 방식 | • 중앙에서 관리하는 버전 관리 시스템이 항상 작동 • 개발자들의 현재/이전 작업 내용 저장 용이 • 서로 다른 개발자가 같은 파일 작업 시 경고 출력 • Trac/CVS View와 같은 GUI 툴로 모니터링 | | 분산 저장소 방식 | • 컴퓨터/원격 저장소로 구분 • 중앙 저장소에 존재하는 파일 복사되면 원격 저장소에 있던 파일 지워지고 복사된 컴퓨터에만 존재 • 개발 완료 파일을 본인 컴퓨터 저장소에 commit하고 다시 원격 저장소에 반영 • Bitkeeper/SVN: 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도로 개발 • Clear Case: 여러 개 서버, 클라이언트를 두어 서버 부족 시 추가하여 사용하므로 확장성 좋음 |