[정보처리기사실기] MVC 패턴 / DBMS / ORM / 시큐어코딩

    반응형

    1과목. 소프트웨어 구축

    📒 13. 서버 프로그램 구현

     

    계획 - 요구사항 분석 - 소프트웨어 - 구현 - 테스트 - 유지보수


    1. MVC 패턴

    (1) Model

    • 애플리케이션의 정보 및 데이터
    • Controller에게 받은 데이터를 조작하는 역할

    (2) View

    • 사용자가 보는 화면으로 데이터를 시각적으로 보여주는 역할

    (3) Controller

    • Model과 View 사이의 데이터 흐름을 제어함
    • 비즈니스 로직 처리

     

    2. DBMS 접속기술

    (1) DBMS 접속기술의 개념

    • 프로그램에서 데이터베이스에 접근하여 DML을 사용할 수 있게 하는 기술

    (2) DBMS 접속기술 종류

    • a) 소켓통신
      - 응용 프로그램과 DBMS 간에 주고받는 통신 방법
    • b) Vender API
      - DBMS 제공 업체마다 API 사용법이 달라 호환성 문제 발생할 수 있음
    • c) JDBC (Java DataBase Connectivity)
      - Java 언어를 사용하여 DB에 접속하고 SQL 문을 수행할 때 사용되는 표준 API
    • d) ODBC (Open DataBase Connectivity)
      - 개발 언어에 관계없이 사용할 수 있는 표준 규격

     

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

    (1) ORM의 개념

    • 객체지향 프로그래밍과 관계형 데이터베이스 간의 호환성 격차를 해결하기 위한 프로그래밍 기법

    (2) 매핑 기술 비교

    • a) SQL Mapper
      - SQL을 명시하여 단순히 필드를 매핑시키는 것이 목적
      - SQL 문장으로 직접 데이터베이스 데이터를 다룸
      - 종류 : iBatis, Mybatis, jdbc Templates 등
    • b) OR Mapping(ORM)
      - 객체를 통해 간접적으로 데이터베이스를 다룸
      - 직관적인 코드로 데이터를 조작할 수 있음
      - 쿼리를 작성하지 않음
      - 종류 : JPA(Java Persistent API), Hibernate

     

    4. OWASP(The Open Web Application Security Project)

    • 오픈소스 웹 애플리케이션 보안 프로젝트
    • OWASP Top10 : 빈번하고 영향력 있는 웹 애플리케이션 취약점 상위 10가지 발표
    • KISA에서 시큐어 가이드를 만들었는데 이 가이드를 따라 만드는 것이 시큐어 코딩

     

    5. 시큐어 코딩(Secure Coding)

    (1) 시큐어 코딩의 개념

    • 해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법

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

    • 입력 데이터 검증 및 표현, 보안기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API  오용

    (3) 보안 약점 종류

    • a) SQL Injection
      - SQL 쿼리 삽입을 통한 데이터베이스 정보 열람 및 조작
    • b) XSS(크로스 사이트 스크립트)
      - 사용자 측에서 실행되는 악의적 스크립트 삽입
    • c) 자원 삽입
      - 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용
    • d) 위험한 형식 파일 업로드
      - 서버 측에서 실행 가능한 스크립트 파일 업로드
    • e) 명령 삽입
      - 운영체제 명령어 삽입 
    • f) 메모리 버퍼 오버프로
      - 입력값으로 인해 버퍼가 넘쳐 다른 메모리 공간 침범
    • g) 적절한 인증 없이 중요 기능  허용
      - 중요 정보(계좌, 개인정보 등)에 대한 접근에 적절한 인증 과정이 없을 때 발생
    • h) 부적절한 인가
      - 중요 자원에 대한 외부 입력값을 포함한 문자열로 접근 가능할 때 발생
    • i) 취약한 암호화 알고리즘 사용
      - 안전하지 않은 알고리즘(예: DES, MD5) 사용으로 인한 보안 약점
    • j) 하드코딩된 패스워드
      - 소스 코드 유출 시 노출될 수 있음
    • k) 패스워드 평문 저장
      - 계정 정보 탈취 시 패스워드가 쉽게 노출될 수 있음
    • l) 취약한 패스워드 허용
      - 비밀번호 조합 규칙이 미흡하거나 길이가 충분하지 않을 때 발생 

     

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

     

     

    반응형

    댓글