ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사[실기 핵심 정리] - 서버 프로그램 구현
    용어 정리 2024. 4. 8. 19:18

    업무 프로세스 확인

    1) 업무 프로세스의 개념

    • 개인이나 조직이 자원을 입력하여 가치 있는 산출물을 제공하는 일련의 활동

     

    2) 업무 프로세스 구성요소

    구성요소 설명
    프로세스 책임자 ● 프로세스의 성과와 운영을 책임지고, 프로세스를 설계 및 유지 관리한다.
    프로세스 맵 상위와 하위 프로세스의 관계를 도식화하여 업무 구조를 표현

    자료 흐름도나 UML 등이 사용
    프로세스 Task 정의서   Task의 운영 방법을 문서화하여 결과물을 산출
    프로세스 성과 지표 고객 입장에서 프로세스의 과정과 결과를 정량적으로 표현
    프로세스 조직 개인들이 업무를 유기적으로 수행하고 프로세스를 성공적으로 완수한다.
    경영자의 리더쉽 프로세스의 중요성의 인식하고, 기업의 경영 방침을 확립한다.

    서버 프로그램 구현

    • 업무 프로세스를 기반으로 서버에서 서비스를 제공하는 기능을 개발하는 활동

    MVC 모델의 계층

    1) 프레젠테이션 계층(Presentation Layer)

    • 사용자 인터페이스와 관련된 부분을 담당
    • 사용자가 시스템과 상호작용할 수 있는 기능 및 부가 정보를 제공
    • 사용자의 요청을 받아 해당 요청에 대한 적절한 응답을 생성하는 역활

     

    2) 제어 계층(Control Layer)

    • 프레젠테이션 계층과 비즈니스 로직 계층 간의 중간자 역활
    • 사용자의 요청을 분석하고, 적절한 비즈니스 로직을 호출
    • 사용자 요청 검증, 요청에 대한 로직 처리 결정, 로직 처리 결과를 적절한 뷰에 전달

     

    3) 비즈니스 로직 계층(Business Logic Layer)

    • 애플리케이션의 핵심 업무 로직을 처리
    • 데이터의 적합성 검증, 트랙젝션 처리 등을 포함

     

    4) 퍼시스턴스 계층(Persistence Layer)

    • 데이터 관리와 관련된 모든 작업을 담당
    • CRUD(생성, 수정, 삭제, 선택) 연산을 수행

     

    5) 도메인 모델 계층(Domain Model Layer)

    • 실질적인 비즈니스 객체
    • 이 계층의 객체는 다른 계층 간에 데이터를 전달한다.
    • 데이터 전송 객체(DTO)를 사용하여 계층 간 데이터를 전달한다.

    DBMS 접속기술의 개념

    • 프로그램에서 데이터베이스(DB)에 접근하여 DML을 사용할 수 있게 하는 기술
    • 프로그램 DB간의 연결을 가능하게 하는 인터페이스 제공

    DBMS 접송기술 종류

    1) 소켓통신

    • 응용프로그램과 DBMS 간에 주고받는 통신 방법
    • DBMS 제공 업체가 통신 프로토콜을 공개하지 않는 경우가 많아 개발이 어렵다.

     

    2) Vender API

    • 각 DBMS 제공 업체에서 공개한 API를 이용해 DBMS와 통신하는 방식
    • DBMS 제공 업체마다 API가 다르기 때무에 호환성 문제가 발생할 수 있다.

     

    3) JDBC(Java DataBase Connectivity)

    • Java언어를 사용하여 DB에 접속하고 SQL 문을 수행할 때 사용되는 표준 API
    • 접속하려는 DBMS에 맞는 드라이버가 필요함

     

    4) ODBC(Open DataBase Connectivity)

    • 데이터베이스에 접근하기 위한 표준 규격
    • 개발 언어에 관계없이 사용할 수 있다.
    • 1990년대 초 MS사에서 개발됨

    ORM(Object-Relational Mapping) 프레임워크

    • 객체지행 프로그래밍과 관계형 데이터베이스 간의 호환성 격차를 해결하기 위한 프로그래밍 기법
    • 애플리케이션의 클래스와 테이블 사이의 매핑을 제공함으로써 객체 지향 프로그램에서 데이터베이스를 더 쉽게 사용할 수 있게 해준다.

    매핑 기술 비교

    1) SQL Mapper

    • SQL을 명시하여 단순히 필드를 매핑시키는 것이 목표
    • SQL 문장으로 직접 데이터베이스 데이터를 다룬다.

     

    2) OR Mapping(ORM)

    • 객체를 통해 간접적으로 데이터베이스를 다룬다.
    • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑
    • ORM을 이용하면 SQL Query가 아닌 직관적인 코드로 데이터를 조작할 수 있다.

    OWASP(The Open Web Application Security Project)

    • 오픈소스 웹 애플리케이션 보안 프로젝트
    • 웹 애플리케이션 보안 취약점 연구, 정보 노출 및 악성 파일/ 스크립트 보안 취약점 해결
    • OWASP Top 10 : 빈번하고 영향력 있는 웹 애플리케이션 취약점 상위 10가지 발표

    시큐어 코딩 가이드

    1) 시큐어 코딩 가이드 개념

    • 해킹등 사이버 공격의 원인인 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법
    • 개발자의 실수나 논리적 오류로 인해 발생할 수 있는 문제점을 사전에 차단하여 대응하고자 하는 것

     

    2) 시큐어 코딩 가이드 항목

    • 1) 입력데이터 검증 및 표현
      • 프로그램 입력값에 대한 검증 누락이나 부적절한 검증, 데이터 형식 지정 오류등으로 인한 보안 약점
      • 보안 약점 종류
    종류 설명
    SQL Injection SQL 쿼리 삽입을 통한 데이터베이스 정보 열람 및 조작
    XXS(크로스 사이트 스크립트) 사용자 측에서 실행되는 악의적 스크립트 삽입
    자원 삽입 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용
    위험한 형식 파일 업로드 서버 측에서 실행 가능하 스크립트 파일 업로드
    명령 삽입 운영체제 명령어 삽입(예 : XQuery, XPath, LDAP 삽입)
    메모리 버퍼 오버플로 입력값으로 인해 버퍼가 넘쳐 다른 메모리 공간 침범
    • 2) 보안기능
      • 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
      • 보안 약점 종류
    종류 설명
    적절한 인증 없이 중요기능 허용 중요 정보(계좌, 개인정보 등)에 대한 접근에 적절한 인증 과정이 없을 때 발생
    부적절한 인가 중요 자원에 대한 외부 입력값을 포함한 문자열로 접근 가능할 때 사용
    취약한 암호화 알고리즘 사용 안전하지 않은 알고리즘(예: DES, MD5) 사용으로 인한 보안 약점
    하드코딩된 패스워드 소스 코드 내에 비밀번호가 하드코딩되어 있어, 소스코드 유출 시 노출될 수 있음
    패스워드 평문 저장 계정 정보 탈취 시 패스워드가 쉽게 노출될 수 있음
    취약한 패스워드 사용 비밀번호 조합규칙이 미흡하거나 길이가 충분하지 않을 때 발생
    • 3) 시간 및 상태
      • 동시 수행을 지원하는 병렬 시스템이나 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안 약점
      • 보안 약점 종류
    종류 설명
    경쟁 조건 동일 자원에 대한 검사 시점과 사용 시점이 다를 때 발생하는 동기화 오류나 교착 상태
    종료되지 않는 반복문 또는 재귀 함수 종료 조건이 없어 무한 루프에 빠지며 자원 고갈을 유발할 수 있음
    • 4) 에러 처리
      • 에러를 처리하지 않거나 불충분하게 처리하여 에러 정보에 중요 정보가 포함될 때 발생할 수 있는 보안 약점
      • 보안 약점 종류
    종류 설명
    오류 메시지 정보 노출 응용 프로그램의 민간 정보가 오류 메시지를 통해 노출될 수 있음
    오류 상황 대응 부재 예외 처리가 미구현된 상태에서 발생
    부적절한 예외 처리 예외 조건을 적절히 검사 및 처리하지 않음
    • 5) 코드 오류
      • 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안 약점
      • 보안 약점 종류
    종류 설명
    널 포인트 역참조 널 값을 고려하지 않은 코드에서 발생
    부적절한 자원 해제 할당받은 자원을 반환하지 않음으로써 발생
    해제된 자원 사용 이미 해제된 메모리 참조
    초기화되지 않은 변수 사용 지연변수를 초기화하지 않고 사용
    • 6) 캡슐화
      • 중요한 데이터 또는 기능성을 불충분하게 캡슐화하거나 잘못 사용해 발생하는 보안 약점
      • 보안 약점 종류
    종류 설명
    잘못된 세견에 의한 정보 노출 멀티 스레드 환경에서 서로 다른 세견 간 데이터 공유 가능
    제거되지 않은 디버그 코드 배포 단계에서 남아 있는 디버그 코드로 인해 민감 정보 노출 가능
    시스템 정보 노출 시스템 내부 데이터 노출 가능
    잘못된 접근 지정자 private, public 등 잘못된 접근 지정자 사용으로 민감 정보 노출
    • 7)  API 오용
      • 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 약점
      • 보안 약점 종류
    종류 설명
    DNS에 의존한 보안 결정 공격자가 DNS 정보를 변조해 보안 결정 우회 가능
    취약한 API 사용 금지되거나 안전하지 않은 함수 사용

     

Designed by Tistory.