Cohe

오답 - 키워드 정리만 해놓음 본문

자격증 공부/정보처리기사 실기

오답 - 키워드 정리만 해놓음

코헤0121 2024. 9. 29. 14:04
728x90
반응형

mindmap
root((IT 개념))
소프트웨어 개발
아키텍처
SOA
CBD
마이크로 커널
설계 및 모델링
UML
DFD
HIPO
개발 방법론
애자일
스프린트 번다운 차트
형상관리
품질 관리
CMM/CMMI
테스팅
인스펙션
워크스루
데이터베이스
SQL
JOIN
트리거
OLAP
정규화
제 4 정규형
트랜잭션 관리
locking
commit
rollback
데이터 웨어하우스
네트워크
프로토콜
TCP/IP
OSPF
MQTT
CoAP
무선 통신
Zigbee
UWB
802.11 표준
보안
암호화
대칭키
AES
공개키
PKI
공격 유형
DDoS
XSS
SQL 삽입
CSRF
방어 기법
방화벽
IPS/IDS
운영체제
프로세스 관리
스케줄링
MLFQ
SJF
메모리 관리
페이지 교체
LRU
LFU
파일 시스템
클라우드 컴퓨팅
서비스 모델
IaaS
PaaS
SaaS
배포 모델
퍼블릭
프라이빗
하이브리드
빅데이터
분석 도구
Hadoop
Spark
Pig
Hive
인공지능
기계학습
지도학습
비지도학습
강화학습
신경망
딥러닝
IoT
센서 네트워크
임베디드 시스템
기타
블록체인
양자 컴퓨팅
AR/VR

1. 소프트웨어 아키텍처 및 설계

주요 개념:

  1. 서비스 지향 아키텍처 (SOA):
    • 설명: 소프트웨어를 독립적인 서비스 단위로 나누는 방식입니다.
    • 예시: 온라인 쇼핑몰에서 결제, 배송, 재고관리 등을 별도의 서비스로 분리하여 구현합니다.
  2. UML (Unified Modeling Language):
    • 설명: 소프트웨어 시스템을 시각적으로 모델링하는 표준화된 방법입니다.
    • 예시: 클래스 다이어그램으로 객체 간의 관계를, 시퀀스 다이어그램으로 객체 간 상호작용을 표현합니다.
  3. CBD (Component Based Development):
    • 설명: 재사용 가능한 컴포넌트를 조합하여 소프트웨어를 개발하는 방법입니다.
    • 예시: 로그인 기능, 결제 모듈 등을 독립적인 컴포넌트로 개발하여 여러 프로젝트에서 재사용합니다.

2. 데이터베이스

주요 개념:

  1. JOIN 쿼리:
    • 설명: 여러 테이블의 데이터를 연결하여 조회하는 SQL 명령입니다.
    • 예시: 주문 테이블과 고객 테이블을 연결하여 주문한 고객의 정보를 함께 조회할 수 있습니다.
  2. 정규화:
    • 설명: 데이터의 중복을 최소화하고 일관성을 유지하기 위해 데이터베이스 구조를 체계화하는 과정입니다.
    • 예시: 고객 정보와 주문 정보를 별도의 테이블로 분리하여 중복을 줄입니다.
  3. OLAP (Online Analytical Processing):
    • 설명: 다차원적인 데이터 분석을 위한 기술입니다.
    • 예시: 판매 데이터를 지역, 제품, 시간 등 여러 차원에서 분석하여 의사결정에 활용합니다.

3. 네트워크 및 통신

주요 개념:

  1. TCP/IP (Transmission Control Protocol/Internet Protocol):
    • 설명: 인터넷에서 데이터를 주고받는 데 사용되는 핵심 프로토콜입니다.
    • 예시: 웹 브라우저로 웹사이트에 접속할 때 TCP/IP를 사용하여 데이터를 주고받습니다.
  2. OSPF (Open Shortest Path First):
    • 설명: 네트워크 내에서 가장 효율적인 경로를 찾는 라우팅 프로토콜입니다.
    • 예시: 대규모 기업 네트워크에서 데이터가 가장 빠른 경로로 전송되도록 합니다.
  3. SSL/TLS (Secure Sockets Layer/Transport Layer Security):
    • 설명: 네트워크 통신을 암호화하여 보안을 제공하는 프로토콜입니다.
    • 예시: 온라인 뱅킹 사이트에 접속할 때 'https://'로 시작하는 주소를 볼 수 있습니다. 이는 SSL/TLS가 적용된 것입니다.

4. 보안

IT 보안은 시스템과 데이터를 무단 접근과 공격으로부터 보호하는 것을 말합니다.

주요 개념:

  1. 방화벽:
    • 설명: 네트워크 트래픽을 모니터링하고 제어하여 무단 접근을 차단하는 시스템입니다.
    • 예시: 기업 네트워크에 방화벽을 설치하여 외부로부터의 불필요한 접근을 차단합니다.
  2. 암호화:
    • 설명: 데이터를 암호로 변환하여 권한 없는 사용자가 읽지 못하게 하는 기술입니다.
    • 예시: AES(Advanced Encryption Standard)는 널리 사용되는 암호화 알고리즘입니다.
  3. DDoS (Distributed Denial of Service) 공격:
    • 설명: 다수의 컴퓨터에서 동시에 대상 시스템을 공격하여 서비스를 마비시키는 공격 방식입니다.
    • 예시: 대규모 트래픽을 생성하여 웹사이트 서버에 과부하를 일으키는 공격입니다.

보안 관련 DB 쿼리 예시:

데이터베이스 보안은 매우 중요합니다. 여기 몇 가지 관련 쿼리 예시를 보겠습니다:

  1. 사용자 권한 부여:이 쿼리는 'app_user'에게 'customers' 테이블에 대한 조회와 삽입 권한만을 부여합니다.
  2. GRANT SELECT, INSERT ON customers TO 'app_user'@'localhost';
  3. 민감한 데이터 암호화:이 쿼리는 사용자의 비밀번호를 AES 알고리즘으로 암호화하여 저장합니다.
  4. UPDATE users SET password = AES_ENCRYPT('mypassword', 'encryption_key') WHERE user_id = 123;
  5. 로그인 시도 기록:이 쿼리는 로그인 시도를 기록하여 보안 감사에 활용할 수 있습니다.
  6. INSERT INTO login_attempts (user_id, attempt_time, success) VALUES (123, CURRENT_TIMESTAMP, TRUE);

5. 소프트웨어 개발 및 프로세스

주요 개념:

  1. Agile (애자일):
    • 설명: 유연하고 반복적인 개발 방식으로, 고객의 요구사항 변화에 빠르게 대응할 수 있습니다.
    • 예시: Scrum이라는 프레임워크에서는 2-4주 단위의 '스프린트'로 개발을 진행하고, 각 스프린트마다 실행 가능한 소프트웨어를 만듭니다.
  2. 형상 관리 (Configuration Management):
    • 설명: 소프트웨어의 변경사항을 체계적으로 추적하고 관리하는 프로세스입니다.
    • 예시: Git을 사용하여 소스코드의 버전을 관리하고, 여러 개발자가 협업할 수 있게 합니다.
  3. 테스팅 (Testing):
    • 설명: 소프트웨어의 품질을 검증하고 버그를 찾아내는 과정입니다.
    • 예시: 단위 테스트(Unit Test)를 통해 개별 함수나 모듈의 정확성을 검증합니다.

6. 데이터 구조 및 알고리즘

주요 개념:

  1. 큐 (Queue):

    • 설명: 선입선출(FIFO) 방식의 데이터 구조입니다.

    • 예시: 프린터 대기열이나 작업 스케줄링에 사용됩니다.

    • 코드 예시 (Python):

      from collections import deque
      queue = deque()
      queue.append('Task 1')  # 큐에 항목 추가
      queue.append('Task 2')
      print(queue.popleft())  # 'Task 1' 출력 및 제거
  2. 그래프 (Graph):

    • 설명: 노드(정점)와 엣지(간선)로 구성된 데이터 구조입니다.

    • 예시: 소셜 네트워크의 친구 관계나 도로 네트워크를 표현할 수 있습니다.

    • 코드 예시 (Python - 인접 리스트로 그래프 표현):

      graph = {
          'A': ['B', 'C'],
          'B': ['A', 'D', 'E'],
          'C': ['A', 'F'],
          'D': ['B'],
          'E': ['B', 'F'],
          'F': ['C', 'E']
      }
  3. 정렬 알고리즘 (Sorting Algorithm):

    • 설명: 데이터를 특정 순서로 배열하는 알고리즘입니다.
    • 예시: 퀵 정렬(Quick Sort)은 분할 정복 방식을 사용하는 효율적인 정렬 알고리즘입니다.
    • 코드 예시 (Python - 퀵 정렬):
    • def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) # 사용 예 sorted_array = quick_sort([3, 6, 8, 10, 1, 2, 1]) print(sorted_array) # [1, 1, 2, 3, 6, 8, 10] 출력

IT 개념 이해하기 (파트 4): 운영체제와 클라우드 컴퓨팅

안녕하세요! IT 개념 시리즈의 네 번째 파트에서는 운영체제와 클라우드 컴퓨팅에 대해 알아보겠습니다. 이 두 영역은 현대 컴퓨팅의 기반이 되는 중요한 요소입니다.

7. 운영체제 및 시스템

운영체제(OS)는 컴퓨터 하드웨어를 관리하고, 애플리케이션 소프트웨어를 위한 공통 서비스를 제공하는 시스템 소프트웨어입니다.

주요 개념:

  1. 프로세스 관리:
    • 설명: 실행 중인 프로그램(프로세스)을 관리하고 자원을 할당합니다.
    • 예시: 여러 앱을 동시에 실행할 때, OS가 각 앱에 CPU 시간을 분배합니다.
  2. 메모리 관리:
    • 설명: 컴퓨터의 주 메모리(RAM)를 효율적으로 사용하고 관리합니다.
    • 예시: 가상 메모리 기술을 사용해 실제 물리적 메모리보다 더 큰 메모리 공간을 제공합니다.
  3. 파일 시스템:
    • 설명: 데이터를 파일과 디렉토리로 구조화하여 저장하고 관리합니다.
    • 예시: Windows의 NTFS, Linux의 ext4 등이 대표적인 파일 시스템입니다.

12. 클라우드 컴퓨팅

주요 개념:

  1. IaaS (Infrastructure as a Service):
    • 설명: 가상화된 컴퓨팅 리소스를 인터넷을 통해 제공합니다.
    • 예시: Amazon EC2, Google Compute Engine
    • 사용 사례: 기업이 자체 서버를 구매하는 대신 클라우드에서 가상 서버를 임대하여 사용합니다.
  2. PaaS (Platform as a Service):
    • 설명: 애플리케이션을 개발, 실행, 관리할 수 있는 플랫폼을 제공합니다.
    • 예시: Heroku, Google App Engine
    • 사용 사례: 개발자가 인프라 관리 없이 애플리케이션을 개발하고 배포할 수 있습니다.
  3. SaaS (Software as a Service):
    • 설명: 인터넷을 통해 소프트웨어를 서비스로 제공합니다.
    • 예시: Google Workspace, Salesforce
    • 사용 사례: 기업이 이메일, 문서 작성, 고객 관리 등의 서비스를 클라우드를 통해 이용합니다.

클라우드 컴퓨팅의 장점:

  1. 확장성: 필요에 따라 리소스를 쉽게 확장하거나 축소할 수 있습니다.
  2. 비용 효율성: 초기 투자 비용을 줄이고, 사용한 만큼만 비용을 지불합니다.
  3. 접근성: 인터넷 연결만 있으면 어디서든 접근 가능합니다.
  4. 신뢰성: 대규모 데이터 센터에서 운영되어 높은 가용성을 제공합니다.

11. 빅데이터 및 분석

주요 개념:

  1. Hadoop:
    • 설명: 대용량 데이터를 분산 처리할 수 있는 오픈소스 프레임워크입니다.
    • 예시: 기업이 Hadoop을 사용해 수백 테라바이트의 고객 데이터를 저장하고 분석합니다.
  2. MapReduce:
    • 설명: 대용량 데이터를 병렬로 처리하는 프로그래밍 모델입니다.
    • 예시: 웹 크롤링 데이터에서 특정 단어의 출현 빈도를 계산할 때 사용할 수 있습니다.
  3. 데이터 마이닝:
    • 설명: 대규모 데이터에서 패턴을 찾아내는 과정입니다.
    • 예시: 온라인 쇼핑몰에서 고객의 구매 패턴을 분석하여 상품 추천 시스템을 개발합니다.

인공지능 (AI) 및 머신러닝

주요 개념:

  1. 지도학습:
    • 설명: 레이블이 있는 데이터를 사용하여 모델을 학습시키는 방법입니다.
    • 예시: 이메일 스팸 필터, 이미지 분류 등에 사용됩니다.
  2. 비지도학습:
    • 설명: 레이블이 없는 데이터에서 패턴을 찾아내는 방법입니다.
    • 예시: 고객 세그먼테이션, 이상 탐지 등에 활용됩니다.
  3. 강화학습:
    • 설명: 에이전트가 환경과 상호작용하며 보상을 최대화하는 방향으로 학습하는 방법입니다.
    • 예시: 게임 AI, 자율주행 차량 등에 적용됩니다.

IT 보안 및 암호화

  1. XSS (Cross-Site Scripting): 웹 애플리케이션의 취약점을 이용해 사용자의 브라우저에 악성 스크립트를 삽입하는 공격 방식입니다.
  2. SQL 삽입: 악의적인 SQL 문을 삽입하여 데이터베이스를 공격하는 기법입니다.
  3. AES (Advanced Encryption Standard): 현재 가장 널리 사용되는 대칭키 암호화 알고리즘입니다.
  4. 공개키 기반구조 (PKI): 공개키 암호화를 안전하게 사용하기 위한 인증서, 인증 기관 등의 체계를 말합니다.
  5. ESP (Encapsulating Security Payload): IPSec 프로토콜의 일부로, 데이터의 기밀성과 무결성을 보장합니다.
  6. CSRF (Cross-Site Request Forgery): 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격입니다.
  7. 무차별 대입 공격: 가능한 모든 값을 시도하여 암호를 해독하려는 공격 방식입니다.
  8. API 스푸핑: 공격자가 신뢰할 수 있는 API로 위장하여 악의적인 행위를 하는 공격입니다.
  9. slowloris, rudy, slow read attack: 모두 DDoS 공격의 일종으로, 서버의 자원을 천천히 소모시켜 서비스를 마비시키는 기법입니다.
  10. SHA-1: 널리 사용되던 해시 함수이지만, 현재는 보안 취약점으로 인해 사용이 권장되지 않습니다.
  11. ElGamal: 공개키 암호 시스템의 한 종류로, 이산 로그 문제의 어려움에 기반합니다.
  12. DLP (Data Loss Prevention): 중요 데이터의 유출을 방지하기 위한 보안 솔루션입니다.

네트워크 및 프로토콜

  1. TCP 세션 하이재킹: 활성화된 TCP 연결을 가로채는 공격 기법입니다.
  2. UWB (Ultra Wide Band): 매우 넓은 주파수 대역을 사용하는 근거리 무선 통신 기술입니다.
  3. MQTT (Message Queuing Telemetry Transport): 경량의 메시징 프로토콜로, IoT 기기 간 통신에 많이 사용됩니다.
  4. CoAP (Constrained Application Protocol): 제한된 환경의 기기들을 위한 특수한 웹 전송 프로토콜입니다.
  5. OSPF (Open Shortest Path First): 대규모 네트워크에서 사용되는 동적 라우팅 프로토콜입니다.
  6. IPSec: 인터넷 프로토콜(IP) 통신을 위한 보안 프로토콜 집합입니다.
  7. HDLC (High-Level Data Link Control): 데이터 링크 계층에서 사용되는 비트 중심의 동기식 데이터 링크 제어 프로토콜입니다.
  8. PPP (Point-to-Point Protocol): 두 네트워크 노드 간의 직접적인 연결을 위한 프로토콜입니다.

데이터베이스 및 데이터 처리

  1. 윈도 함수: SQL에서 행들의 집합에 대해 계산을 수행하는 함수입니다.
  2. Blind SQL injection: 데이터베이스로부터 직접적인 출력을 볼 수 없는 상황에서 수행되는 SQL 삽입 공격입니다.
  3. composite partitioning: 테이블을 여러 기준에 따라 복합적으로 분할하는 방식입니다.
  4. cascade, Restrict: 데이터베이스에서 참조 무결성을 유지하기 위한 옵션들입니다.
  5. MOLAP (Multidimensional OLAP), HOLAP (Hybrid OLAP): 다차원 데이터 분석을 위한 OLAP의 유형들입니다.
  6. Pig, Hive: Hadoop 생태계에서 데이터 처리를 위해 사용되는 고수준 도구들입니다.

소프트웨어 개발 및 아키텍처

  1. HIPO (Hierarchy plus Input-Process-Output) chart: 시스템의 기능을 계층적으로 도식화하는 문서화 도구입니다.
  2. DAO (Data Access Object): 데이터베이스 접근을 추상화하는 객체입니다.
  3. CBD (Component Based Development): 재사용 가능한 소프트웨어 컴포넌트를 조합하여 애플리케이션을 만드는 개발 방법론입니다.
  4. CMM/CMMI: 소프트웨어 개발 프로세스의 성숙도를 평가하는 모델입니다.
  5. SRT (Shortest Remaining Time): 실행 시간이 가장 짧은 프로세스를 먼저 실행하는 CPU 스케줄링 알고리즘입니다.

기타 개념

  1. Digital Forensics: 디지털 기기나 시스템에서 법적 증거를 수집하고 분석하는 과정입니다.
  2. 루트킷: 시스템에 침입한 후 자신의 존재를 숨기는 악성 소프트웨어입니다.
  3. 온프레미스: 기업이 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식입니다.
  4. SDDC (Software-Defined Data Center), SDS (Software-Defined Storage): 소프트웨어로 정의되는 데이터 센터와 스토리지 시스템을 의미합니다.
  5. BCP (Business Continuity Planning): 재해 발생 시 비즈니스 연속성을 보장하기 위한 계획입니다.
  6. ITIL (Information Technology Infrastructure Library): IT 서비스 관리를 위한 프레임워크입니다.
  7. 스턱스넷: 산업 제어 시스템을 대상으로 한 악성 컴퓨터 웜의 일종입니다.
  8. 레이스 컨디션: 멀티스레드 환경에서 실행 순서에 따라 결과가 달라지는 버그를 일으키는 상황입니다.
728x90
반응형