반응형
개발 환경 구축
- 서버 환경 구축
- 웹 서버(WEB)
- 클라이언트에게 정적 파일(HTML, CSS, JS, Image)을 제공하는 웹 서버 애플리케이션이 설치된 하드웨어
- Apache Web Server, IIS, Nginx, GWS 등
- 웹 어플리케이션 서버(WAS)
- 동적인 웹 서비스를 제공하기 위한 미들웨어로 설치된 하드웨어
- WebLogin, WebSpere, Jeus, Tomcat 등
- 데이터베이스 서버(DBMS)
- 데이터의 저장과 관리를 위한 데이터베이스 소프트웨어가 설치된 하드웨어
- Oracle, MySQL, MS-SQL 등
- 파일서버
- 사용자의 파일을 저장하고, 파일을 목적으로 구성된 하드웨어
- Load Balancer
- L4 switch
- 여기서 OSI7계층에서 사용되는 Layer 확인
- L2: 집선으로 컴퓨터를 연결
- L3: Router
- L4: Load Balancer, 배분
- L7: 보안 기능
- 여기서 OSI7계층에서 사용되는 Layer 확인
- 여러 대의 서버가 존재할 경우 요청을 적절히 분배해주는 역할
- 분배 방식
- Random: 무작위
- Least Loaded: 가장 적은 양의 작업을 처리하고 있는 서버에게 요청을 할당
- Round Robin: 순서를 정해 돌아가며 작업 분배
- L4 switch
- CDN(Content Delivery Network)
- 용량이 큰 콘텐츠 데이터(이미지, 비디오 등)를 빠른 속도로 제공하기 위해 사용자와 가까운 곳에 분산되어 있는 데이터 저장 서버
- 웹 서버(WEB)
- 개발 소프트웨어 환경
- 시스템 소프트웨어
- 운영체제(OS, Operating System)
- 하드웨어 운영을 위한 운영체제
- Windows, Linux, UNIX 등의 환경으로 구성됨
- JVM(Java Virtual Machine)
- Java 관련 프로그램을 기동하기 위한 환경
- 모든 개발자가 동일한 버전을 적용하는 것이 좋다.
- Web Server
- 정적 웹 서비스를 수행하는 미들웨어
- 웹 브라우저 화면에서 요청하는 정적 파일을 제공한다.
- Apache, IIS, Nginx, GWS 등
- WAS
- 동적 웹 서비스를 수행하는 미들웨어
- WebLogic, Tomcat, Jeus, WebSpere 등
- DBMS
- 데이터 저장과 관리를 위한 데이터베이스
- Oracle, MySQL, MS-SQL 등
- 운영체제(OS, Operating System)
- 개발 소프트웨어
- 요구사항 관리 도구
- 고객의 요구사항을 수집, 분석, 추적을 쉽게 할 수 있도록 지원한다.
- 설계/모델링 도구
- 기능을 논리적으로 표현할 수 있는 통합 모델링 언어(UML) 지원
- 그림 그리는 도구
- 구현도구
- 소프트웨어 언어를 통해 구현 및 개발을 지원하는 도구
- 실제 개발하는 도구
- VSCode, IntelliJ 등
- 테스트 도구
- 개발된 모듈들에 대하여 요구사항에 적합하게 구현되어 있는지 테스트를 지원하는 도구
- JUnit(Java 테스트 도구), CppUnit, JMeter, SpringTest 등
- 형상관리 도구
- 산출물 및 소스코드의 변경사항을 버전별로 관리하여, 목표 시스템의 품질 향상을 지원하는 도구
- Git, CVS, SVM 등
- 요구사항 관리 도구
- 시스템 소프트웨어
- 협업 도구
- 협엽 도구의 개념
- 여러 사용자가 각기 별개의 작업 환경에서 통합된 하나의 프로젝트를 동시에 수행할 수 있도록 도와주는 소프트웨어
- 협업 도구 도입 프로세스
- 문제정의
- 문제에 대한 솔루션, 기대효과 정의
- 협업 도구 분석
- 협업 도구 최종 선정
- 협엽 도구의 개념
- 형상 관리 도구
- 형상 관리 도구의 개념
- 소프트웨어 생명주기 동안 발생하는 변경사항을 통제하기 위한 관리 방법
- 소프트웨어의 변경사항을 체계적으로 관리하는 것
- 관리 종류
- 변경 관리: 소스의 변경 사항을 관리
- 버전 관리: 체크인, 체크아웃, 릴리즈, 퍼블리싱의 과정을 버전을 관리할 수 있다.
- 형상 관리: 변경 관리 + 버전 관리 및 프로젝트 진행 상황, 빌드, 릴리즈까지 모두 관리
- 형상 관리 절차
- 형상 식별
- 형상 관리를 시작으로 시스템을 구성하는 요소들 중 형상 관리의 대상들을 구분하고 관리 목록의 번호를 정의하여 부여
- 형상 통제
- 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스라인에 반영될 수 있도록 통제
- 형상통제가 이루어지기 위해서는 CCB(형상 통제 위원회)의 승인을 통한 변경 통제가 이루어져야 한다.
- 형상 감사
- 형상 항목의 변경이 계획에 따라 제대로 이뤄졌는지를 검토하고 승인
- 형상 기록
- 베이스라인 산출물에 대한 변경과 처리과정에서의 변경을 모두 기록
- 형상 식별
- 여기서 잠시 여러 팀 종류
- CCB: 형상 통제 위원회
- Chief Programmer Team: 책임 프로그램 팀
- Cert: 보안 관제의 위기에 대응하기 위한 팀
- 형상 관리 도구의 개념
- 버전 관리 도구
- 소프트웨어 버전 관리 도구 개념
- 동일한 소스코드에 대한 여러 버전을 관리하는 것
- 도구 유형
- 공유 폴더 방식
- 개발이 완료된 파일을 매일 약속된 위치의 공유 폴더에 복사
- RCS, SCCS
- 클라이언트, 서버 방식
- 중아에 버전 관리 시스템이 항시 동작
- CSV,SVN
- 분산 저장소 방식
- 로컬 저장소와 원격 저장소 구조
- Git, Bitkeeper
- 공유 폴더 방식
- 소프트웨어 버전 관리 도구 개념
- 빌드 도구
- 빌드의 개념
- 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정
- 빌드 자동화 도구 특징
- 빌드, 테스트, 배포를 자동으로 수행하는 도구
- 빌드 자동화 프로세스
- 개발자 → commit → 형상 관리 서버 (CI, 지속적인 통합)
- 형상 관리 서버 → Polling → CI 서버
- CI 서버 → Checkout → 빌드 스크립트(설명서)
- CI 서버 → 테스트 & 실 서버 (배포)
- 빌드 자동화 도구 종류
- Make: 유닉스 계열 운영체제에서 주로 사용
- Ant: Java 기반의 빌드 도구로 오랜 역사가 있다.
- Maven: 프로젝트에 필요한 모든 의존성을 리스트 형태로 Maven에게 알려 관리할 수 있도록 돕는 방식
- Jenkins
- Java 기반의 오픈소스로, 소프트웨어 개발 시 지속적 통합 서비스를 제공
- SVN, Git 등 대부분의 형상 관리 도구와의 연동 가능
- Gradle
- Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로 안드로이드 앱 개발 환경에서 사용
- 빌드의 개념
- 프레임워크
- 프레임워크의 개념
- 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 바네품 형태의 소프트웨어
- 프레임워크의 특징
- 모듈화
- 제어의 역흐름
- 확장성
- 재사용성
- 프레임워크의 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 구축 (5) (0) | 2023.07.05 |
---|---|
[정보처리기사] 소프트웨어 구축 (4) (0) | 2023.07.05 |
[정보처리기사] 소프트웨어 구축 (2) (0) | 2023.07.04 |
[정보처리기사] 소프트웨어 구축 (1) (0) | 2023.07.04 |
[정보처리기사] 프로그램 언어 특성 (0) | 2023.07.03 |