본문 바로가기
IT관련/JAVA_정리 노트

[ 정보처리기사 ] 서버 프로그램 구현

by XoX 2021. 6. 9.
728x90

 

해당내용은 <수제비 정보처리기사> 책을 참고하여 작성된 개인적인 용도의 요약본입니다.

 

Ⅰ소프트웨어 설계

Ⅱ 소프트웨어 개발

Ⅲ 데이터베이스 구축

Ⅳ 프로그래밍 언어 활용

    Chapter 01 서버프로그램 구현

        1. 개발환경 구축

        2. 공통 모듈 구현

        3. 서버 프로그램 구현

        4. 배치 프로그램 구현

    Chapter 02 프로그래밍 언어 활용

    Chapter 03 응용 SW 기초 기술 활용

Ⅴ 정보시스템 구축관리

 


3. 서버 프로그램 구현

 

    1) 서버 프로그램 구현

        (1) 서버 프로그램 구현의 개념

            : 업무 프로세스(BusinessLogic)를 기반으로 개발언어, 도구를 이용하여 서버에서 서비스를 제공하는데 필요한

              기능을 구현하는 활동

        (2) 서버 프로그램 구현 절차

            - DTO: DataTransferObject는 프로세스 사이에서 데이터를 전송하는 객체로 GetterSetter메소드만 포함함.

            - VO: ValueObject는 값을 위해 쓰이는 객체이며, DTO와 비슷한 역할을 한다.

            - DAO: DataAccessObject는 'DB 접근을 위한 로직'과 '비즈니스 로직'을 분리하기 위해 사용하며, 특정타입의

                      DB에 추상인터페이스를 제공하는 객체이므로 세부내용 노출 없이 데이터 조작이 가능하다.

 

 

    2) 보안 취약성 식별

        (1) 보안 취약성의 개념

            : 정보시스템에 불법적인 사용자의 접근, 정상적인 서비스를 방해, 중요 데이터 유출&변조&삭제에 대한 위협

        (2) 침투 테스트 개념

            : 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 시스템의 취약점을 찾기 위한 방법

        (3) 취약성 공격

            : 악성 코드, 악성 프로그램 등을 이용하여 보안 버그, 잘못된 설정 같은 결함에 대한 공격

        (4) 취약성에 따른 공격기법

            - 서비스 거부(DoS): 무의미한 서비스 요청을 반복하여 시스템의 가용자원을 소모시키는 공격

            - 코드 실행: 입력 유효성 검사가 없는 쉘명령 실행의 취약점 이용해 공격자가 원하는 코드를 실행시키는 공격

            - 버퍼 오버플로우: 메모리범위를 넘치게 해 原리턴주소를 변경시키고 특정 프로그램/함수를 실행시키는 공격

            - 정보 수집: 공격전 서버 또는 시스템의 정보를 알아내고 수집하는 공격

            - 권한 상승: 악성프로그램 설치 후 데이터 조회/변경/삭제 등을 통한 권한 상승으로 루트권한 획득하는 공격

            - SQL 삽입: 공격자가 입력 폼 및 URL란에 SQL문을 삽입하여 DB로 부터 정보 열람하는 공격

            - XSS(크로스 사이트 스크립팅): 게시판에 악성 스크립트를 작성, 삽입한 뒤 사용자가 이를 조회하면 이벤트를

                                                     발생하게 하여 사용자의 쿠키정보, 개인정보를 특정 사이트로 전송하는 공격

            - CSRF(사이트 간 요청 위주 공격): 특정 웹 사이트에 공격자가 의도한 행위를 사용자가 요청하게 만드는 공격

            - 디렉터리 접근: HTTP 기반의 공격으로 엑세스가 제한된 디렉터리에 접근해, 서버의 루트 디렉터리에서

                                  외부 명령을 실행하여 파일, 웹 소스 등을 강제로 내려받을 수 있는 공격

            - FTP 바운스 공격: FTP 서버가 데이터를 전송할 때 목적지가 어딘지 검사하지 않는 설계상 문제점 이용한 공격

            

        (5) 시큐어 코딩

            : 개발자의 실수, 논리적 오류로 인해 SW에 내포된 보안 취약점을 최소화하여 안전한 SW 개발을 위한 활동

 

 

    2) API

        (1) API의 개념

            : 다양한 컴포넌트 간의 통신 방법으로 개발자들에게 필요한 기능을 추상화하여 객체, 클래스 등을 제공.

        (2) API의 유형

            - 오픈 API: 누구나 쉽게 접근하여 정보 공유를 하기 위해 만든 API

            - 비공개 API: 권한이 있는 그룹 사용자들에게 정보 제공의 목적으로 만든 API

        (3) API의 종류

            - 윈도우즈 API: C, C++ 프로그램에서 직접 운영체제와 상호작용 할 수 있도록 마이크로소프트가 만든 API

            - 웹 API: 웹 애플리케이션에서 다른 서비스에 요청을 보내고 응답받기 위한 API e.g.XML, JSON, SOAP, REST

            - 오픈 API: 개발자사이트에서 제공하는 지도, 검색, 머신러닝과 같이 웹프로토콜(HTTP)로 호출해 사용하는 API

            - 자바 API: 입출력, 화면 구성, 이미지, 네트워크처럼 복잡한 클래스들을 미리 구현해, 자바를 사용하기 쉽도록

                         만든 클래스 라이브러리의 집합

 

 

 

728x90
반응형

댓글