본문 바로가기

정보처리기사

정보처리기사 4

애플리케이션 성능 개선

 

애플리케이션 성능 측정 지표

처리량 : 애플리케이션이 주어진 시간에 처리할  수 있는 트랜잭션의 수

응답시간 : 사용자가 잊력이 끝난 후 애플리케이션의 응답출력이 개시될때까지의 시간

경과시간 : 애플리케이션에 사용자가 요구를 입력한시점부터 트랜잭션을 처리후 그결과 출력이 완료할때까지 걸리는 시간

자원사용률 : 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU사용량, 메모리사용량, 네트워크 사용량

 

데이터베이스 관련 성능 저하 원인

데이터베이스 락 : 대량의 데이터 조회, 과도한 업데이트, 인덱스 생성시 발생하는 현상

불필요한 데이터 베이스 패치 : 실제 필요한 데이터보다 많은 대량의 데이터 요청이 들어올 경우 응답시간 저하 현생 발생

연결 누수 : DB연결과 관련한 JDBC 객체를 사용후  종료하지 않을 경우 발생

부적절한 커넥션 풀 크기 : 너무 작거나 크게 설정한 경우 선능 저하현상이 발생할 가능성 존재

commit 관련 : 트랜잭션이 확적되지 않고 커넥션 풀에 반환이 될때 성능저하 가능성 존재

 

클린코드 : 가독성이 높고, 단순하며, 의존성을 중복하고 최소화하여 깔끔하게 정리된 코드

클린코드작성원칙 : 가독성, 단순성, 의존성 최소, 중복성 제거, 추상화

리팩토링 : 기능은 변경하지 않고 복잡한 소스코드를 수정, 보안되여 가독성 및 가용성을 높이는 기법

배드코드 : 프로그램 로직이 복잡하고 다른 개발자들이 이해하기 어려운

   - 외계인코드 : 아주 오래되거나 참고문서 또는 개발자가 없이 유지보수작업이 매우 어려운 코드

   - 스파게티코드 : 소스코드가 복잡하게 얽혀있어서 정상작동하지만 코드의 작동을 파악하기 어려운 코드

   - 알수없는 변수명 : 변수나 메서드에 대한 이름 정의를 알 수 없는 코드

   - 로직 중복 : 동일한 처리 로직이 중복되게 작성된 곳

 

SQL응용

트랜잭션 :하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위

     원자성, 일관성, 격리성, 영속성

 

DDL

도메인 : 하나의 속성이 가질 수 있는 원자값들의 집합

스키마 : 데이터베이스의 구조. 제약조건등의 정보를 담고있음(내부,외부,개념)

테이블 : 데이터 저장공간

인덱스 : 검색을 빠르게 하기위한 데이터 구조

클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식

넌클러스터드 인덱스 : 인덱스 키값만 정렬되어있고 실제 데이터는 정렬되지 않는  방식

CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거

RESTRICT : 다른 개체가 제거할 요소를 참조중일때는 제거를 취소

 

DML

 

DCL

   - GRANT : 사용권한 부여

   - REVOKE : 사용권한 취소

 

데이터 분석함수 종류

   - 집계함수

   - 그룹함수

   - 윈도우함수

 

절자형 SQL : SQL언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어 종류

   - 트리거 : 데이터 베이스 시스템에서 이벤트가 발생할 때마다 관련작업이 자동으로 수행되는  절차형 SQL

   - 사용자정의함수 : SQL처리 수행 후 수행 결과를  단일 값으로 반환할 수 있는 절차형 SQL

   - 프로시저 : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리 집합

 

옵티마이저 : SQL이 가장 효율적을 수행되도록 최적의 경로를 찾아주는 모듈

   - 규칙기반 옵티마이저 : 사전에 정의해둔 규칙에 의거하여 경로를 찾는 규칙 기반 옵티마이저

   - 비용기반 옵티마이저 : 각 알고리즘에 따라 산출되는 비용으로 최적의 경로를 찾는 비용기반 옵티마이저

 

소프트웨어 개발 보안 구축

 

SW개발보안 3대요소

   - 기밀성 : 시스템 내의 정보와 자원이 인가된 사용자에게만 접근이 허용

   - 무결성 : 시스템 내의 정보는 오직 인가도니 사용자만 수정할 수 있다

   - 가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음.

 

DoS 공격 : 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로

                  사용하지 못하게 하는 공격

  - 죽음의 핑 : ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하여 정상적인 서비스를 못하도록 하는 공격

  - 스머핑 : 엄철난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크나 시스템상태를

                  불능으로 만드는 공격기법

  - SYN 플러딩 : 공격자가 가상의 클라이언트로 위장하여 다른 사용자가 서버를 사용 불가능하게 하는 공격

  - 티어 드롭(tear drop) : ip패킷의 재조합 과정에서 잘못된 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격

  - land attack : 패킷을 전송할때 송신 IP주소와 수신 IP주소를 모두 공격대상 IP주소로 하여 공격대상에게 전송하는것.

 

DDoS : 여러대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

 

DoS와 DDoS차이

DoS는 직접공격, DDoS는 공격하도록 지시

DoS 한사람에 의해 공격을 감행, DDoS는 수많은 감염 호스트를 통해 공격을 감행

 

네트워크 침해 공격 관련 용어

  - 스미싱 : 각종 행사나 경품 안내 등 메시지를 통해 사용자의 개인 신용정보를 빼내는 수법

  - 스피어피싱 : 특정 대상을 선정한후 일반적인 이메일로 위장한 메일을 지속적으로 발송, 메일의 본문 링크나 첨부된

                         파일을 클릭하도록 유도해 사용자의 개인정보를 탈취

패스워드 크래킹

  - 사전 크래킹

  - 무차별 크래킹

  - 패스워드 하이브리드 공격

  - 레인보우 테이블 공격

  - IP 스푸핑 : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 인증된 호스트의 IP주소로 위조하여

                      타깃에 전송하는 공격기법

  - 트로이 목마 : 악성 루틴이 숨어있는 프로그램으로 실행하면 악성코드 실행

 

애플리케이션 공격기법

HTTP GET 플러딩 : 과도한 get 메시지를 이용하여 웹서버의 과부하를 유발시키는 공격

RUDY : 요청헤더의 내용길이를 비정상적으로 크게 설정하여 메시지 바디부분을 매우 소량으로 보내

             계속 연결 상태를 유지시키는 공격

 

버퍼 오버플로우 : 메모리에 할당된 버퍼크기를 초과하는 양의 데이터를 입력하여 프로세스의 흐름을 변경시켜서

                             악성코드를 실행시키는 공격기법

백도어 : 허가받지 않고 시스템에 접속하는 권리, 정상적인 인증 절차를 우회하는 기법

 

보안관련용어

스피어피싱, 스미싱, 큐싱, 봇넷, APT공격, 공급만 공격, 웜, 랜섬웨어 등등

  서버인증의 기능 : 스니핑 방지, 피싱방지, 데이터 변조 방지, 기업신뢰도 향상

 

인증기술유형

  - 지식기반 인증 : 사용자가 기억하고 있는 지식

  - 소지기반 인증 : 소지하고 있는 사용자의 물품

  - 생체기반 인증 : 고유한 사용자의 생체정보 인증

  - 특정기반 인증 : 사용자의 특징 활용

 

접근통제 기법

식별 : 자신이 누구라고 시스텐에 밝히는 행위

인증 : 주체의 신원을 검증하는 활동

인가 : 인증된 주체에게 접근을 허용하는 활동

책임 추적성 : 주체의 접근을 추적하고 행동을 기록하는 활동

 

서버접근통제유형

임의적 접근통제(DAC) : 신분에 근거하여 객체에 대한 접근을 제한하는 방법

강제적 접근통제(MAC) : 주체가 갖는 접근 허가 권한에 근거하여 객체에 접근을 제한하는 방법

역할기반 접근통제(RBAC) : 조직내 맡은 역할에 기초하여 자원에 접근을 제한하는 방법

 

암호알고리즘 : 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

  - 양방향 방식

  - 단방향 방식

 

대칭키 암호 방식 : 암호화와 복호화에 같은키를 쓰는 알고리즘

  - DES : 블록암호화 방식. 1975년 IBM개발

  - SEED : 128bit 대칭키 암호화 알고리즘 안전성, 신뢰성이 우수한 고속 블록 단위. 99년 KISA 개발.

  - AES : 2001년 미국 NIST 개발. DES를 대체한 암호알고리즘.

 

비대칭키 암호 방식 : 암호화는 공개키 복화는 개인키. 개인키는 키의 소유자만 알고있어야함

  - RSA : 77년 MIT개발. 현재 비대칭키 암호 방식중에서 가장 널리 사용되는 방식, 소인식 분해의 어려움을 이용한  방식

  - 디피-헬만 : 암호키를 교환하는 방법으로 두사람이 암호화되지 않은 통신망을 통해 공통의 비밀키를 공유할 수

                       있도록 하는 방식, 최초의 공개키 알고리즘

 

해시암호방식 : 고정된 길이의 해시값을 비교하는 방식

  -SHA : 미국 국가 표준으로 지정한 해시암호화알고리즘 39년 미국 국가안보국이 처음 설계

  -MD5 : MD4를 대체하기 위해 고안된 128비트 해시암호화 알고리즘. 파일 무결성 검사에 사용

 

소프트웨어 개발 보안 구현

  - SQL삽입

  -크로스사이트스크립트

  -사이트간 요청 위조(CSRF)

 

방화벽 : 시스템의 접근을 허용/차단하는 시스템

네트워크 접근제어(NAC) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션

침입탐지시스템(IDS) : 네트워크에 발생하는 이벤트를 모니터링하고 보안정책 위반행위를 실시간으로 탐지하는 시스템

침입방지시스템(IPS) : 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고 유해트래픽에 대해 무선공유기를

                                    탐지하는 시스템

가상사설망(VPN) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를

                               가지는 보안 솔루션

디지털 저작권관리(DRM) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션

보안 USB : 정보유출방지 등의 보안 기능을 갖춘 USB메모리

데이터유출방지(DLP) : 조직 내부의 중요자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션

 

정적분석 : SW를 실행하지 않고 보안 약점을 분석, 개발하는 단계

동적분석 : SW를 실행환경에서 보안 약점을 분석, 개발하는 단계

 

비지니스 연속성 계획(BCP) : 각종 재해, 장애, 재난 위기관리 기반으로 재해복구, 업무복구, 비상계획 등을 통해 비지니스

                                               연속성을 보장하는 체계

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

정보처리기사6  (0) 2022.07.09
정보처리기사5  (0) 2022.07.03
정보처리기사3  (0) 2022.06.26
정보처리기사2  (0) 2022.06.25
정보처리기사1  (0) 2022.06.19