정보처리기사

14. 서버 프로그램 구현

nayeonee__ 2023. 4. 1. 14:23

https://www.njobler.net/product/lecture/show/prod/10810

 

1억뷰 N잡

[연장 미포함] 흥나게 합격달성! 정보처리기사 실기

www.njobler.net

본 강의를 듣고 내용을 정리하며 적은 게시글 입니다. 

 

 

 

 

 

 

  • 서버프로그램 구현
    • 업무프로세스 확인
      • 업무프로세스 개념
        • 개인이나 조직이 한 개 이상의 자원 입력을 통해 가치있는 산출물을 제공하는 활동
      • 업무 프로세스 구성요소
        • 프로세스 책임자
        • 프로세스 맵
        • 프로세스 Task 정의서
        • 프로세스 성과 지표
        • 프로세스 조직
        • 경영자의 리더십
    • 서버프로그램 구현
      • 업무프로세스를 기반으로 개발언어, 도구를 이용하여 필요한 기능을 구현
      • 서버 프로그램 구현 절차 - 책 참고
      • 구현 요소
        • DTO
        • VO
        • DAO
        • Service
        • Controller
      • MVC 모델의 계층
        • 프레젠테이션 계층 - Presentation Layer
          • 사용자 인터페이스
          • 사용자가 선택할 수 있는 기능 및 부가 정보를 전달할 양식을 표현
        • 제어 계층 - Control Layer
          • 프레젠테이션 계층과 비즈니스 로직 계층을 분리하기 위한 컨트롤러를 제공
          • 어떤 요청이 들어왔을 때 어떤 로직이 처리해야 하는지를 결정한다.
          • 사용자 요청을 검증하고 로직에 요청을 전달하는 일과 로직에서 전달된 응답을 적절한 뷰에 연결하는 역할
        • 비즈니스 로직 계층 - Business Logic Layer
          • 핵심 업무 로직의 구현과 그에 관련된 데이터의 적합성 검증, 트랜잭션 처리 등을 담당한다.
        • 퍼시스턴스 계층 - Persistence Layer
          • 데이터 처리를 담당하는 계청
          • 데이터의 생성, 수정, 삭제, 선택(검색)과 같은 CRUD 연산을 수행한다.
        • 도메인 모델 계층 - Domain Model Layer
          • 각 계층 사이에 전달되는 실질적인 비즈니스 객체
          • 데이터 전송객체(DTO)형태로 개발자가 직접 제작해서 데이터를 넘기게 된다.
  • DBMS 접속 기술
    • DBMS 접속 기술 개념
      • 프로그램에서 DB 에 접근하여 DML 을 사용가능하게 하는 기술
      • 프로그램이 DB를 사용할 수 있도록 연결해주는 인터페이스
    • DBMS 접속 기술 종류
      • 소켓통신
        • 응용프로그램과 DBMS 가 주고받는 통신
        • DBMS 에서 프로토콜을 공개하지 않기 때문에 개발은 어렵다.
      • Vender API
        • DBMS 사에서 공개한 API 를 이용해 DBMS과 통신
        • DBMS 사마다 API 사용법이 상이하다.
      • JDBC (Java DataBase Connectivity)
        • 자바에서 디비에 접속하고 SQL 문을 수행할 때 사용되는 표준 API
        • 접속하려는 DBMS 에 맞는 드라이버가 필요함
      • ODBC (Open)
        • 데이터베이스에 접근하기 위한 표준 구격
        • 개발언어에 관계없이 사용할 수 있다.
        • 1990년대 초 MS 사에서 개발됨
  • ORM ( Object-Relational Mapping) 프레임 워크
    • 개념
      • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것
      • 객체지향 프로그램에서 클래스를 생성하고, 관계형 데이터베이스의 테이블의 내용을 매핑
      • 객체지향 프로그램을 통해 데이터베이스의 데이터를 다룬다.
    • 장점
      • 비즈니스 로직에 더 집중할 수 있다.
      • 재사용 및 유지보수의 편리성이 증가
      • DBMS 에 대한 종속성이 줄어든다.
    • 단점
      • 완벽한 ORM 으로만 서비스를 구현하기 어렵다.
      • 프로시저가 많은 시스템에선 ORM 의 객체지향 장점을 활용하기 어렵다.
    • 매핑 기술 비교
      • SQL Mapper
        • SQL 을 명시하여 단순히 필드를 매칭시키는 것이 목적
          • ex) iBatis, Mybatis, jdbc Templetes 등
      • OR Mapping
        • 객체를 통해 간접적으로 데이터베이스를 다룬다.
        • ORM을 이용하면 SQL Query 가 아닌 직관적인 코드로 데이터를 조작할 수 있다.
          • ex) JPA(Java Persistent API), Hibernate
  • 시큐어코딩(Secure Coding)
    • OWASP(The Open Web Application Security Project)
      • 오픈소스 웹 애플리케이션 보안 프로젝트
      • 주로 웹에 관한 정보 노출, 악성 파일 및 스크립트 보안 취약점 등을 연구하며 10대 취약점을 발표했다.
      • OWASP Top 10
        • 웹 애플리케이션 취약점 중 빈도가 많이 발생하고, 보안상 영향을 줄 수 있는 10가지를 선정하여 발표
    • 시큐어 코딩 가이드
      • 개념
        • 해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법
        • 개발자의 실수나 논리적 오류로 인해 발생할 수 있는 문제점을 사전에 차단하여 대응하고자 하는 것
      • 항목
        • 입력 데이터 검증 및 표현
          • 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터 형식을 잘못 지정하여 발생하는 보안 약점
          • 보안약점 종류
            • SQL Injection
              • SQL 문을 삽입하여 DB 로부터 정보를 열람 및 조작할 수 있는 공격
            • XSS(크로스 사이트 스크립트)
              • 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 공격
            • 자원 삽입
              • 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용되는 공격
            • 위험한 형식 파일 업로드
              • 서버 측에서 실행될 수 있는 스크립트 파일을 업로드하여 공격
            • 명령 삽입
              • 운영체제 명령어 삽입
              • XQuery 삽입
              • XPath 삽입
              • LDAP 삽입
            • 메모리 버퍼 오버프로
              • 입력받는 값이 버퍼를 가득 채우다 못해 넘쳐흘러 버퍼 이후의 공간을 침범하는 공격
        • 보안 기능
          • 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
            • 보안약점 종류
              • 적절한 인증 없이 중요기능 허용
              • 부적절한 인가
              • 취약한 암호화 알고리즘 사용
              • 하드코딩된 패스워드
              • 패스워드 평문 저장
              • 취약한 패스워드 허용
        • 시간 및 상태
          • 경쟁 조건
          • 종료되지 않는 반복문 또는 재귀함수
        • 에러처리
          • 에러를 처리하지 않거나 불충분하게 처리하여 에러 정보에 중요 정보가 포함될 때 발생할 수 있는 보안 약점
          • 종류
            • 오류 메시지 정보 노출
            • 오류 상황 대응 부재
            • 부적절한 예외 처리
        • 코드 오류
          • 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안 약점
          • 종류
            • 널 포인터 역참조
            • 부적절한 자원 해제
            • 해제된 자원 사용
            • 초기화되지 않은 변수 사용
        • 캡슐화
          • 중요한 데이터 또는 기능성을 불충분하게 캡슐화하거나 잘못사용해 발생하는 보안 약점
          • 보안약점 종류
            • 잘못된 세션에 의한 정보 노출
            • 제거되지 않은 디버그 코드
            • 시스템 정보 노출
            • 잘못된 접근 지정자
        • API 오용
          • 의도된 사용에 반하는 방법으로 API 를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 약점
          • 보안 약점 종류
            • DNS에 의존한 보안 결정
            • 취약한 API 사용

'정보처리기사' 카테고리의 다른 글

16. 인터페이스 개요  (0) 2023.04.01
15. 배치 프로그램 구현  (0) 2023.04.01
13. 모듈 구현  (0) 2023.04.01
12. 개발 프레임워크  (0) 2023.03.31
11. 개발 환경 구축(2)  (0) 2023.03.31