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)형태로 개발자가 직접 제작해서 데이터를 넘기게 된다.
- 프레젠테이션 계층 - Presentation Layer
- 업무프로세스 확인
- 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 사에서 개발됨
- 소켓통신
- DBMS 접속 기술 개념
- ORM ( Object-Relational Mapping) 프레임 워크
- 개념
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것
- 객체지향 프로그램에서 클래스를 생성하고, 관계형 데이터베이스의 테이블의 내용을 매핑
- 객체지향 프로그램을 통해 데이터베이스의 데이터를 다룬다.
- 장점
- 비즈니스 로직에 더 집중할 수 있다.
- 재사용 및 유지보수의 편리성이 증가
- DBMS 에 대한 종속성이 줄어든다.
- 단점
- 완벽한 ORM 으로만 서비스를 구현하기 어렵다.
- 프로시저가 많은 시스템에선 ORM 의 객체지향 장점을 활용하기 어렵다.
- 매핑 기술 비교
- SQL Mapper
- SQL 을 명시하여 단순히 필드를 매칭시키는 것이 목적
- ex) iBatis, Mybatis, jdbc Templetes 등
- SQL 을 명시하여 단순히 필드를 매칭시키는 것이 목적
- OR Mapping
- 객체를 통해 간접적으로 데이터베이스를 다룬다.
- ORM을 이용하면 SQL Query 가 아닌 직관적인 코드로 데이터를 조작할 수 있다.
- ex) JPA(Java Persistent API), Hibernate
- SQL Mapper
- 개념
- 시큐어코딩(Secure Coding)
- OWASP(The Open Web Application Security Project)
- 오픈소스 웹 애플리케이션 보안 프로젝트
- 주로 웹에 관한 정보 노출, 악성 파일 및 스크립트 보안 취약점 등을 연구하며 10대 취약점을 발표했다.
- OWASP Top 10
- 웹 애플리케이션 취약점 중 빈도가 많이 발생하고, 보안상 영향을 줄 수 있는 10가지를 선정하여 발표
- 시큐어 코딩 가이드
- 개념
- 해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법
- 개발자의 실수나 논리적 오류로 인해 발생할 수 있는 문제점을 사전에 차단하여 대응하고자 하는 것
- 항목
- 입력 데이터 검증 및 표현
- 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터 형식을 잘못 지정하여 발생하는 보안 약점
- 보안약점 종류
- SQL Injection
- SQL 문을 삽입하여 DB 로부터 정보를 열람 및 조작할 수 있는 공격
- XSS(크로스 사이트 스크립트)
- 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 공격
- 자원 삽입
- 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용되는 공격
- 위험한 형식 파일 업로드
- 서버 측에서 실행될 수 있는 스크립트 파일을 업로드하여 공격
- 명령 삽입
- 운영체제 명령어 삽입
- XQuery 삽입
- XPath 삽입
- LDAP 삽입
- 메모리 버퍼 오버프로
- 입력받는 값이 버퍼를 가득 채우다 못해 넘쳐흘러 버퍼 이후의 공간을 침범하는 공격
- SQL Injection
- 보안 기능
- 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
- 보안약점 종류
- 적절한 인증 없이 중요기능 허용
- 부적절한 인가
- 취약한 암호화 알고리즘 사용
- 하드코딩된 패스워드
- 패스워드 평문 저장
- 취약한 패스워드 허용
- 보안약점 종류
- 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
- 시간 및 상태
- 경쟁 조건
- 종료되지 않는 반복문 또는 재귀함수
- 에러처리
- 에러를 처리하지 않거나 불충분하게 처리하여 에러 정보에 중요 정보가 포함될 때 발생할 수 있는 보안 약점
- 종류
- 오류 메시지 정보 노출
- 오류 상황 대응 부재
- 부적절한 예외 처리
- 코드 오류
- 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안 약점
- 종류
- 널 포인터 역참조
- 부적절한 자원 해제
- 해제된 자원 사용
- 초기화되지 않은 변수 사용
- 캡슐화
- 중요한 데이터 또는 기능성을 불충분하게 캡슐화하거나 잘못사용해 발생하는 보안 약점
- 보안약점 종류
- 잘못된 세션에 의한 정보 노출
- 제거되지 않은 디버그 코드
- 시스템 정보 노출
- 잘못된 접근 지정자
- API 오용
- 의도된 사용에 반하는 방법으로 API 를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 약점
- 보안 약점 종류
- DNS에 의존한 보안 결정
- 취약한 API 사용
- 입력 데이터 검증 및 표현
- 개념
- OWASP(The Open Web Application Security Project)
'정보처리기사' 카테고리의 다른 글
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 |