방구석 상상코딩

31. 기본 개발환경 구축하기 본문

정보처리기사 실기

31. 기본 개발환경 구축하기

구석탱 2022. 2. 10. 18:32

운영체제 선택

1. 윈도즈 계열 운영체제

  • Windows Home : 개인 사용자에게 최적화된 운영체제
  • Windows Pro : 소규모 기업용으로 최적화된 운영체제
  • Windows Pro for Workstation : 트랜젝션이 몰리거나 복구 기능을 필요로 하는 소규모 기업용 운영체제

2. 리눅스 계열 운영체제

  • 데비안 계열
    - Debian GNU / Linux : 개발자 패키지와 매뉴얼이 활성화되어 있어 개발자에게 최적화되어 있음
    - Ubunto : 가장 광범위하게 쓰이는 Linux 운영체제로 다양한 개발자용 패키지 제공
  • Redhat 계열
    - Fedora : 스마트 설정과 업데이트로 사용자 편의성 제공, 안정화된 운영과 다양한 하드웨어 지원
    - CentOS : 프로그래밍에 최적화된 환경 제공
  • 기타
    - openSUSE : 안정화된 버전과 테스트 중인 버전을 동시에 공급, YaST 패키지를 통해 태스크 자동화 지원
    - Slackware : 다양한 소프트웨어와 그래픽 유저 인터페이스가 미리 설치, 시스템 관리자를 위한 복구 툴 내장

운영체제 운용 기준

구분 기준
서버 운영체제
운용 기준
- 운용 아키텍처 및 기능 파악
- 네트워크 구성 현황 및 장비 메뉴얼 확보
- 장비 가동 및 중지 메뉴얼 확인
- 백업 주기, 보안 업데이트 주기 설정 및 점검
- 트러블 발생 시 대처 방안 마련
개별 PC용 운영체제
운용 기준
- 정기적인 데이터 백업
- 주기적 보안 업데이트
- 시스템 백업 정례화
- 트러블 발생 시 문의처 정보 확인

개발 지원 도구

  • 요구사항 관리 : 프로젝트 수행 시 정확한 요구사항 정의, 요구사항 관리
  • 설계 : ERD를 통한 자동화된 데이터 모델링, UML 자동 생성
  • 구현 : 개발자의 소프트웨어 구현 시 개발자 편의성 고려
  • 테스트 : 지속적 통합 기반, 자동 테스트 수행
  • 빌드 : 소프트웨어 빌드 자동화, 스크립트를 통한 빌드 자동화 과정
  • 형상 관리 : 개발 산출물 관리, 변경 통제
  • 품질 관리 : 설계품질의 측정을 통해 패키지를 효과적으로 분석하고 관리
  • 이슈 관리 : 프로젝트를 진행하면서 발생하는 문제를 시스템에 등록하여 관리하는 시스템
  • 프로젝트 관리 : 일정 관리를 위한 간트 차트, 네트워크 다이어그램, WBS 등 제공

개발환경 인프라 구성 방식

1. 온프레미스 (On-Premise) 방식

외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식

 

2. 클라우드 (Cloud) 방식

아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식

구분 설명
컴퓨팅 환경 - 프로그램을 설치하고 운용할 하드웨어 장비를 세팅
- 웹 기반 서비스 운용을 위한 웹 서버
- 데이터 관리와 백업 등을 위한 DBMS 서버
스토리지 - 대규모 데이터를 저장, 관리, 전송, 이중화하기 위한 저장 장치 세팅
- 클라우드 기반 스토리지 세팅
- 데이터 안정성 향상을 위한 아카이브 스토리지 세팅
- 페타/엑사 바이트 단위 전송이 가능한 전송 스토리지 세팅
데이터베이스 - 실데이터를 저장하고 관리하기 위한 데이터베이스 세팅
- 고성능 관계형 데이터베이스 세팅
- 인메모리 데이터베이스 세팅
- 대규모 데이터 운영을 위한 웨어하우징 세팅
- 그래픽, 음성 등 멀티미디어 데이터 처리를 위한 환경 세팅
네트워킹 전송 - 구성된 서비스, 프로그램, 콘텐츠를 효율적으로 전달하기 위한 환경 세팅
- 콘텐츠 전송용 CDN 구축
- API 제공용 환경 구축
- 대규모 로드 밸런싱 환경 구축
개발자 도구 - 프로그램을 실제 개발하기 위한 제반 환경 구축
- 애플리케이션 개빌 및 배포환경 구축
- 소스 코드를 손실 없이 관리하기 위한 저장소 구축
- 코드 개발, 테스트를 위한 환경 구축
- 코드 자동 배포, 형상 관리를 위한 환경 구축
보안 환경 구축 - 외부의 침입으로부터 시스템과 데이터를 보호하기 위한 환경 구축
- 사용자 액세스 및 암호화 관리
- 앱 자격 증명 환경 구축
- 각종 인증서 프로비저닝, 관리 및 배포
- 악성 트래픽 필터링 서비스 관리
- 해킹 공격 (DDoS 등)으로부터의 방어 환경 구축
응용 기술 세팅 - 증강 현실, 가상현실 개발을 위한 환경 세팅
- 머신러닝, 딥러닝 등 AI 개발환경을 위한 환경 세팅
- 사물 인터넷, 게임 등 개발을 위한 환경 세팅
생산성 향상 - 시스템 볼륨 자동 확장 환경 구축
- 실시간 스트리밍 서비스 환경 구축
- 비즈니스, 운영 상태 분석 서비스 구축

 

3. 하이브리드 (Hybrid) 방식

온프레미스와 클라우드 방식을 혼용하는 방식