상세 컨텐츠

본문 제목

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

정보처리기사 공부지식

by 소란한소란 2024. 2. 16. 15:08

본문

728x90

소프트웨어 서버 프로그램 구현: 비즈니스 프로세스와 안전한 코딩

 

안녕하세요! 이번 블로그 포스트에서는 소프트웨어 서버 프로그램 구현에 관한 주요 개념과 안전한 코딩에 대한 내용을 다뤄보겠습니다.


업무 프로세스 개념

  • 개인이나 조직이 한 개 이상의 자원 입력을 통해 가치 있는 산출물을 제공하는 활동

업무 프로세스 구성 요소

  • 프로세스 책임자
  • 프로세스 맵
  • 프로세스 Task 정의서
  • 프로세스 성과 지표
  • 프로세스 조직
  • 경영자의 리더십

서버 프로그램 구현

  • 업무 프로세스를 기반으로 구현하는 활동

MVC 모델의 계층

  • 프레젠테이션 계층 - 사용자의 화면을 담당
  • 제어 계층 - 어떤 요청이 들어올 때 어떤 로직이 처리해야 하는지 결정하는 역할
  • 비즈니스 로직 계층 - 실제로 뭔가 만드는 계층
  • 퍼시스턴스 계층 - 데이터 처리를 담당하는 계층
  • 도메인 모델 계층 - 그 안에 있는 데이터들의 모음

DMS 접속기술

  • 개념
    • 프로그램이 DB를 연결해주는 인터페이스이다.

DBMS 접속기술 종류

  • 소켓통신
  • Vender API
  • JDBC
  • ODBC

ORM 프레임워크

  • 개념
    • 객체와 관계형 데이터베이스를 데이터를 자동으로 매핑(연결)해 주는 것
  • ORM 장/단점
    • 장점 : 비즈니스 로직에 더 집중할 수 있다.
    • 단점 : 완벽한 ORM으로만 서비스를 구현하기 어렵다.
  • 매핑 기술 비교
    • SQL Mapper , 종류 : Mybatis
    • OR Mappuing(=ORM) , 종류 : JPA

시큐어 코딩

  • OWASP : 주로 웹에 관한 정보 노출, 악성 파일 및 스크립트 보안 취약점 등을 연구하는 단체
  • OWASP Top 10
    • 웹 애플리케이션 취약점 중 빈도가 많이 발생하고, 보안상 영향을 줄 수 있는 10가지를 선정하여 발표
  • 시큐어 코딩 가이드의 개념
    • 개발자의 실수나 논리적 오류로 인해 발생할 수 있는 문제점을 사전에 차단하여 대응하고자 하는 것
  • 시큐어 코딩 가이드 항목
    • 입력 데이터 검증 및 표현
      • 보안 약점 종류
        • SQL Injection - SQL문을 삽입하여 DB로부터 정보를 열람 및 조작할 수 있는 공격
        • XSS(크로스 사이트 스크립트) - 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 공격
        • 자원 삽입 - 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용되는 공격
        • 위험한 형식 파일 업로드 - 서버 측에서 실행될 수 있는 스크립트 파일을 업로드 하여 공격
        • 명령삽입
          • 운영체제 명령어 삽입
          • XQuery 삽입
          • XPath 삽입
          • LDAP 삽입
        • 메모리 버퍼 오버프로 - 입력받는 값이 버퍼를 가득 채우다 못해 넘쳐흘러 버퍼 이후의 공간을 침범 하는 공격
      • 보안 기능
        • 적절한 인증 없이 중요기능 허용
        • 부적절한 인가
        • 취약한 아호화 알고리즘 사용
        • 하드코딩된 패스워드
        • 패스워드 평문 저장
        • 취약한 패스워드 허용
      • 시간 및 상태
        • 경쟁 조건
        • 종료되지 않는 반복문 또는 재귀 함수
      • 에러 처리
        • 오류 메시지 정보 노출
        • 오류 상황 대응 부재
        • 부적절한 예외 처리
      • 코드 오류
        • 널 포인터 역참조
        • 부적잘한 자원 해제
        • 해제된 자원 사용
        • 초기화되지 않은 변수 사용
      • 캡슐화
        • 잘못된 세션에 의한 정보 노출
        • 제거되지 않은 디버그 코드
        • 시스템 정보 노출
        • 잘못된 접근 지정자
      • API 오용
        • DNS에 의존한 보안 결정
        • 취약한 API 사용

 

이번 포스트에서는 소프트웨어 서버 프로그램 구현과 관련된 핵심 개념들과 안전한 코딩에 대해 알아보았습니다. 비즈니스 프로세스를 중심으로 서버를 구현하고, MVC 모델을 활용하여 각 계층을 구분하는 것이 중요하며, 보안 코딩은 프로그램의 안정성을 높이기 위해 반드시 고려되어야 합니다. 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기