본문 바로가기

스터디/웹개발

221012 TIL - 정보처리기사 실기 간단 요약

  • YAML(YAML Ain’t Markup Language) : 데이터를 사람이 쉽게 읽을 수 있는 형태로 표현하기 위해 사용하는 데이터 직렬화 양식이다.
  • 온라인 분석 처리(Online Analytical Processing; OLAP) : 데이터 웨어하우스의 데이터를 전략적인 정보로 변환시켜서 의사결정을 지원하는 역할을 하는 시스템은 OLAP이다.
  • 시멘틱 웹(Semantic Web) : 인터넷과 같은 분산 환경에서 리소스에 대한 정보와 자원 사이의 관계-의미 정보를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 지능형 웹
  • 온톨로지(Ontology) : 실세계에 존재하는 모든 개념과 개념들의 속성, 그리고 개념 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서
  • 다단계 피드백 큐(MLFQ; Multi Level Feedback Queue) : 다단계 피드백 큐는 FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용한 알고리즘이다.
  • 자료사전 기호
    • =
      • 자료의 정의로서 ‘~으로 구성되어(is Composed of) 있다.’는 것을 나타냄
      • 정의는 주석을 사용하여 의미를 기술하며, 자료 흐름과 자료저장소에 대한 구성 내역을 설명하고, 자료 원소에 대하여 값이나 단위를 나타냄
        • 자료의 연결(and, along with)을 나타냄
    • ( )
      • 자료 생략 가능함을 나타냄
    • { }
      • 자료의 반복을 나타냄
      • 반복 횟수를 기록하는데 { }에서 좌측에는 최소 반복 횟수를 기록하고, 우측에는 최대 반복 횟수를 기록
      • 반복 횟수를 기록하지 않을 때는 디폴트(Default)로 최소는 0, 최대는 무한대를 나타냄
    • [ ]
      • 자료의 선택을 나타냄
    • **
      • 자료의 설명을 나타냄
      • 주석(Comment)
    • GRANT
      • 데이터베이스 관리자(DBA; Database Administrator)가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어이다.
      • “그온투” 로 외우기 - GRANT 권한 ON 테이블 TO 사용자;
      GRANT 권한 ON 테이블 TO 사용자 [WITH 권한옵션];
      
      GRANT ALL ON STUDENT TO A_SYS WITH GRANT OPTION;
      
      • 관리자에게 사용자에게 테이블에 대한 권한을 부여.
      • WITH GRANT OPTION 은 사용자가 권한을 받고 난 후 다른 사람들과 권한을 나누어 가질 수 있는 옵션
  • GROUP BY
    • GROUP BY절은 속성값을 그룹으로 분류하고자 할 때 사용한다.
    • GROUP BY절의 속성값에 해당하는 값들끼리 그룹을 형성하고, SUM(급여)를 통해서 그룹별 합계를 구할 수 있다.
    SELECT 부서, SUM(급여) AS 급여합계 FROM 직원 GROUP BY 부서;
    
  • 대칭 키 암호화 알고리즘의 종류
    • DES(Data Encryption Standard)
      • 1975년 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘
      • 블록 크기는 64bit, 키 길이는 56bit인 페이스텔(Feistel) 구조
      • DES를 3번 적용하여 보안을 더욱 강화한 3 DES(Triple DES)도 활용됨
    • SEED
      • 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘
      • 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호문 블록으로 암호화하여 출력하는 방식
      • 블록 크기를 128bit이며, 키 길이에 따라 128bit, 256bit로 분류
    • AES(Advanced Encryption Standard)
      • 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘
      • DES의 개인 키에 대한 전사적 공격이 가능해지고, 3 DES의 성능문제를 극복하기 위해 개발
      • 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
      • AES의 라운드 수는 10, 12, 14라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성
    • ARIA(Academy, Research Institute, Agency)
      • 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
      • ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성
      • 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
      • ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성
    • IDEA(International Data Enryption Algorithm)
      • DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
      • 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦
    • LFSR(Linear Feedback Shift register)
      • 선형 되먹임 시프트 레지스터(LFSR)는 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
      • 이때 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 함
  • 변수 출력 포맷 스트링
    • 문자형
      • %c : 문자 출력
      • %s : 문자열 출력
    • 정수형
      • %d : 10진수 출력
      • %[-][0][전체자리수]d
        • 10진수 출력
        • [-]를 붙이면 왼쪽 정렬
        • [0]을 붙이면 전체 자릿수에서 앞에 빈 공간만큼 0으로 채움
        • [전체자리수]만큼 공간이 확보됨
      • %x : 16진수 출력
      • %o : 8진수 출력
    • 실수형
      • %f : 실수 출력
      • %[전체자리수].[소수점자리수]f
  • OSI 7계층 (”아파서 티내다, 피나다” A P S T N Da Phy)
    • 응용 계층(Application Layer) : 사용자와 네트워크 간 응용 서비스 연결, 데이터 생성 (HTTP, FTP)
    • 표현 계층(Presentation Layer) : 데이터 형식 설정, 부호교환, 암복호화 (JPEG, MPEG)
    • 세션 계층(Session Layer) : 송수신 간의 논리적인 연결, 연결 접속, 동기제어 (RPC,NetBIOS)
    • 전송 계층(Transport Layer) : 송수신 프로세스 간의 연결, 신뢰성 있는 통신 보장, 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어 (TCP, UDP)
    • 네트워크 계층(Network Layer) : 단말기 간 데이터 전송을 위한 최적화된 경로 제공 (IP, CMP)
    • 데이터링크 계층(Data Link Layer) : 인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화, 오류 제어, 흐름 제어, 회성 제어 (HDLC, PPP)
    • 물리 계층(Physical Layer) : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
  • 라우팅 프로토콜
    • RIP(Routing Information Protocol)
      • AS(Autonomous System, 자치 시스템, 자율 시스템)내에서 사용하는 거리 벡트 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
      • 거리 벡터 라우팅 기반 메트릭(Metric) 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고 라우팅 테이블을 구성/계산하는 데 Bellman-Ford 알고리즘을 사용하는 내부 라우팅 프로토콜
      • 최대 홉 수(Hop Count)를 15개로 제한
      • 사용 포트로는 UDP를 사용(UDP 포트 번호 520 사용)
      • 30초마다 전체 라우팅 정보를 브로드캐스팅
    • OSPF(Open Shortest Path First)
      • 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
      • 링크 상태 라우팅 기반 메트릭(Metric) 정보를 한 지역(Area) 내 모든 라우터에 변경이 발생했을 때만 보내(Flooding)고 라우팅 테이블을 구성/계산하는데 다익스트라(Dijkstra) 알고리즘을 사용하는 내부 라우팅 크로토콜
      • 최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정
      • AS를 지역(Area)으로 나누어 라우팅을 효과적으로 관리 가능
      • 홉 카운트에 제한이 없음
    • BGP(Border GateWay Protocol)
      • 자치 시스템(AS) 상호 간(Inter-AS 또는 Inter-Domain)에 경로 정보를 교환하기 위한 라우팅 프로토콜
      • 변경 발생 시 대상까지의 가장 짧은 경로를 경로 벡터(Path Vector) 알고리즘을 통해 선정하고, TCP 연결(port 179)을 통해 자치 시스템(AS)으로 라우팅 정보를 신뢰성 있게 전달
      • ISP 사업자들 상호 간에 주로 사용되는 라우팅 프로토콜
      • 순환을 피할 수 있도록 목적지까지 가는 경로 정보를 제공
      • 라우팅 비용(CPU 부하)이 크고, 라우팅 테이블의 크기가 커서 메모리 사용량이 많음
  • 트랜잭션 연산
    • 커밋(Commit) : 하나의 트랜잭션이 성공적으로 끝나고, 데이터베이스가 일관성 있는 상태에 있거나 하나의 트랜잭션이 끝났을 때 사용하는 연산
    • 롤백(Rollback) : 하나의 트랜잭션이 비정상적으로 종료되어 트랜잭션 원자성이 깨질 경우 처음부터 다시 시작하거나, 부분적으로 연산을 취소하는 연산
  • 입력 데이터 검증 및 표현 취약점
    • XSS(Corss Site Script)
      • 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격
      • 대책
        • 특수문자 등록을 방지하기 위해 특수 문자 필터링
        • HTML 태그 사용 금지(특히, < 문자 사용 시 &lt로 변환처리)
        • 자바스크립트로 시작하는 문자열은 모두 문자열 변환처리
    • 사이트 간 요청 위조(CSRF; Cross Site Request Forgery)
      • 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
      • 대책
        • 입력화면 폼을 작성 시 GET 방식보다 POST 방식 사용
        • 입력 폼과 입력처리 프로그램에서 세션별 CSRF 토큰을 사용하여 점검
        • 중요기능의 경우 재인증을 통해 안전하게 실제 요청 여부를 확인하도록 구현
    • SQL 삽입(Injection)
      • 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문으르 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법
      • 대책
        • 바인딩 매개변수 방식 적용하여 사전에 변수타입을 명시적으로 지정
        • 사용자로부터 입력될 수 있는 모든 값을 체크하여 필터링
        • Servlet Filter 기능 적용(Java에서만 적용)