서버프로그램구현 - 핵심정리

서버프로그램구현

1. 개발환경 구축

  • 응용소프트웨어 개발에 필요한 하드웨어 및 소프트웨어의 필요 사항을 검토하고, 이에 따라 개발환경에 필요한 준비를 수행
  • 개발 하드웨어 환경
    • 클라이언트
    • 서버
  • 개발 소프트웨어 환경
    • 시스템소프트웨어
    • 개발 소프트웨어
      • 요구사항 관리 도구
      • 설계/모델링 도구
      • 구현 도구
      • 빌드 도구
      • 테스트 도구
      • 형상 관리 도구

2. 서버 개발 프레임워크

  • 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답처리, 아키텍처 모델 구현등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어

  • 종류

    • Spring
    • Node.js
    • Django
    • Codeigiter
    • Ruby on Rails

서버프로그램구현 - 서버개발프레임워크

서버프로그램구현

Framework 프레임워크의 개념

  • 사전적으로 뼈대, 골조를 의미하며 소프트웨어에서는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모다운 집합체

프레임워크의 특징

  1. Modularity 모듈화
    • 캡슐화를 통해 모듈화를 강화하고 설계와 구현의 변경에 따른 영향을 최소화하여 소프트웨어의 품질을 향상시킴
  2. Reusability 재사용성
    • 재사용 가능한 모듈들을 제공함으로써 개발자의 생산성을 향상시킴
  3. Extensibility 확장성
    • 프레임워크는 다형성을 통해 인터페이스의 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함
  4. Inversion of Control 제어의 흐름
    • 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션의 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 거꾸로 흐르게 함

서버 개발 프레임워크

1. 서버 개발 프레임워크의 개념

  • 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답처리, 아키텍처 모델 구현등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어
  • 서버 개발 프레임워크에 따라 지원하는 프로그래밍 언어가 제한적이므로 선정할 수 있는 프레임워크도 제한적
  • 서버 개발 프레임워크의 대부분은 모델-뷰-컨트롤러MVC패턴을 기반으로 개발됨

2. 서버 개발 프레임워크의 종류

  • Spring
    • JAVA를 기반으로 만들어진 프레임워크로, 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음
  • Node.js
    • JavaScript를 기반으로 만들어진 프레임워크로, 비동기 입,출력 처리와 이벤트 위주의 높은 성능을 갖고 있어 실시간으로 입/출력이 빈번한 애플리케이션
  • Django
    • Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원
  • Ruby on Rails
    • Ruby를 기반으로 만들어진 프레임워크로, 테스트를 위한 웹서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발이 가능

서버프로그램구현 - 개발환경구축

서버프로그램구현

  • 응용소프트웨어 개발에 필요한 하드웨어 및 소프트웨어의 필요 사항을 검토하고, 이에 따라 개발환경에 필요한 준비를 수행
  • 응용소프트웨어 개발에 필요한 하드웨어 및 소프트웨어를 설치하고 설정하여 개발환경을 구축
  • 사전에 수립된 형상관리 방침에 따라 운영 정책에 부합하는 형상관리 환경을 구축

용어사전

  • 구현도구
    • 프로그램을 개발할 때 가장 많이 사용되는 도구로서 코드의 작성 및 편집, 디버깅 등과 같은 다양한 작업이 가능
  • 클라이언트
    • 시스템에서 제공하는 서버를 활용하기 위해 거래를 발생시키는 하드웨어
  • 형상관리
    • 소프트웨어 개발 과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동

개발환경 구축의 개념

  • 해당 프로젝트의 목적과 구축 설계에 대한 명확한 이해가 필요
  • 이에 맞는 하드웨어 소프트웨어 선정이 필요
  • 제품들의 성능과 라이선스 그리고 사용 편의성 등에 대한 내용 파악도 필요

개발 하드웨어 환경

1. Client 클라이언트 환경 구성

  • 서버 시스템에서 제공하는 서비스를 활용하기 위해 사용자와의 인터페이스를 제공하는 하드웨어
  • 종류
    • PC
    • 웹 브라우저 화면
    • 모바일 앱

2. Server 서버 환경 구성

  1. Web 웹 서버
  • 클라이언트에서 요청하는 서비스의 속도를 향상시키기 위해 정적파일들을 제공하는 웹 서버 애플리케이션이 설치되는 하드웨어
  1. WAS; Web Application Server 웹 애플리케이션 서버
  • 동적 웹 서비스를 제공하기 위해 Tomcat, Underflow, IIS 등 미들웨어인 WAS와 서비스에 관련된 애플리케이션이 설치되는 하드웨어
  1. Database 데이터베이스 서버
  • MySQL, Oracle
  1. 파일 서버
  • 서비스 제공을 위해 파일을 저장하고, 공유하기 위한 파일 저장 하드웨어

개발 소프트웨어 환경

1. 시스템 소프트웨어

  1. OS; Operation System 운영체제
  • 종류
    • Windows
    • Linux
    • UNIX
  1. JVM; Java Virtual Machine
  • Java 관련 응용프로그램을 가동하기 위한 인터프리터 환경
  1. Web Server
  • 정적 웹 서비스를 수행하는 미들웨어로서 웹 브라우저 화면에서 요청하는 정적파일 제공
  • 종류
    • Apache
    • Nginx
    • IIS
    • GWS
  1. WAS; Web Application Server
  • 웹 애플리케이션을 수행하는 미드뤠어로서 웹서버와 JSP/Servlet 애플리케이션 수행을 위한 엔진으로 구성
  • 종류
    • Tomcat
    • Undertow
    • JEUS
    • Weblogic
    • Websphere
  1. DBMS; Database Management System
  • 데이터 저장과 관리를 위한 데이터베이스 소프트웨어
  • 종류
    • Oracle
    • DB2
    • Sybase
    • SQL Server
    • MySQL

2. 개발 소프트웨어

  1. 요구사항 관리도구
  • 목표 시스템의 기능과 제약 조건 등 고객의 요구사항을 수집, 분석, 추적을 쉽게 할 수 있게 지원
  • 종류
    • JFeature
    • JRequisite
    • OSRMT
    • Trello
  1. 설계/모델링 도구
  • 기능을 논리적으로 결정하기 위해 통합 모델링한 언어(UML)지원
  • Database 설계 지원
  • 종류
    • ArgoUML
    • DB Designer
    • StarUML
  1. 구현 도구
  • 문제 해결방법을 소프트웨어 언어를 통해 구현 및 개발을 지원하는 도구
  • 종류
    • Eclipse
    • Intelli J
    • Vistual Studio
  1. 테스터 도구
  • 구현및 개발된 모듈들에 대하여 요구 사항에 적합하게 구현되어 있는지 테스트를 지원하는 도구
  • 종류
    • JUnit
    • CppUnit
    • Jmeter
    • SpringTest
  1. 형상관리 도구
  • 산출물의 변경 사항을 버전별로 관리하여 목표 시스템의 품질 향상을 지원하는 도구
  • 종류
    • CSV
    • SVN
    • Git

개발환경 구축 순서

1. 목표시스템의 환경 및 요구사항 분석

  • 제안 요청서, 제안서, 사업 수행 계획서, 요구사항 정의서, 시스템 아키텍처, 애플리케이션 아키텍처 등 분석 및 설계시의 산출물을 분석하여 개발환경 준비
  • 목표시스템의 환경 예시
    • 목표시스템
    • 개발언어
    • 개발인원 및 기간
    • 사양관련

2. 개발언어 설정

  • 기준

    • 적정성
      • 대상 업무의 성격
      • 개발하고자 하는 시스템이나 응용 프로그램의 목적에 적합
    • 효율성
      • 프로그래밍의 효율성이 고려
    • 이식성
      • 일반적인 PC 및 OS에 개발환경이 설치 가능
    • 친밀성
      • 프로그래머가 그 언어를 이해하고 사용할 수 있음
    • 범용성
      • 관거 개발 실적이나 사례가 존재하고, 광범위한 분야에서 사용되고 있어야 함

    3. 통합 개발환경 선정

    통합개발환경도구비교

    4. 프로그램의 배포 및 라이브러리 관리를 위한 빌드 도구 선정

    빌드도구비교

    • 빌드 도구의 선정
      • 프로젝트 팀원의 빌드 도구의 친밀도와 숙련도에 따라 결정
      • 형상관리 도구를 고려하여 빌드 도구 선정
      • 통합 개발 도구와 호환이 가능한 빌드 도구 선정

    5. 개발 인원을 고려한 형상관리 도구를 선정

    • 종류
      • CVS
      • SVN
      • Git
    • 목표 시스템 환경 등을 고려하여 선정
    • 통합 개발 도구와 호환이 가능한 빌드 도구를 선정

    6. 프로젝트 검증에 적합한 테스트 도구를 선정

    • 통합 개발 도구와 호환이 가능하고 널리 사용되는 테스트 자동화 도구를 선정
API API오용 Anaconda Beacon Bluetooth CRUD분석 Camera ChatBot DB관련신기술 DB관리기능 DB서버 DB표준화 ER다이어그램 ER모델 ETL Flask HW관련신기술 IDE도구 IP IoT Machine_Translation NLP배경 ORM프레임워크 Package Recurrent Neural Network SDLC SW개발방법론 SW개발방법론선정 SW개발보안정책 SW개발표준 SW관련신기술 Sequence_Tagging ShellScript TCP_UDP Vector WordCloud c 자료형 class embedding konlpy python python 자료형 가설검증 개발환경구축 객체지향프로그래밍언어 관계데이터베이스모델 관계데이터언어 국제표준제품품질특성 네트워크7계층 네트워크관련신기술 네트워크장비 네트워크침해공격용어 논리데이터모델개요 논리데이터모델품질검증 논리적데이터모델링 논문 단위모듈구현 단위모듈테스트 데이터검증 데이터모델개념 데이터베이스무결성 데이터베이스백업 데이터베이스암호화 데이터베이스용량설계 데이터베이스이중화구성 데이터베이스정규화 데이터분석 데이터분석 - 순열 - 조합 데이터분석 - 정규분포 데이터분석 - 통계기초 데이터사이언스개념 데이터입출력 데이터전환수행계획 데이터정제 데이터조작프로시저작성 데이터조작프로시저최적화 데이터조작프로시저테스트 데이터지역화 데이터타입 데이터표준확인 데이터품질분석 라이브러리 로그분석 메모리관리 모델화 몬테카를로 물리데이터모델설계 물리데이터모델품질기준 물리데이터저장소구성 물리요소조사분석 반정규화 배치프로그램 변수 보안기능 보안솔루션 보안아키텍처 보안취약성식별 분산데이터베이스 분산분석 비용산정모델 빌드자동화도구 사용자정의함수 상관분석 서버개발프레임워크 서버인증 서버장비운영 서버접근통제 서비스공격유형 선언형언어 세션통제 소스코드인스펙션 소프트스킬 소프트웨어개발프레임워크 소프트웨어버전관리도구 소프트웨어연계테스트 슈퍼디엠지 스크립트언어 시스템카탈로그와뷰 암호알고리즘 애플리케이션모니터링도구 애플리케이션배포도구 애플리케이션성능개선 애플리케이션테스트결과분석 애플리케이션테스트시나리오작성 애플리케이션테스트케이스작성 애플리케이션통합테스트수행 애플리케이션패키징 연산자 예외처리 오답노트 오류데이터측정 오류처리 오류처리확인및보고서작성 요구공학방법론 운영체제 웹서버 이벤트 인터넷구성의개념 인터페이스구현검증 인터페이스기능확인 인터페이스보안 입력데이터검증및표현 자료구조 자연어처리 재사용 절차적프로그래밍언어 정보보안침해공격용어 정보처리기사 제품소프트웨어매뉴얼작성 집계성DCL작성 체크리스트 초기데이터구축 취약점분석 칼럼속성 캡슐화 코드오류 클러스터링 키종류 테일러링기준 트랜잭션인터페이스 트리거 파일처리기술 파티셔닝 패키지 포트포워딩 프로세스스케줄링 프로토타입 한국어임베딩 핵심정리 현업도구 형상관리도구 환경변수 회귀분석
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×