게임 개발자를 향해

보안 및 API, 배치 프로그램, 패키지 소프트웨어 본문

정보처리기사/4. 서버 프로그램 구현

보안 및 API, 배치 프로그램, 패키지 소프트웨어

뿌단이 2022. 9. 27. 16:36

소프트웨어 개발 보안

 소프트웨어 개발 보안은 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미한다.

 

 

[소프트웨어 개발 보안 점검 항목]

  1. 세션
  2. 입력 데이터 검증 및 표현
  3. 보안 기능
  4. 시간 및 상태
  5. 에러처리
  6. 코드 오류
  7. 캡슐화
  8. API 오용

 

[API(Application Programming Interface)]

 응용프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 의미한다.

 라이브러리에 있는 다양한 기능들을 손쉽게 이용할 수 있도록 도와주므로 효율적인 개발이 가능하다.

누구나 무료로 사용할 수 있게 공개된 API를 'Open API' 라고 한다.

 

  <API의 종류>

  1. Windows API
  2. 단일 유닉스 규격(SUS)
  3. Java API
  4. 웹 API

 

배치 프로그램(Batch Program)

 사용자와의 상호작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램을 의미한다.

 

[배치 프로그램의 필수 요소]

  1. 대용량 데이터
    • 대량의 데이터를 가져오거나 전달하거나, 계산하는 등의 처리가 가능해야함
  2. 자동화
    • 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함
  3. 견고성
    • 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 함
  4. 안정성/신뢰성
    • 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함
  5. 성능
    • 다른 응용 프로그램의 수행을 방해하지 않아야 함
    • 지정된 시간 내에 처리가 완료되어야 함

 

 

배치 스케줄러(Batch Scheduler)

 배치 스케줄러는 일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구이다.

 특정업무원하는 시간에 처리할 수 있도록 지원한다는 특성 때문에 잡 스케줄러(Job Scheduler)라고도 불린다.

 

[배치 스케줄러 종류]

  1. Spring Batch
    • Spring Source 사와 Accenture 사가 2007년 공동 개발오픈 소스 프레임워크
    • 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공
  2. Quartz(쿼츠 : 석영)
    • 스프링 프레임워크로 개발되는 응용 프로그램들 일괄처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리
    • 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공함
  3. Cron
    • 리눅스의 기본 스케줄러 도구
    • crontab 명령어를 통해 작업을 예약할 수 있음

 

 

패키지 소프트웨어

 기업에서 일반적으로 사용하는 여러 기능을 통합하여 제공하는 소프트웨어를 의미한다.

 기업에서는 패키지 소프트웨어를 구입하여 기업 환경에 적합하게 커스터마이징 하여 사용한다.

 패키지 소프트웨어를 이용하여 시스템을 구축하는 방식을 패키지 개발 방식이라고 한다.

 기능 요구사항을 70% 이상 충족시키는 패키지 소프트웨어가 있을 때만 사용하는 것이 적합하다.

 업무 특성에 맞게 전용으로 개발되는 소프트웨어와 비교하여 안전성, 라이선스, 생산성 등에서 차이가 있다.

'정보처리기사 > 4. 서버 프로그램 구현' 카테고리의 다른 글

서버 개발  (0) 2022.09.27
개발 지원 도구  (0) 2022.09.26
디자인 패턴  (1) 2022.09.24
코드(Code)  (0) 2022.09.22
단위 모듈과 공통모듈  (0) 2022.09.22