Clean & Blue 자세히보기

전공/정보처리기사 실기

정보처리기사 실기 - 4. 서버 프로그램 구현(2) /DTO/DAO/개발보안/cron/crontab

_청렴 2021. 4. 15. 17:14
반응형

3) 서버 프로그램 구현하기

•프로그램 구현 절차

-> MVC 기반 구조

프로그램 구현 절차 모식도 6단계
프로그램 구현 절차 모식도 6단계

- DTO/VO 구현

DTO(Data Transfer Object)는 프로그램에서 유통되는 데이터를 객체화한 것

 -> 데이터 값을 설정하고 조회하는 getter, setter 외에 비즈니스 로직을 가지지 않음

VO(Value Object)는 DTO와 비슷하나 데이터의 값을 변경할 수 없음

 

- SQL 구현

 

- DAO 구현

DAO(Data Acess Object)는 데이터베이스에 접근하여 데이터를 생성, 조회, 수정 삭제하는 역할을 담당함

-> 특정 타입의 데이터베이스나 다른 영속성 매커니즘에 추상 인터페이스를 제공하는 객체

 -> 비즈니스 로직과 데이터베이스 접근 로직을 분리하기 위해 사용

 

- Service 구현

사용자의 요청에 따라 비즈니스 로직을 처리하는 객체

-> 처리결과를 Controller에게 전달

 

- Controller 구현

사용자의 요청을 받아 적절한 Service 객체를 호출하고, Service의 처리 결과를 사용자에게 다시 전달하는 역할

-> java 기반은 Servlet이 담당

 -> doGet 혹은 doPost 메소드를 통해 사용자의 요청을 받아 서비스 제공

 -> Servlet 구현 후 접속할 수 있는 URL을 웹 애플리케이션 배포 서술자 web.xml에 등록

  -> WebServlet 어노테이션 사용

 

•소프트웨어 개발 보안

- SW 개발 과정에서 개발자의 실수, 논리적 오류 등으로 인해 발생될 수 있는 보안 취약점, 보안 약점들을 최소화하여 사이버보안 위협에 대응할 수 있는 일련의 보안활동을 의미

 -> 표준코딩 정의서 또는 소프트웨어 개발 보안 가이드를 준수

- SQL 삽입(Injection)

-> 악의적인 SQL문을 실행하게 함

 -> 외부 입력값을 검사하여 문제가 되는 부분은 제거

 -> 외부 입력값 검증 모듈 및 보안 모듈이 구현 되어있는 마이바티스(MyBatis), 스프링(Spring), 스트러츠(Struts) 등과 같은 개발 프레임워크 사용

 

- 정수형 오버플로우

정수형 변수를 연산에 사용할 때 결과값 범위를 검사하는 모듈 사용

 

- 오류 메세지를 통한 정보 추출

-> 오류 메세지를 사용자에게 최소한의 유용한 정보만 제공하도록 미리 정의된 메세지 형식에 맞게 설정

-> 시스템 오류 화면이 아니라 정의된 메세지 형식을 일괄된 형태로 보여주는 오류 메세지 화면을 구성

 

- 취약한 API 사용

취약한 API는 보안상 금지되거나 부주의하게 사용될 가능성이 많은 API 의미

-> 문자열과 관련된 strcat(), strcpy()

-> 취약점이 발견된 API인지 확인하고 사용

-> strcat_s() 같은 안전한 함수 사용

-> 개발 프레임워크의 자원관리 기능을 이용

 

4) 배치 프로그램 구현하기

- 배치 프로그램 구현

  • 대용량 데이터
  • 자동화
  • 견고함 : 비정상적인 실행 중단 없이
  • 신뢰성 : 문제 원인 추적 가능
  • 성능 : 주어진 시간 내 처리 완료

 

-> 스프링(Spring) 배치는 애플리케이션, 배치 코어, 배치 인프라로 구성

  • 애플리케이션 : 배치 작업과 사용자 정의코드
  • 배치 코어 : 배치 작업 실행, 제어, 모니터링하는데 필요한 기능
  • 배치 인프라 : 로깅이나 데이터 입출력 등과 같이 애플리케이션과 배치 코어에서 공통되게 사용하는 서비스 기능

 

- 배치 스케줄러

배치 프로그램을 일정한 규칙에 따라 실행하도록 지원하는 것이 배치 스케줄러

  • 윈도우 : 작업 스케줄러
  • Quartz : 오픈 소스 스케줄러, 스프링 배치와 통합하여 많이 사용
  • Unix/Linux : cron

 ->  crontab 파일에 설정하여 관리

 

  -> $ crontab [option] 파일명

  -> 옵션

  • -l : 설정된 내용 출력
  • -e : 설정을 추가하거나 수정
  • -r : crontab 내용 삭제

 

-> cron 작업 설정법

 

$ m h dom mon dow user command

 

  • ? : 조건 없음, dom, dow 에서 사용
  • * : 모든 조건에서 참
  • L : dom, dow에서 사용(Last라는 의미)
  • w : dom에서 사용 -> 가장 가까운 평일일 때 참
  • # : dow에서 사용 -> 2#3 -> 화요일(2) (#3)번째 주

 

* dom : day of month (1~31)

* dow : day of week (0~7)

 

 

정보처리기사 실기 - 4. 서버 프로그램 구현(3) /알고리즘

•알고리즘 특정 문제를 해결하기 위한 일련의 순차적 계산 혹은 풀이 절차 - 알고리즘의 기본 절차 구조 순차구조(Sequence) : 직선형, 시작부터 마지막까지 순차적으로 진행 선택구조(Selection) :

aapslie94.tistory.com