카테고리 없음

[정처기] 실기요약 - 8-1. 개발환경 구축

검이 2024. 1. 8. 21:00

5. 인터페이스 구현

Chapter 01  인터페이스 설계 확인
Chapter 02  인터페이스 기능 구현
Chapter 03  인터페이스 구현 검증

6. 프로그래밍 언어 활용

Chapter 01  프로그래밍을 위한 기본 사항
Chapter 02  C언어
Chapter 03  자바
Chapter 04  파이썬

7. SQL 응용

Chapter 01  데이터베이스 기본
Chapter 02  응용 SQL 작성하기
Chapter 03  SQL 활용 및 최적화

8. 서버 프로그램 구현

Chapter 01  개발환경 구축
Chapter 02  공통 모듈 구현
Chapter 03  배치 프로그램 구현

9. 소프트웨어 개발 보안 구축

Chapter 01  소프트웨어 개발 보안 설계
Chapter 02  소프트웨어 개발 보안 구현


개발 도구의 분류

구현도구 / 테스트도구 / 형상관리 도구 / 빌드도구

빌드 도구
- 작성한 코드의 빌드 및 배포를 수행
- 각 구성요소와 모듈에 대한 의존성 관리 지원

구현 도구
- 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원
- 프로그램을 개발할 때 가장 많이 사용

테스트 도구 
- 코드의 기능 검증과 전체의 품질을 높이기 위해 사용
- 코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 가능

형상 관리 도구
- 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전관리를 위한 도구
- 프로젝트 진행 시 필수로 포함


개발환경 구성요소

하드웨어 개발환경 / 소프트웨어 개발환경 / 형상관리

서버 하드웨어 개발환경

웹서버
- HTTP를 이용한 요청/응답 처리
- 웹 상의 정적 콘텐츠(CSS, javascript, image) 처리
- WEB-WAS-DB의 3계층 구조를 실무에서 활용
- 주요 제품으로 apache 웹서버, IIS 웹 서버, Google Web Server, Nginx 등 존재

웹 어플리케이션 서버
- 동적 컨텐츠를 처리하기 위해 사용
- 주요 제품으로 Tomcat, Weblogic, Jeus, Resin 존재

데이터베이스 서버
- 데이터의 수집, 저장을 위한 용도로 사용
- 연계되는 주요 DBMS로 Mysql, Oracle, MS-SQL, DB2 등 존재

파일 서버
- 파일 저장 하드웨어로 물리 저장 장치를 활용한 서버
- 대용량 HDD, SDD 등 장치가 존재


클라이언트 하드웨어 개발환경

- 서버 개발환경에서 제공된 서비스를 사용하기 위해 UI를 제공한다
- 클라이언트 프로그램, 웹 브라우저, 모바일 앱, 모바일 웹으로 구분

클라이언트 프로그램
- 설치를  통해 사용자와 커뮤니케이션하는 프로그램
- Visual Basic, C#, Delphi 등으로 개발되어 사용

웹 브라우저
- 웹 서비스의 형태로 서버에서 웹 애플리케이션을 응답 시 브라우저를 통해 사용자와 커뮤니케이션
- 일반적인 형태의 웹 사이트가 해당

모바일 앱
- 모바일 디바이스에 설치되어 활용되는 애플리케이션
- 앱 스토어, 안드로이드 마켓 등을 통해 다운로드

모바일 웹
- 웹 브라우저와 동일한 형태로 모바일 상 웹 브라우저를 통해 서비스를 제공
- 모바일에 최적화 되어 제공되는 웹사이트가 해당


소프트웨어 개발환경

운영체제
- 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
- 프로젝트의 성격에 따른 운영체제 사용

미들웨어
- 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어
- 자바 기반 환경에서 JVM을 설치하여 컨테이너로의 기능을 주로 이용

DBMS
- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
- 데이터의 저장 및 활용을 위해 DBMS를 설치


형상관리의 절차

형상 식별 / 형상 통제 / 형상 감사 / 형상 기록

형상 식별
- 형상 관리 대상을 정의 및 식별하는 활동
- 추적성 부여를 위해 ID와 관리번호를 부여
- 변경 관련 이슈 발생 시 ID와 관리번호를 이용하여 추적

형상 통제
- 형상 항목의 버전 관리를 위한 형상통제위원회 운영
- 변경요구 관리, 변경제어, 형상 관리 등 통제 지원
- 베이스라인에 대한 관리 및 형상 통제 수행 가능

형상 감사
- 소프트웨어 베이스라인의 무결성 평가
- 베이스라인 변경 시 요구사항과 일치 여부 검토

형상 기록
- 소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록
- 형상결과 보고서 작성


소프트웨어 형상관리 도구 유형

공유 폴더 방식 / 클라이언트, 서버 방식 / 분산 저장소 방식

공유 폴더 방식
- RCS, SCCS
- 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사
- 담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사하고 컴파일 하여 에러 확인과 정상 동작 여부 확인
- 정상 동작일 경우 다음날 각 개발자들이 동작 여부 확인

클라이언트, 서버 방식
- CVS, SVN
- 중앙에 버전 관리 시스템을 항시 동작시키는 방식
- 개발자들의 현재 작업 내용과 이전 작업내용 추적에 용이
- 서로 다른 개발자가 같은 파일을 작업했을 때 경고 메시지 출력

분산 저장소 방식
- Git
- 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 방식
- 중앙의 저장소에서 로컬 파일을 복사한 순간 개발자만의 로컬 저장소에 생성
- 개발 완료한 파일을 수정한 다음에 로컬 저장소에 우선적으로 커밋한 이후, 다시 원격 저장소에 반영하는 방식


소프트웨어 형상관리 도구 특징

CVS
- 서버와 클라이언트로 구성
- 다수의 인원이 동시에 범용적인 운영체제로 접근 가능한 형상 관리 도구

SVN
- 하나의 서버에서 소스를 쉽고 유용하게 관리
- 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 도구

RCS
- CVS와 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상을 관리

Bitkeeper
- SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 형상관리도구

Git
- Git의 속도에 중점을 둔 분산형 버전관리 시스템
- 대형 프로젝트에서 효과적이고 유용
- Git의 커밋 동작은 로컬 저장소에서 이루어지고, 푸시라는 동작으로 원격저장소에 반영
- 로컬 저장소에서 작업이 이루어져 매우 빠른 응답을 받을 수 있음
- Git의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소

Clear Case
- 복수 서버, 복수 클라이언트 구조
- 서버가 부족할 때 필요한 서버를 추가하여 확장성을 기할 수 있음