자격증/정보처리기사

127~128. 개발 환경 구축, 서버 개발(C)

환성 2023. 2. 4. 22:28
728x90

하드웨어 환경

  • 사용자와 인터페이스 역할을 하는 클라이언트, 클라이언트와 통신하여 서비스 제공하는 서버로 나뉨
  • 클라이언트 : PC, 스마트폰  
  • 서버 : 웹 서버, 웹 애플리케이션 서버(WAS), 데이터베이스 서버, 파일 서버
  • 웹 서버 : 클라이언트로부터 직접 요청을 받아 처리하는 서버, 정적 파일 제공(Apache HTTP Server, Google Web Server)
  • 웹 애플리케이션 서버 : 사용자에게 동적 서비스 제공, 웹-데이터베이스, 웹-파일 서버 간 인터페이스 역할 (Apache Tomcat, WebSphere)
  • 데이터베이스 서버 : 데이터베이스 관리, DBMS 운영(MySQL Server, Oracle Server)
  • 파일 서버 : 서비스 제공을 목적으로 파일 저장하는 서버 (AWS 83)

 

소프트웨어 환경

  • 클라이언트와 서버 운영을 위한 시스템 소프트웨어, 개발에 사용되는 개발 소프트웨어로 나뉨
  • 시스템 소프트웨어 : OS, 웹 서버 및 WAS 운영을 위한 서버 프로그램, DBMS
  • 개발 소프트웨어 : 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구, 테스트 도구, 형상 관리 도구
  • 요구사항 관리 도구 : 요구사항 수집 분석, 추적(JIRA, IBM DOORS, Reqtify_
  • 설계/모델링 도구 : UML을 지원, 개발에서 설계 및 모델링을 도와줌(DB Designer, PlantUML)
  • 구현 도구 : 애플리케이션의 실제 구현 지원 SW(Eclipse, IntelliJ IDEA, Visual Studio) 
  • 빌드 도구 :  구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리 지원 SW(Ant, Gradle, Maven, Jenkins)
  • 테스트 도구 : 테스트하는 SW(CppUnit, JUnit, NUnit)
  • 형상 관리 도구 : 버전별로 관리하여 품질 향상을 지원 SW(GIT, CVS, Subversion)

 

서버 개발

  • 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재
  • 각 프로그래밍 언어에는 서버 프로그램 개발을 위한 프레임워크가 존재

 

서버 개발 프레임워크

  • 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스, 인터페이스 제공 SW
  • 대부분 MVC 패턴을 기반으로 개발
  • Spring(JAVA 기반, 전자정부 표준 프레임워크의 기반 기술), Node.js(JavaScript 기반, 실시간 입출력에 사용), Django(Python 기반)

 

서버 프로그램 구현

  • 응용 소프트웨어와 동일하게 모듈 및 공통 모듈 개발 후, 모듈을 통합하는 방식
  • 결합도 약하게, 응집도 높게
  • 공통 모듈(재사용 할 수 있는 모듈), 자주 사용하는 계산식, 사용자 인증에 사용