프로그래밍 언어 활용 1. 서버 프로그램 구현

박유현·2020년 5월 28일
1

1. 웹 서버

  • Web Server
    - 클라이언트로부터 직접 요청 받아 처리하는 서버
    • 저용량 정적 파일(Static File) 제공
      • Apache HTTP Server, Microsoft Internet Information Service, Google Web Server 등

2. 웹 애플리케이션 서버

  • WAS(Web Application Server)
    - 사용자에게 동적 서비스(Dynamic Service) 제공 위해 웹 서버(Web server)로부터 요청 받아 데이터 가공 작업 수행
    - 웹 서버 및 DB 서버 혹은 웹 서버와 파일 서버 간 인터페이스 역할 수행
    • Apache Tomcat, IBM WebSphere, Oracle WebLogic 등

3. 개발 언어 선정 기준

  • 적정성: 개발 소프트웨어 목적에 적합
  • 효율성: 코드 작성/구현 효율적
  • 이식성: 다양한 시스템과 환경에 적용 가능
  • 친밀성: 개발자들의 이해도/활용도 높음
  • 범용성: 타 개발 사례 존재하고 여러 분야에서 활용 중

4. 프레임워크

  • 특정 기능 수행 위해 필요한 클레스/인터페이스 등 집합체
    - 각 프로그래밍 언어(Java, JavaScript, Python, PHP, Ruby 등)에 서버 프로그램 개발 가능하도록 지원하는 프레임워크(Framework) 있음

    • 다양한 네트워크 설정, 요청/응답 처리, 아키텍처 모델 구현 등
    • 대부분 모델-뷰-컨트롤러(MVC) 패턴 기반
  • 종류

    프레임워크개발 언어특징
    SpringJAVA전자정부 표준 프레임워크의 기반 기술
    Node.jsJavaScript비동기 입/출력 및 이벤트 위주 높은 처리 성능으로
    실시간 입/출력 많은 애플리케이션에 적합
    DjangoPython컴포넌트 재사용 및 플러그인화 강조해 신속 개발 가능
    CodeigniterPHP인터페이스 간편하고 서버 자원 적게 사용
    Ruby on RailsRuby테스트용 웹 서버 지원하고
    DB작업의 단순화/자동화로 개발 코드 길이 짧아 신속 개발 가능

5. 소프트웨어 개발 보안

  • 개발 과정에서 발생 가능한 보안 취약점 최소화
    - 보안 위협으로부터 안전하게 개발하기 위한 일련의 활동
  • 목표
    - 기밀성(Confidentiality)
    - 무결성(Integrity)
    - 가용성(Availability)
  • 점검 항목
    - 세션 통제
    - 입력 데이터 검증 및 표현
    - 보안 기능
    - 시간 및 상태
    - 에러처리
    - 코드 오류
    - 캡슐화

6. API

  • Application Programming Interface
    - 응용 프로그램 개발을 위해 OS 혹은 프로그래밍 언어 등에 있는 라이브러리 이용 가능하도록 규칙 등 정의해 놓은 인터페이스
    • OS의 파일 제어 / 화상 처리 / 문자 제어 등 기능 활용
    • Windows API, 단일 유닉스 규격(SUS), Java API, 웹 API 등
    • Open API(무료)

7. 배치 프로그램

  • Batch Program
    - 여러 작업을 미리 정한 일련의 순서로 일괄 처리
    • 수행 주기
      • 정기
      • 이벤트성
      • On-Demand
    • 필수 요소
      • 대용량 데이터
      • 자동화
      • 견고성
      • 안정성/신뢰성
      • 성능
  • 스케줄러(Scheduler)
    - 일괄 처리(Batch Processing) 작업을 설정 주기에 맞춰 자동 수행되도록 지원 도구
    • 특정 업무를 위한 Job Scheduler라고도 함

8. 스프링 배치

  • Spring Batch
    - 스프링 프레임워크(Spring Framework)의 기능 모두 사용 가능
    - DB 혹은 파일 데이터 교환에 필요한 컴포넌트 제공
    - 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등

9. Quartz

  • 스프링 프레임워크로 개발된 응용 프로그램의 일괄 처리 기능 제공(오픈 소스 라이브러리)
    - 수행 작업과 수행 시간 관리 요소 분리하여 유연적

10. 패키지 소프트웨어

  • Package Software
    - 기업에서 일반 사용하는 여러 기능 통합 제공
    • 구입 후 환경에 맞게 커스터마이징(Customizing)
    • 패키지 개발 방식으로 시스템 구축
    • 기능 요구사항 70% 이상 충족하는 소프트웨어 존재해야 사용이 적합

0개의 댓글