정보처리기사 - 이론 전체 정리

이보아·2024년 10월 16일

정보처리기사

목록 보기
12/16
post-thumbnail

목차

📁소프트웨어 공학

✅S/W 개발 방법론

  • 구조적 방법론: 절차지향, 하향식
  • 정보공학 방법론: 기업의 데이터 중심
  • 객체지향 개발 방법론: 객체간의 관계, 상향식
  • CBD 방법론 : 컴포넌트 조합
  • 애자일 방법론: 변화에 빠르고 유연히 대응

  • 폭포수 모델: 순차적으로 접근, 선형 접근, 가장 오래되었다.
  • 프로토타이핑 모델: 시제품, 모형 만들기
  • 나선형 모델: 계획 → 위험분석 → 개발 → 평가
  • RAD: 빠른 개발 주기
  • V 모형: 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
    • 단위 테스트 : 정적 / 동적
    • 통합 테스트: 점진적(상, 하) - 상: 드라이버 하: 스텁 / 비점진 (빅뱅 테스트)
    • 시스템 테스트: 기능(기능들이 잘 동작하는지) / 비기능(성능, 안정성, 효율성)
    • 인수 테스트: 알파(사용자, 개발자 같이) / 베타( 개발자 없이 사용자만 미리(필드) 테스트해봄)

✅애자일 방법론

작은 구성 요소를 빠르게 개발, 변화에 민감

  • XP: 용기, 존중, 의사소통, 피드백, 단순성
  • 스크럼: 백로그(기능 명세서) , 스프린트(기능 단위들, 짧은 주기)
  • 크리스털
  • FDD
  • ASD

✅비용 산정

계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수

  • COCOMO
    - 조직형(Organic): 5만 라인 이하
    • 반분리형(Separation): 30만 라인 이하
    • 내장형(Embedded): 30만 라인 이상
  • Putname 기법
  • 기능 점수 기법
  • 전문가 기법
  • 델파이 (여러 사람이 모여서 진행)

✅일정산정

  • 작업분해(WBS) : 작업분해 ex) 회원가입: 가입, 로그인
  • CPM 네트워크 작성: 가입 → 로그인 이러한 과정을 CPM 네트워크라 함
  • ⭐최소 소요 기간 계산: 임계경로 (최소는 예를들어 30, 48, 58이 있다면 58)
  • 간트 차트 표현: 막대 그래프처럼 일정을 시각화

✅요구사항 개발 프로세스

  • 개발 프로세스

    도출 → 분석 → 명세 → 확인

  • 분석 도구
    • DFD(Data Flow Diagram),DD(Data Dictionary),Minispec(소단위 명세서), STD(상태 전이도),UML(Unified Modeling Language. 객체 지향) 등
  • 요구사항 분류
    • 기능 요구사항
    • 비기능 요구사항
  • ⭐ CASE 도구 : 개발시 도와주는 도구
    • 상위 CASE (분석, 설계)
    • 하위 CASE (개발할때 사용)

✅구조적 분석 모델

  • 자료 흐름도(DFD)
  • 자료사전(DD)
  • 소단위 명세서
  • ⭐ERD(Entity Relationship Diagram) : 기호들 기억해야함

    이미지 참고 사이트
  • 상태전이도(State Transition Diagram)

✅객체지향 분석 모델

  • Rumbaugh (럼바우)
    • 객체 모델링: 객체 다이어그램
    • 동적 모델링: 상태 다이어그램
    • 기능 모델링: DFD
  • Booch : 미시적 및 거시적 개발
  • Jacobson: Use Case
  • Coda와 Yourdon: ER 다이어그램
  • Wirfs-Brock: 분석 설계 구분 없음

✅UML 다이어그램

다이어그램 종류설명
패키지 다이어그램 (Package Diagram)시스템의 패키지를 정의하고 이들 간의 관계를 나타내는 다이어그램. 패키지는 관련된 클래스, 컴포넌트 등의 그룹을 나타냄.
클래스 다이어그램 (Class Diagram)시스템의 클래스와 이들 간의 관계를 나타내는 구조적 다이어그램. 클래스의 속성과 메서드를 정의함.
시퀀스 다이어그램 (Sequence Diagram)객체 간의 상호작용을 시간 순서에 따라 나타내는 다이어그램. 메시지의 흐름과 객체의 생명주기를 보여줌.
유스케이스 다이어그램 (Use Case Diagram)시스템의 기능과 사용자(액터) 간의 상호작용을 나타내는 다이어그램. 시스템의 요구사항을 시각적으로 표현함.
상태 다이어그램 (State Diagram)객체의 상태 변화와 그에 따른 이벤트를 나타내는 다이어그램. 객체의 생명주기를 설명함.
활동 다이어그램 (Activity Diagram)시스템의 프로세스나 작업 흐름을 나타내는 다이어그램. 작업의 순서와 조건을 시각적으로 표현함.
컴포넌트 다이어그램 (Component Diagram)시스템의 컴포넌트와 그들 간의 관계를 나타내는 다이어그램. 소프트웨어 시스템의 모듈 구조를 설명함.
배치 다이어그램 (Deployment Diagram)시스템의 물리적 배치와 구성 요소 간의 관계를 나타내는 다이어그램. 하드웨어와 소프트웨어 간의 관계를 설명함.

✅UI 설계

  • UI/UX

    UI: 사용자 접하는 화면 디자인
    UX: 사용자가 화면을 이용하면서 느끼는 경험

  • ⭐UI 유형
    • CLI: 키보드 입력
    • GUI: 마우스 입력
    • NUI: 자연스러운 움직임
    • OUI: 모든 것이 입출력

  • UI 설계원칙
    • 직관성: 누구나 쉽게 이해하고 사용
    • 유효성: 목적을 정확히 달성
    • 학습성: 누구나 쉽게 배워야함
    • 유연성 요구사항 수용
  • UI 설계도구
    • 와이어 프레임
    • 스토리보드
    • 프로토타입
    • 목업
    • 유스케이스

✅형상 관리

소프트웨어의 변경 사항을 추적하고 관리하여 링관성과 품질을 유지하는 절차 도구

  • ⭐형상관리 절차

    • 형상 식별: 관리 대상 선정
    • ⭐형상 통제: 변경 요청을 검토하고 승인하여, 현재의 기준선에 반영
    • 형상 감사: 변경 검증
    • 형상 기록: 변경사항의 이력을 보존
  • 형상관리 도구

  • CVS, SVN(중앙집중형), GIT(분산형), Clear Case, BitKeeper등


✅빌드 도구

소스 코드 컴파일, 테스트, 패키징등을 자동화하여 소프트웨어를 실행 가능한 형태로 만드는 도구

  • 종류
    • Make: Unix
    • Ant: 자바 기반
    • Maven: 의존성 관리,pom,xml
    • Jenkins: 지속적 통합 도구
    • Gradle: Groovy 기반, 안드로이드 앱등

CI/CD

CI 지속적인 통합 / CD 지속적인 배포

릴리즈노트

배포될때 제공해주는데 어떤 부분이 변경됬는지에 대한 내용들이 기록 되어있다.


✅개발 프레임워크

  • 프레임워크: 개발 구조를 제공하는 틀
  • 라이브러리: 재사용 가능한 코드 모음
  • API: 소프트웨어 간 상호작용을 위한 인터페이스(호출해서 사용하는것)
  • ORM: 객체지향 프로그래밍 언어의 객체를 데이터베이스의 테이블과 매핑

✅모듈 구현

  • 모듈: 특정 기능을 수행하며 다른 모듈과 결합하여 전체 시스템을 구성할 수 있는 단위
  • 독립성: 응집도는 높이고, 결합도는 낮춘다.
  • FAN-IN, FAN-OUT

응집도

구분이상적인 수준설명
응집도기능적 응집도모듈이 단일한 목적을 가지고 수행하는 형태
순차적 응집도모듈이 이전 단계의 출력값을 다음 단계의 입력값으로 사용하는 형태
통신적 응집도동일한 데이터를 사용해 여러 작업을 수행하는 형태
절차적 응집도모듈이 특정 순서로 실행되어야 하는 경우
시간적 응집도같은 시간에 관련된 작업을 수행하는 형태
논리적 응집도유사한 성격의 작업들이 그룹화된 형태
우연적 응집도서로 관련 없는 작업들이 모여 있는 형태

결합도

구분이상적인 수준설명
결합도자료 결합도모듈 간에 단순한 데이터 값을 전달하는 방식
스탬프 결합도모듈 간의 인터페이스로 데이터 구조(배열 등)를 통해 전달되는 방식
제어 결합도한 모듈이 다른 모듈의 동작을 제어 신호를 이용하여
통신하거나 제어 요소(Function Code, Switch, Tag, Flag)를 전달하는 방식
외부 결합도다른 모듈의 외부 변수에 의존하는 방식
공통 결합도여러 모듈이 같은 전역 변수를 사용하는 방식
내용 결합도한 모듈이 다른 모듈의 내부 데이터에 직접 접근하는 방식

✅EAI

기업 내 다양한 애플리케이션 간의 데이터를 통합하고 상호 운용

  • 종류
    • Point-to-Point: 애플리케이션 간 1:1 연결 방식
    • Hub & Spoke: 중앙 허브를 통해 애플리케이션을 연결하여 관리
    • Message Bus: 메세지 버스를 사용해 각 애플리케이션이 버스와 통신
    • Hybrid: 여러 통합 방식을 혼합


이미지 참조 사이트

📄 SSO: 한번의 로그인으로 여러개의 애플리케이션을 이용할 수 있음


✅SOAP

  • XML 기반의 표준화된 프로토콜
  • 보안성과 트랜잭션 관리가 중요한 복잡한 웹 서비스 통신
  • HTTP, HTTPS, SMTP 등을 통한 XML 기반 메세지 교환 프로토콜
  • 구성요소
    • SOAP: XML을 기반으로 한 웹서비스 통신 프로토콜 (프로토콜)
    • UDDI: 웹 서비스의 검색과 등록을 위한 표준화된 디렉터리 서비스 (모아둔것 / 도서관)
    • WSDL: XML 형식의 언어(기능, 위치 사용법 기술 / 설명서)

✅REST

  • HTTP 기반의 경량화된 아키텍처 스타일
  • URL을 통해 자원을 표현하고 상태를 주고받는다.
  • 구성 요소
    • 자원: URL
    • 행위: GET,POST,PUT,DELETE
    • 표현: 데이터

✅HTTP

  • HTTP: 클라이언트와 서버간에 하이퍼텍스트를 전송하기 위한 웹 통신 프로토콜
  • Hypertext: 문서 내의 링크를 통해 다른 문서나 리소스로 연결할 수 있는 텍스트 형식
  • HTML: 웹페이지의 구조와 내용을 정의하는 마크다운 언어 하이퍼텍스트 작성
  • ⭐AJAX: 웹페이지를 전체 새로 고침 없이 비동적으로 데이터를 주고 받음

✅인터페이스 전송 데이터

  • ⭐JSON: 경량 데이터 교환 형식으로, 가독성와 구도화가 뛰어나 주로 웹에서 사용
  • ⭐XML: 데이터를 구조화하고 계층적으로 표현하는 마크업 언어
  • YAML: 가독성이 높은 데이터 직렬화 형식
  • CSV: 데이터를 쉼표로 구분하여 표현

✅객체지향 구성요소

  • 클래스: 객체를 정의하는 설계도나 틀로, 객체의 속성과 메서드를 포함
  • 속성: 객체가 가지는 데이터나 상태를 나타내는 변수
  • 메서드: 객체가 수행할 수 있는 동작이나 기능을 정의한 함수
  • 객체: 클래스로 부터 생성된 실제 인스턴스
  • 메세지: 객체간에 메서드를 호출하여 상호작용하는 방식

✅객체지향 특징

  • 캡슐화: 객체의 속성과 메서드를 하나로 묶고, 외부에 접근을 제한함
  • 정보은닉: 객체 내부의 세부 구현 내용을 숨기고, 필요한 정보만 외부에 제공하는 방식
  • 상속: 기존 클래스의 속성과 메서드를 새로운 클래스가 물려받아 재사용할 수 있게 하는 개념
  • 다형성: 같은 메서드나 연산이 당양한 객체에서 다르게 동작
  • 추상화: 복잡한 시스템에서 중요한 특징만을 추려내어 간결하게 표현

✅객체지향 설계 원칙

  • 단일 책임 원칙 (Single Responsibility Principle): 한 클래스는 하나의 책임을 진다.
  • 개방 폐쇠 원칙 (Open/Closed Principle): 확장에는 열려 있고, 수정에는 닫혀 있다.
  • 리스코프 치환 원칙 (Liskov Substitution Principle): 자식 클래스는 언제나 부모 클래스를 대체할 수 있다.
  • 인터페이스 분리 원칙 (Interface Segregation Principle): 사용하지 않는 인터페이스는 구현하지 않는다.
  • 의존성 역전 원칙 (Dependency Inversion Principle): 자주 변하지 않는 것에 의존한다.

✅테스트의 기본 원칙

-결합 집중(파레토 법칙): 결함은 특정 모듈이나 기능에 집중되어 나타난다. (20% 핵심모듈에서 80%의 결함이 발생한다.)

  • 살충제 패러독스: 동일한 테스트 케이스를 반복하면 더 이상 새로운 결함을 발견하지 못한다.
  • 오류부재의 궤변: 소프트웨어가 결함이 없더라도 사용자의 요구사항을 만족하지 못하면 무용지물

✅테스트 산출물

  • 테스트 계획서: 테스트의 범위, 전략, 자원, 일정등을 정의
  • ⭐테스트 케이스: 특정 입력과 조건에서 예상되는 출력또는 동작을 정의 (조건, 입력값, 결과)
  • ⭐테스트 시나리오: 실제 사용자의 동작 흐름
  • 테스트 결과서: 테스트 수행 후 발견된 결함이나 성공 여부등을 기록한 문서

✅테스트 오라클

테스트의 결과참인지 거짓인지 판단하기 위해 미리 정의된 참값을 입력하겨 구분하는 기법

  • ⭐유형
    • 참 오라클 (Truth Oracle): 모든 입력값에 대해 정확한 기대 결과를 제공하여 완벽하게 검증
    • 샘플링 오라클 (Sampling Oracle): 일부 입력값에 대해서만 정확한 기대 결과를 제공 (부분 검증)
    • 휴리스틱 오라클 (Heuristic Oracle): 경험이나 직관을 바탕으로 예상 결과를 제공해 검증
    • 일관성 검사 오라클 (Consistency Check Oracle): 변경 전후로 테스트 결과의 일관성 검증

✅테스트 레벨

  • 단위 테스트: 개별 모듈이나 컴포넌트를 독립적으로 검증하는 테스트
  • 통합 테스트: 모듈간의 인터페이스와 데이터 흐름이 올바른지 확인
    -점진적: 상향식(클러스터, 드라이버),하향식(스텁),비점진적: 빅뱅테스트
  • 시스템 테스트: 시스템 전체를 대상으로 기능과 비기능 요구사항을 검증
  • 인수 테스트: 시스템이 실제 환경에서 올바르게 동작하는지 검증
    • 알파(사용자+개발자),베타(사용자)

✅테스트 기법

⭐화이트 박스

내부 구조와 코드를 기반으로 테스트를 수행하며, 프로그램의 동작을 직접 검증한다.

  • 문장검증
  • 분기검증
  • 경로검증
  • 조건검증

⭐블랙박스 테스트

프로그램의 내부 구조를 고려하지 않고, 입력과 출력만으로 기능을 검증한다.

  • 동등 분할 기법 (Equivalence Partitioning)
  • 경계값 분석 (Boundary Value Analysis)
  • 원인-효과 그래프 검사 (Cause-Effect Graphing)
  • 오류 예측 검사 (Error Guessing)
  • 비교 검사 (Comparison Testing)
  • 상태전이 검사 (State Transition Testing)

✅테스트 목적

  • 회복 (Recovery): 고의로 실패를 유도
  • 안전 (Safety): 보안적인 결함을 점검
  • ⭐강도 (Stress): 과부하 테스트
  • 성능 (Performance): 응답하는 시간, 처리량, 반응속도
  • 구조 (Structural): 소스코드의 복잡도를 평가
  • ⭐회귀 (Regression): 변경 코드에 대해 새로운 결함 여부 평가
  • 병행 (Parallel): 변경된 시스템과 기존 시스템에 동일한 데이터를 입력후 비교
  • A/B 테스트 (A/B Testing): 기존 서비스 대비 효과 테스트
  • 스모크 테스트 (Smoke Testing): 테스트 환경의 테스트

✅테스트 커버리지

테스트가 코드의 어느 부분을 얼마나 커버(수행)했는지를 측정하는 기준

  • 테스트 목적
    • 구문 커버리지 (Statement Coverage): 소스 코드의 모든 구문(문장)이 최소한 한번은 평가되는지 검증
    • 조건 커버리지 (Condition Coverage): 모든 조건식의 각 참과 거짓 결과가 한번씩은 평가되는지 검증
    • 결정 커버리지 (Decision Coverage): 모든 결정문의 결과가 참과 거짓 모두 한번씩 실행되는지 검증
    • 조건/결정 커버리지 (Condition/Decision Coverage): 조건과 결정 커버리지를 결합
    • 변경 조건/결정 커버리지 (Modified Condition/Decision Coverage): 각 조건이 결정 결과에 영향을 미치는지를 검증
    • 다중 조건 커버리지 (Multiple Condition Coverage): 모든 가능한 조합에 대해 참과 거짓이 실행되는지를 검증

✅테스트 장치

  • 테스트 드라이버(Test Driver): 상향식 테스트에 필요
  • 테스트 스텁(Test Stub): 하향식 테스트에 필요
  • 테스트 슈트: 테스트 케이스의 집합
  • 테스트 테이스: 입력 값, 실행 조건, 기대 결과 등의 집합
  • 테스트 스르립트: 자동화된 테스트 실행 정차
  • 목 오브젝트: 조건부로 상황에 예정된 행위를 수행하는 객체 발생한 결함을 추적하고 관리할 수 있게 해주는 도구

✅성능 분석 지표

  • 처리량: 일정 시간 내에 처리하는 작업의 양
  • 응답 시간: 요청 전송 시점 부터 첫 응답 시점 까지의 시간
  • 경과 시간: 요청 전송 시점 부터 처리가 완료되기까지의 총 시간
  • 자원 사용률: CPU,메모리, 네트워크의 자원 사용량

✅소스코드 품질 분석

  • 소스코드 품질 분석
    • 동료 검토(Peer Review) - 개발자
    • 워크스루(Walkthrough) - 팀회의, 개발자
    • 인스펙션(Inspection) - 개발에대한 공식회의, 나는 제외
    • FTR - 문서, 개발 등 공식회의 정형검토회의

리펙토링

기능의 변경 없이 내부 구조를 개선하는 방법

튜닝

튜닝 SQL문을 최적화


✅유지보수

수적향예

  • 수정 보수 (Corrective Maintenance): 오류 수정
  • 적응 보수 (Adaptive Maintenance): 환경 변화
  • 향상 보수 (Perfective Maintenance): 기능 추가
  • 예방 보수 (Preventive Maintenance): 잠재적 오류 대비

✅⭐DRM

디지털 콘텐츠의 저작권을 보호하고, 불법 복제 및 무단 사용을 방지하기 위해 사용되는 기술

DRM의 구성 및 흐름

이미지 출처 사이트

  • 저작권 보호 기술
    • 암호화 기술 (Encryption Technology): 특정 키를 가진 사용자만이 콘텐츠를 이용
    • 위변조 방지 (Tamper-Proofing): 콘텐츠에 무단 조작 시 감지
    • ⭐워터마킹 (Watermarking): 콘텐츠에 저작권 정보를 은닉
    • ⭐핑거 프린팅 (Fingerprinting): 저작권 정보와 고매자 정보 삽입

✅⭐ 디자인 패턴

1. 생성(Creational) 패턴

객체 생성과 관련된 패턴으로, 객체 생성 메커니즘을 캡슐화하여 클라이언트 코드의 독립성을 높입니다.

패턴 이름설명
Singleton애플리케이션 전체에서 단 하나의 인스턴스만 생성되고, 이 인스턴스에 전역적으로 접근할 수 있는 패턴입니다. 주로 설정 정보를 관리하거나 자원 관리를 위해 사용됩니다.
Factory Method객체 생성의 인터페이스를 정의하고, 서브 클래스에서 어떤 객체를 생성할지를 결정하는 패턴입니다. 이를 통해 클라이언트는 구체적인 클래스에 의존하지 않고도 객체를 생성할 수 있습니다.
Abstract Factory관련된 객체들의 집합을 생성하기 위한 인터페이스를 제공합니다. 클라이언트는 구체적인 클래스에 의존하지 않고, 일관된 객체 집합을 사용하여 시스템의 유연성을 향상시킬 수 있습니다.
Builder복잡한 객체를 생성하는 과정에서 단계를 분리하여, 같은 생성 과정에서 다양한 표현의 객체를 만들 수 있게 지원합니다. 주로 복잡한 객체, 예를 들면 게임 캐릭터나 보고서 생성에 유용합니다.
Prototype기존 객체를 복제하여 새로운 객체를 생성하는 패턴입니다. 객체 생성 시 성능 및 메모리 문제를 해결하기 위해 사용되며, 변화가 적은 객체를 기반으로 새 객체를 생성할 때 이상적입니다.

2. 구조(Structural) 패턴

객체를 조합하여 더 큰 구조를 만드는 패턴으로, 클래스와 객체의 조합을 통해 유연성을 제공합니다.

패턴 이름설명
Adapter서로 다른 인터페이스를 가진 클래스들이 함께 작업할 수 있도록 변환하는 구조입니다. 사용자가 원하는 형태로 데이터를 변경하여 호환성을 높입니다.
Bridge구현과 추상을 분리하여, 두 부분이 독립적으로 확장될 수 있는 구조를 제공합니다. 주로 두 개의 상위 클래스와 하위 클래스를 사용하는 경우에 유용합니다.
Composite부분-전체 관계를 표현하는 패턴으로, 개별 객체와 복합 객체를 동일하게 다룰 수 있는 방법을 제공합니다. 주로 트리 구조를 통해 복합 객체를 구성할 때 사용됩니다.
Decorator기존 객체에 새로운 기능을 추가하는 구조로, 확장성을 높이기 위해 동적으로 행동을 추가할 수 있게 해줍니다. 예를 들어, 그래픽 객체에 새로운 속성을 추가할 수 있습니다.
Facade복잡한 시스템에 대한 단순한 인터페이스를 제공하여, 클라이언트가 내부 구현에 대해 몰라도 시스템을 사용할 수 있도록 만들어줍니다. 주로 서브시스템과의 의존성을 줄이는 데 사용됩니다.
Proxy객체에 대한 접근을 제어하는 객체로, 실제 객체 대신 중간에 위치하여 요청을 검증하거나 캐싱을 할 수 있습니다. 원격 프로시저 호출이나 가상 프록시로 활용됩니다.

3. 행위(Behavioral) 패턴

알고리즘이나 객체 간의 책임 분배에 관련된 패턴으로, 객체 간의 상호작용을 정의합니다.

패턴 이름설명
Iterator컬렉션의 내부 구조를 숨기고 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다. 이를 통해 클라이언트는 직접적으로 컬렉션의 구조에 의존하지 않게 됩니다.
Observer상태 변화에 대한 알림을 주는 패턴으로, 누군가가 상태를 변경하면 이를 구독자에게 통지합니다. 주로 이벤트 시스템에서 사용됩니다.
Strategy여러 알고리즘을 각각 캡슐화하고 이들을 상호 교환 가능하게 하여 다형성을 활용하는 패턴입니다. 이를 통해 런타임 시에 어떤 알고리즘을 사용할지 결정할 수 있습니다.
Command요청을 객체로 캡슐화하여 요청의 매개변수화 및 요청 실행의 저장, 큐잉, 로깅 등의 작업을 가능하게 하여 요청 처리의 유연성을 높입니다.
State객체의 상태 변화에 따라 행동을 변경할 수 있는 패턴입니다. 객체가 자신의 상태를 전환하게 하여 코드의 복잡성을 줄일 수 있습니다.
Template Method알고리즘의 구조를 정의하고, 알고리즘의 일부 단계를 서브 클래스에서 정의하도록 하여 일정한 프로세스를 재사용할 수 있게 합니다.
Chain of Responsibility요청 처리를 여러 객체에 연쇄적으로 분배하는 패턴으로, 요청 처리의 흐름을 동적으로 조정할 수 있습니다.
Mediator객체들 간의 상호작용을 중재하여 복잡한 연결을 관리하는 패턴입니다. 주로 복잡한 시스템 내에서 객체 간의 의존성을 줄이기 위해 사용됩니다.

📊 데이터베이스

✅스키마

스키마는 데이터베이스의 구조제약 조건을 정의하는 설계도(청사진)이다.

  • ⭐3계층 스키마

    • 외부 스키마: 사용자 관점의 데이터뷰
    • 내부 스키마: 물리적 저장구조
    • 개념 스키마: 데이터베이스의 논리적 구조
  • ⭐독립성

    • 논리적 독립성
    • 물리적 독립성

이미지 참고 사이트


✅데이터베이스 설계

데이터 모델

데이터의 구조, 연산, 제약 조건을 논리적 또는 개념적으로 표현한 설계 방법

⭐⭐설계 단계

요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계

  • 개념설계:ER 다이어그램으로 구조를 정의하는 단계
  • 논리설계: 데이터베이스 스키마로 논리적 구조를 설계하는 단계
  • 물리설계: 저장 매체와 성능을 고려한 물리적 구현 단계

✅관계형 모델

데이터를 테이블 형태로 구성하여 각 테이블 간의 관계를 기본키와 외래키로 연결하는 데이터 베이스 모델

  • ⭐용어
    • 컬럼: 테이블 속성
    • 튜플: 테이블 행
    • 도메인: 컬럼의 값 범위
    • 차수 : 컬럼의 개수
    • 카디널리티: 튜플의 개수
    • : 값이 없음

      용어설명
      튜플데이터베이스의 행(row)으로, 데이터의 집합입니다.
      릴레이션 인스턴스특정 시점에 릴레이션에 저장된 데이터 전체입니다.
      카디널리티특정 데이터 집합의 유니크한 값의 개수입니다.
      릴레이션같은 속성을 가진 튜플의 집합으로, 테이블 구조를 의미합니다.
      속성릴레이션의 컬럼으로, 각 튜플에서 데이터 유형을 정의합니다.
      기본 키테이블에서 각 행을 고유하게 식별하는 열(column)입니다.
      외래 키다른 테이블의 기본 키를 참조하여 관계를 정의하는 속성입니다.
      무결성 제약조건데이터의 정확성과 일관성을 보장하는 규칙입니다.
      정규화데이터베이스의 중복성을 최소화하고 무결성을 높이는 과정입니다.
      집합같은 유형의 원소들의 모임으로, 데이터베이스에서는 튜플의 집합을 의미합니다.
      스키마데이터베이스의 구조를 정의하는 메타정보의 집합입니다.
      트랜잭션데이터베이스에서 수행되는 일련의 작업으로, 원자성을 갖습니다.
      인덱스데이터 검색 성능을 향상시키기 위해 테이블의 특정 컬럼에 대한 구조입니다.
      SQL데이터베이스에 대해 질의하고 조작하기 위한 표준 프로그래밍 언어입니다.


이미지 참고 사이트


✅이상현상

데이터의 비정상적인 처리가 발생하여 무결성이 깨지는 현상

  • ⭐종류
  • 삽입이상: 데이터를 삽입할 때, 불필요한 데이터가 함께 삽입되는 현상
  • 삭제이상: 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실
  • 갱신이상: 데이터를 갱신할 때, 일부 정보만 갱신되어 정보에 모순이 생기는 현상

✅함수적 종속 관계

한 속성의 값이 다른 속성에 의해 고유하게 결정되는 관계

  • 표현
  • A → B(A가 B를 결정한다)
  • A는 결정자, B는 종속자
  • 종류
  • 완전 함수 종속: 기본키 전체에 의해 결정되는 종속 관계
  • 부분 함수 종속: 기본키의 일부 속성에 의해 결정되는 종속 관계
  • 이행적 함수 종속: 한 속성이 다른 속성을 통해 간접적으로 종속되는 관계

✅정규화

데이터 중복을 줄이고 일관성을 유지하기 위해 데이터를 구조적으로 분해하는 과정

이미지 출처 사이트

  • ⭐⭐단계
  • 1NF: 도메인이 원자값
  • 2NF: 부분 함수 종속 제거
  • 3NF: 이행적 함수 종석 제서
  • BCNF: 모든 결정자가 후보키
  • 4NF: 다치 종속 제거
  • 5NF: 조인 종속 이용(제거)

✅반정규화

성능 향상을 위해 정규화된 데이터베이스 구조를 의도적으로 일부 결합하거나 중복을 허용하는 과정


✅데이터베이스 이중화&백업

이중화

데이터베이스의 고가용성을 보장하기 위해 동일한 데이터를 복제하여 두 개 이상의 서버에 저장하는 방식

  • 백업

    • 전체 백업: 모든 데이터 백업
    • ⭐증분 백업: 전체 백업 이후, 변경/추가된 데이터만 백업
    • ⭐차등 백업: 전체 백업 이후, 모든 변경/추가된 데이터를 백업
    • 합성 백업: 전체 백업 + 증분 백업을 합하여 전체 백업을 만드는 작업
  • RTO/RPO

  • RTO : 복구 시간 목표

  • RPO: 복구 시점 목표 (손실된 데이터 양 관련)


✅물리설계

  • 파티셔닝: 큰 테이블성능 향상과 관리 용이성을 위해 분할하는 방법(범위 분할, 목록 분할, 해시분할, 라운드 로빈분할, 합성분할)
  • 클러스터: 데이터를 빠르게 검색하기 위해 비슷한 데이터들을 물리적으로 인접하게 저장하는 방식
  • 인덱스: 데이터를 빠르게 검색하기 위해 특정 열에 대해 생성하는 보조 구조
  • : 하나 이상의 테이블에서 유도된 가상의 테이블
  • 트리거: 특정 조건이 발생할 때 자동으로 실행되는 사용자 정의 프로시저
  • 시스템 카탈로그: 데이터베이스 객체에 대한 메타데이터를 저장하고 관리하는 시스템 테이블 스스로 만듬
  • 튜닝: SQL 문을 최적화하여 응답 속도 개선

✅키

테이블에서 행을 고유하게 실별하는 속성 또는 속성들의 집합

  • ⭐유일성: 키 값이 중복되지 않음

  • ⭐최소성: 키가 행을 고유하게 식별하는 데 필요한 최소한의 속성들로 구성

  • 종류

    • 기본키: 유일성 + 최소성 만족시켜야함
    • 후보키: 유일성 + 최소성 만족시켜야함 후보키중 하나가 기본키
    • 대체키: 유일성 + 최소성 만족시켜야함
    • 슈퍼키: 유일성만!

이미지 참조 사이트


✅무결성 제약조건

데이터의 일관성과 정확성을 유지하기 위한 규칙

  • ⭐종류
    • 개체 무결성: 기본키는 중복되거나 null값을 가질 수 없다는 규칙
    • 참조 무결성: 외래키는 참조하는 테이블의 기본키 값과 일치해야 한다.(CASCADE, RESTRICT)
    • 도메인 무결성: 속성 값은 미리 정의된 데이터 타입과 값의 범위 내에 있어야 한다는 규칙
무결성 종류설명
개체 무결성 (Entity Integrity)각 테이블의 기본 키는 NULL이 될 수 없으며, 기본 키의 값은 고유해야 함. 이를 통해 각 레코드가 식별 가능하게 함.
참조 무결성 (Referential Integrity)외래 키는 반드시 존재하는 기본 키를 참조해야 하며, 이를 통해 테이블 간의 관계를 유지하고 데이터의 일관성을 보장함.
도메인 무결성 (Domain Integrity)각 열의 데이터 타입과 값의 범위를 정의하여, 데이터 입력 시 유효한 값만 저장되도록 하는 제약 조건.
사용자 정의 무결성 (User-defined Integrity)특정 비즈니스 규칙이나 요구사항에 따라 설정하는 무결성 제약 조건. 예를 들어, 특정 열의 값이 특정 조건을 만족해야 함.
논리적 무결성 (Logical Integrity)데이터의 논리적 일관성을 유지하기 위한 제약. 예를 들어, 특정 조건을 만족하는 데이터를 유지하도록 강제함.

✅트랜잭션

데이터베이스에서 하나의 논리적 작업 단위를 이루는 연산들의 집합

  • ⭐ACID 성질

    • 원자성 (Atomicity): 트랜잭션 내의 연산은 모두 반영되거나 전혀 반영되지 않는다.
    • 일관성 (Consistency): 트랜잭션 이후 데이터베이스는 일관된 상태를 유지해야 한다.
    • 격리성 (Isolation): 동시에 실행되는 트랜잭션은 서로 영향을 주지 않아야 한다.
    • 영속성 (Durability): 트랜잭션이 완료되면 그 결과는 지속적으로 유지되어야 한다.
  • 트랜잭션의 상태

    • 활동(Atomicity) : 트랜잭션이 실행 중인 샅애
    • 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
    • 철회(Aborted): 비정상적으로 종료되어 Rollback 연산을 수행한 상태
    • 부분 완료(Partially Committed) : Commit 연산이 실행되기 직전의 상태
    • 완료(Committed) : 트랜잭션이 성공적으로 종료된 상태

✅⭐SQL문법의 종류

DDL(Data Definition Language) - 데이터 정의어

  • CREATE
  • ALTER
  • DROP
  • RENAME
  • TRUNCATE

DML(Data Manipulation Language) - 데이터 조작어

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

DCL (Data Control Language) - 데이터 제어어

  • GRANT
  • REVOKE
  • ROLLBACK
  • SAVEPOINT

✅SQL 기본 문법 정리

DDL(Data Definition Language)

  1. 테이블 생성 (CREATE)
CREATE TABLE 사원 (
    사원번호 INT PRIMARY KEY,
    이름 VARCHAR(50),
    주소 VARCHAR(100),
    부서 VARCHAR(50)
);
  1. 테이블 구조 변경 (ALTER)
-- 컬럼 추가
ALTER TABLE 사원
ADD 나이 INT;

-- 컬럼 수정
ALTER TABLE 사원
ALTER COLUMN 이름 VARCHAR(100);

-- 컬럼 삭제
ALTER TABLE 사원
DROP COLUMN 주소;
  1. 테이블 삭제 (DROP)
DROP TABLE 테이블명;
  1. 테이블 이름 변경 (RENAME)
RENAME TABLE 사원 TO 직원;
  1. 테이블 데이터 삭제 - 구조 유지 (TRUNCATE)
TRUNCATE TABLE 사원;

DML(Data Manipulation Language) - 데이터 조작어

  1. 데이터 조회(SELECT)
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
WHERE 조건;
  1. 모든 컬럼 조회(SELECT)
SELECT * FROM 테이블명;
  1. 데이터 추가(INSERT)
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (1,2, ...);
  1. 데이터 수정(UPDATE)
UPDATE 테이블명
SET 컬럼1 =1, 컬럼2 =2, ...
WHERE 조건;
  1. 데이터 삭제(DELETE)
DELETE FROM 테이블명
WHERE 조건;

기타

  1. 조건문(AND, OR, NOT)
  • AND, OR, NOT 등을 사용하여 조건 결합 가능
SELECT * FROM 테이블명
WHERE 조건1 AND 조건2;
  1. 정렬(ORDER BY)
SELECT * FROM 테이블명
ORDER BY 컬럼1 ASC|DESC;
  1. 그룹화 (GROUP BY)
SELECT 컬럼1, COUNT(*)
FROM 테이블명
GROUP BY 컬럼1;
  1. INNER JOIN:
SELECT *
FROM 테이블1
INNER JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
  1. LEFT JOIN
SELECT *
FROM 테이블1
LEFT JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;

✅병행제어

  • 병행제어 문제점

    • 갱신 분실(Lost Update): 일부 갱신 결과가 손실되는 현상
    • 비완료 의존성(Uncommitted Dependency): 실패한 트랜잭션의 결과를 다른 트랜잭션이 참조하는 현상
    • 모순성(Inconsistency): 병행 수행 중 원치 않는 자료를 사용함으로써 발생하는 문제
    • 연쇄 복귀(Cascading Rollback): 하나의 트랜잭션이 실패해 롤백되면, 다른 트랜잭션도 함께 롤백되는 현상
  • ⭐병행제어 기법

    • 로킹(Locking): 데이터베이스에서 동시에 여러 트랜잭션이 접근하는 것을 방지하기 위해 자원을 잠그는 기법입니다.
    • 2단계 로킹 규약(Two-Phase Locking Protocol): 트랜잭션이 잠금을 설정하는 단계와 잠금을 해제하는 단계로 나뉘어, 데이터 일관성을 보장하는 방법입니다.
    • 타임스탬프(Time Stamp): 트랜잭션의 생성 시간을 기반으로 순서를 결정하여 병행성을 제어하는 기법입니다.
    • 낙관적 병행제어(Optimistic Concurrency Control): 트랜잭션이 충돌하지 않을 것이라고 가정하고, 최종 단계에서 충돌을 검증하는 방식입니다.
    • 다중 버전 병행제어(Multi-version Concurrency Control): 데이터의 여러 버전을 유지하여 동시에 여러 트랜잭션이 읽고 쓸 수 있도록 하는 기법입니다.

✅회복 기법

  • 로그 기반 회복 기법: 트랜잭션의 작업을 로그에 기록하여 시스템 장애 시 복구하는 기법.
    • 지연 갱신 회복 기법 (Deferred Update): 트랜잭션 완료 후에만 데이터베이스에 변경 사항을 반영하는 기법.
    • 즉시 갱신 회복 기법 (Immediate Update): 트랜잭션 실행 중 즉시 데이터베이스에 변경 사항을 반영하는 기법.
  • 그림자 페이징 기법 (Shadow Paging Recovery): 페이지의 그림자를 유지하여 장애 발생 시 이전 상태로 복구하는 기법.
  • 미디어 회복 기법 (Media Recovery): 데이터 저장 매체의 손상을 복구하는 기법.
  • ARIES 회복 기법 (Algorithms for Recovery and Isolation Exploiting Semantics): 로그와 체크포인트를 활용하여 효율적으로 트랜잭션을 복구하는 기법.

🏠 운영체제

✅운영체제 기본

반입(하드 디스크 프로그램) → 배치(주기억 장치) → 교체(한정적인 공간)

반입

  • 요구
  • 예상

배치

  • 최초 적합 (First Fit): 사용 가능한 메모리 블록 중 첫 번째로 적합한 공간에 프로세스를 배치하는 방법.
  • 최적 적합 (Best Fit): 가장 작은 적합 블록을 찾아 프로세스를 배치하여 메모리 단편화를 최소화하는 방법.
  • 최악 적합 (Worst Fit): 가장 큰 메모리 블록을 찾아 프로세스를 배치하여 남은 공간이 더 커지도록 하는 방법.

교체

페이지 교체 알고리즘

1) FLFO(First In First Out)

가장 먼저 적재된 페이지를 교체

2) OPT(Optimal replacement, 최적 교체)

미래에 가장 오랫동안 사용되지 않을 페이지를 교체

1) LRU(Least Recently Used)

가장 오랜동안 사용되지 않을 페이지를 교체

1) LFU(Least Frequently Used)

사용 빈도가 가장 적은 페이지를 교체

1) NUR(Not Used Recently)

참조 비트와 변형 비트를 사용하여 최근 사용 여부를 확인

1) SCR(Second Chance Replacement)

FLFO 단점을 보완한 기법


✅프로세스

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

스레드(Thread)

프로세스 내에서 실행되는 흐름의 단위, 사용자 수준의 스레드, 커널 수준의 스레드

메모리상의 프로세스 영역

  • 코드 영역: 실행할 프로그램의 코드가 저장
  • 데이터 영역 : 전역 변수와 정적 변수
  • 스택 영역 : 지역 변수와 함수의 매개변수
  • 힙 영역 : 동적 할당

⭐프로세스 상태 전이⭐

이미지 출처 사이트

PCB(Process Control Block, 프로세스 제어 블록)

PCB는 운영체제가 프로세스의 정보를 저장하는 공간

문맥 교환(Context Switching)

하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정


✅가상기억장치

주기억장치의 한정적인 공간 때문에 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 기법

블록 분할 방법

  • 페이징(Paging) 기법
    • 가상기억장치를 모두 같은 크기(고정 크기)의 블록(페이지)으로 편성하여 운용하는 기법
  • 내부 단편화 발생 → 내부 단편화 해결을 위해 통합 / 압축 / 재배치

가상기억 장치 기타 관리사항
스래싱(Thrashing)

프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

워킹 셋(Working Set)

스레싱을 극복하기 위해 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합

페이지 부재

프로세스 실행 중 필요한 페이지가 주기억장치에 없는 상황


✅스케줄링 기법

⭐선점형 스케줄링(Preemptive)

운영체제가 실행 중인 프로세스부터 CPU를 강제로 빼앗을 수 있는 방식

종류

스케줄링 알고리즘설명
Round Robin각 프로세스에 일정 시간 할당 후 다음 프로세스로 전환하는 스케줄링 방식.
SRT (Shortest Remaining Time)남은 실행 시간이 가장 짧은 프로세스를 우선적으로 실행하는 방식.
다단계 큐 (MLQ, Multi-Level Queue)우선순위에 따라 여러 큐로 나누어 프로세스를 관리하는 방식.
다단계 피드백 큐 (MFQ, Multi-Level Feedback Queue)프로세스의 실행 시간에 따라 큐 간 이동을 허용하는 유연한 스케줄링 방식.

⭐비선점형 스케줄링(Non-preemptive)

프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식

종류

스케줄링 알고리즘설명
FCFS (First-Come, First-Served)도착한 순서대로 프로세스를 실행하는 간단한 스케줄링 방식.
SJF (Shortest Job First)실행 시간이 가장 짧은 프로세스를 우선적으로 실행하는 방식.
HRN (Highest Response Ratio Next)응답 비율이 가장 높은 프로세스를 우선 실행하는 방식. (대기 시간 + 작업 시간) / 작업시간
우선순위 (Priority Scheduling)각 프로세스에 우선순위를 부여하여 높은 우선순위의 프로세스를 먼저 실행하는 방식.
기한부 (Deadline Scheduling)프로세스의 기한을 고려하여 기한 내에 완료될 수 있도록 스케줄링하는 방식.
  • 기아현상과 에이징 기법
    • 기아현상(Starvation): 우선순위가 낮은 프로세스가 무한정 기다리는 현상
    • 에이징 기법(Aging) : 기아현상을 해결하기 위한 기법

✅병행 프로세스

병행 프로세스

두 개 이상의 프로세스가 동시에 존재하여 실행 상태에 있는 것

문제점과 해결책

  • 임계 구역: 한 번에 하나의 프로세스만이 접근할 수 있도록 지정된 지역

  • 상호 배체(Mutual Exclusion): 공유 공간을 사용 중일 때 사용하지 못하도록 하는 제어 기법

    • 상호 배제 기법
      1) 데커의 알고리즘(Dekker's Algorithm)
      2) 피터슨의 알고리즘(Peterson's Algorithm)
      3) 다익스트라 알고리즘(Dijkstra Algorithm)
      4) 램포트의 베이커리 알고리즘(Lamport's Bakery Algorithm)
  • 동기화 기법: 하나의 자원에 대한 권한/순서를 조정해주는 기법

    • 세마포어(Semaphore)

      • 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
      • 종류: 계수 세마포어, 이진 세마포어
    • 모니터(Monitor)

      • 프로그래밍 언어 수준에서 동시성을 제어하는 상호 배제 기법

교착상태(Dead Lock)

상호 배제에 의해 나타나는 문제점으로, 여러 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스의 자원을 요구하며 무한정 기다리는 현상

⭐교착상태 발생 조건

  • 상호배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용
  • 점유와 대기(Hold & Wait) : 자원을 점유하면서 다른 프로세스의 자원을 요구
  • 비선점(Nonpreemption) : 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
  • 환형대기(Circular Wait) : 순차적으로 다음 프로세스가 요구하는 자원을 가지고 있는 상태

⭐교착상태 해결 방법

  • 예방 기법(Prevention)
  • 회피 기법(Avoidance) - 은행가 알고리즘
  • 발견 기법(Detection)
  • 회복 기법(Recovery)

✅디스크 스케줄링

하드 디스크에 저장된 데이터에 접근하기 위해 디스크 헤드의 움직임을 최적화하는 기법

디스크 스케줄링 종류

  • FCFS (Frist Come Fist Served)

    • 요청이 들어온 순서대로 처리
  • Shortest Seek Time First(SSTF)

    • 현재 헤드에서 가장 가까운 트랙의 요청을 처리
  • SCAN

    • 헤드가 진행 방향에 있는 요청을 처리하고 반대 방향으로 틀어 반대방향의 요청들을 처리
  • C-SCAN

    • 항상 한 반향에서 반대 방향으로 진행하며 트랙의 요청을 처리
  • LOOK

    • SCAN 기법을 기초로 하며, 진행 방향의 마지막 요청을 처리한 후 반대 방향으로 처리
  • C-Look

    • C-SCAN 기법을 기초로 하며, 한쪽 방향의 요청을 처리한 후 반대쪽 끝으로 이동 후 다시 한쪽 방향으로 처리
  • N-STEP SCAN

    • SCAN 기법을 기초로 하며, 대기 중인 요청을 우선적으로 처리하고, 처리 과정 중 들어오는 요청은 이후 진행 시 처리
  • 에션바흐(Eschenbach)기법

    • 부하가 큰 항공 예약 시스템을 위해 개발된 기법으로, 탐색 시간과 회전 지연 시간을 최적화하는 데 사용

✅리눅스 명령어

chmod 751

  • 사용자(User): 읽기(4)/쓰기(2)/실행(1) = 4 + 2+ 1 = 7
  • 그룹(Group): 읽기(4)/실행(1) = 4 + 1 = 5
  • 기타(Ohter): 실행(1) = 1

이미지 참고 사이트


🛜 네트워크

✅네트워크 토폴로지(Network Topology)

  • 계층형(Tree)
    • 계층적 구조
  • 버스형(Bus)
    • 모든 노드가 중앙 버스 라인에 연결
  • 성형(Star)
    • 모든 노드가 중앙 노드에 연결됨
  • 링형(Ring)
    • 각 노드가 순환 형태로 두 개의 인접 노드와 연결됨
  • 망형(Mesh)
    • 노드들이 서로 광범위하게 연결되어 있음

✅근거리 통신망(LAN, Local Area Network)

여러 대의 텀퓨터와 주변장치가 통신 네트워크를 구성하여 통신하는 망
학교, 건물, 사무실 등 가까운 거리에 한정된 망

LAN 구성 요소

  • NIC(NetWork Interface Card) : LAN 카드
    • 리피터(Repeater): 증폭기 역할
    • 허브(Hub): 케이블 집중 장치
    • 브리지(Bridge): 서로 다른 LAN을 연결
    • 라우터(Router): 서로 다른 네트워크 연결
    • 게이트웨이(GateWay): 서로 다른 통신망 간 메세지 전달

데이터 링크 계층에서 사용되는 비트 지향 프로토콜
FCS를 통해 오류를 검출하고, 순차적인 번호 매김과 확인 응답을 통해 흐름을 제어한다.

HDLC 스테이션

  • 주국(Primary Station): 링크 제어의 책임을 갖고 명령을 내림
  • 종국(Secondary Station): 주국 제어 하에 동작하며 응답만 가능
  • 혼성국(Combined Station): 주국과 종국의 특징을 결합

HDLC 전송 모드

  • 정규 응답 모드(Normal Resoponse Mode, NRM)
    • 일반적으로 하나의 주국과 하나 또는 여러 종국이 있다.
    • 주국은 네트워크에서 통신을 제어하며, 종국은 주국의 지시에만 응답한다.
  • 비동기 균형 모드(Asynchronous Balanced Mode, ABM)
    • 가장 일반적으로 사용되는 HDLC 모드
    • 이 모드에서는 모든 단말이 주국 기능을 수행할 수 있으며, 독립적으로 데이터를 전송하고 수신할 수 있다.
  • 비동기 응답 모드(Asynchronous Response Mode, ARM)
    • 주국이 통신을 제어하지만, 종국도 지체적으로 데이터 전송을 시작할 수 있는 모드

✅⭐데이터 교환 방식

이미지 참조 사이트


✅다중화

하나의 통신 회선을 여러 가입자가 동시에 사용할 수 있게 하는 기능

  • 다중화기 종류
    • 주파수 분할 다중화기(FDM, Frequency Division Multiplexer)
    • 시분할 다중화기(TDM, Time Division Multiplexer)
    • 동기식 / 비동기식 ( 지능형 다중화, 통계적 시분할 )
    • 코드 분할 다중화(CDM, Code Division Multiplexer)
    • 파장 분할 다중화(WDM, Wavelength Division Multiplexing)
    • 공간 분할 다중화(SDM, Space-Division Multiplexing)

역다중화기와 집중화기

  • 역다중화기(Inverse MUX)

    하나의 고속 통신 회선 데이터를 받아 여러 개의 저속 회선으로 나누어 전송

  • 집중화기(Concentrator)

    여러 개의 저속 회선에서 데이터를 버퍼에 축적한 후, 이를 모아서 하나의 고속 회선으로 전송하는 장치


✅인터넷

인터넷

TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크들이 연결된 광범위한 통신만

IP

인터넷에서 컴퓨터나 다른 네트워크 장치를 식별할 수 있는 고유한 번호

이미지 참조 사이트

IPv6 / IPv4 주소 분류

주소 분류IPv4 설명IPv6 설명
유니캐스트 (Unicast)단일 송신자와 단일 수신자 간의 통신단일 송신자와 단일 수신자 간의 통신
멀티캐스트 (Multicast)단일 송신자와 다중 수신자 간의 통신단일 송신자와 다중 수신자 간의 통신
브로드캐스트 (Broadcast)같은 네트워크의 모든 장비에게 보내는 통신
애니캐스트 (Anycast)그룹 내 가장 가까운 수신자에게 전달

⭐IP 주소 클래스

클래스옥텟 IP최상 비트호스트 수네트워크 수용도
A0.0.0.0 ~ 127.255.255.2550약 16,777,214128대규모 네트워크
B128.0.0.0 ~ 191.255.255.25510약 65,53416,384중규모 네트워크
C192.0.0.0 ~ 223.255.255.2551102542,097,152소규모 네트워크
D224.0.0.0 ~ 239.255.255.2551110N/AN/A멀티캐스트
E240.0.0.0 ~ 255.255.255.2551111N/AN/A연구 및 실험용 (예약)

✅서브넷(Subnet)

하나의 큰 네트워크를 더 작은 네트워크로 분할한 것

서브네팅(Subnetting)

하나의 IP 네트워크를 더 작은 네트워크 영역으로 나누는 과정

서브넷 마스크(Subnet Mask)

IP 주소에서 네트워크 부분과 호스트 부분을 구분하는 데 사용


✅ IP 기타기술

NAT(NetWork Address Translation)

도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 시스템

QOS(Quality of Service)

네트워크 자원을 효율적으로 사용하여 특정 트래픽의 성능과 속도를 보장하는 기술

VPN(Virtual Private Network)

공용 네트워크를 통해 사설 네트워크에 안전하게 접속할 수 있게 하는 기술

DHCP(Dynamic Host Configuration Protocol)

네트워크 장치에 자동으로 IP 주소를 할당하는 프로토콜


✅프로토콜

컴퓨터나 통신 장비 간 원활한 데이터 교환을 위한 표준화된 통신 규약

통신 프로토콜의 기본요소

  • 구문(Syntax): 데이터의 형식, 부호화, 신호 레벨
  • 의미(Semactics): 정보 전송을 위한 협조 사항 및 오류 관리 제어 정보
  • 타이밍(Timing): 통신 속도, 메세지 순서 제어

프로토콜의 기능

  • 단편화의 재결합(Fragmentation and Reassembly)
  • 캡슐화(Encapsulation)
  • 흐름제어(Flow Control)
  • 오류제어(Error Control)
  • 혼잡제어(Congestion Control)
  • 동기화(Synchronization)
  • 순서 제어(Sequence Control)
  • 주소 지정(Addressing)
  • 다중화(Multiplexing)
  • 경로 제어(Path Control)

✅흐름제어와 오류제어

흐름제어

수신측의 처리 능력에 맞춰 송신측에서 데이터의 전송량이나 속도를 조절하는 기능

  • Stop and Wait
    • 각 패킷 전송 후 확인 응답을 받고 나서 다음 패킷을 전송
  • Sliding Window
    • 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 패킷을 연속적으로 전송

오류제어

전송 중에 발생하는 오류를 검출하고 정정하는 기능, ARQ를 사용하여 재전송 기반 오류 제어를 수행

  • Stop and Wait ARQ

    • 데이터 전송 후, 수신측으로부터의 확인 응답을 받을 때까지 대기하고, 그 후에 다음 데이터를 전송하는 방식
  • Go Back N ARQ

    • 오류가 발생한 지점부터 모든 데이터를 재전송하는 기법
  • Selective Repeat ARQ

    • 오류가 발생한 프레임만 송신측이 재전송
  • Adaptive ARQ

    • 전송 효율을 최대화하기 위해 데이터 프레임의 길이를 동적으로 조장하는 방식

✅ 전송 오류 제어 방식

전진 오류 수정(FCE, Forward Error Correction)

수신측에서 재전송 요구 없이 스스로 오류를 검출하고 수정하는 방식

  • 종류: 해밍 코드(Hamming Code), 상승 코드(Read-Solomon Code) 등

후진 오류 수정(BEC, Backward Error Correction)

오류 발견 시 송신측에 재전송을 요구하는 방식

  • 종류: 패리티 검사(Paroty Check), CRC(Cycic Redundancy Check), 블록 합(Block Sum)방식을 통해 오류 검출

✅ OSI 7계층

네트워크 프로토콜 디자인과 통신을 7개의 계층으로 나누어 설명하는 모델

OSI 7계층 구조 (응.표.세.전.네.데.물)

이미지 참고 사이트

계층특징PDU장비
1) 물리 계층데이터를 전기적 신호로 변환하여 전송통신 케이블, 랜카드, 리피터, 허브
2) 데이터 링크 계층포인트 투 포인트의 신뢰성 있는 데이터 전송 보장프레임스위치, 브리지
3) 네트워크 계층데이터를 목적지까지 라우팅패킷라우터, L3 스위치
4) 전송 계층양 종단 간 신뢰성 있는 데이터 전송 책임세그먼트/데이터그램TCP, UDP
5) 세션 계층양 끝단의 응용 프로세스 간 통신 관리
6) 표현 계층다른 데이터 표현 형식 간 변환 담당
7) 응용 계층사용자 인터페이스, 응용 프로그램 간 통신 관리

✅ TCP/IP

현재 인터넷에 널리 사용되는 프로토콜 모델

TCP/IP 4계층 구조

OSI 7계층TCP/IP 계층4계층 프로토콜
응용계층응용계층TCP - HTTP(80), FTP(20, 21), SMTP(25),TELNET(23) UDP - DNS(53), SNMP(161, 162), DHCP(67)
표현계층
세션 계층
전송 계층전송 계층TCP, UDP
네트워크 계층인터넷 계층IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층네트워크 인터페이스 계층Ethernet, X.25, RS-232C, Wi-Fi
물리 계층

프로토콜

프로토콜설명
TCP 프로토콜
HTTP하이퍼 텍스트 문서 전송을 위한 프로토콜 - 80 포트 사용
FTP파일 전송에 사용되는 프로토콜 - 데이터 20바이트, 제어 21번
SMTP이메일 전송에 사용되는 프로토콜 - 25 포트 사용
UDP 프로토콜
DNS도메인 이름을 IP 주소로 변환 - 53 포트 사용
SNMP장비 관리
DHCPIP 주소 자동 할당 및 관리 프로토콜

✅ 라우팅 프로토콜

네트워크에서 데이터 패킷의 경로 설정(Path Determination)과 스위칭(Switching)을 담당하는 장비

  • RIP (Routing Information Protocol)
  • OSPF (Open Shortest Path First)
  • IGRP (Interior Gateway Routing Protocol)
  • BGP (Border Gateway Protocol)

🔒 정보보안

✅정보보안 요소

  • 기밀성(Confidentiality) : 인가된 사용자만 정보에 접근
  • 무결성(Integrity) : 인가된 사용자에 의해서만 정보 변경
  • 가용성 (Availablility) : 정보 자산에 언제든지 접근
  • 인증 (Authentication) : 사용자가 허가받은 사용자인지 확인
  • 부인방지 (Non-repudiation) : 정보 전송을 부인할 수 없도록 하는 것

✅인증제도

1) ISMS(정보보호 관리체계 인증) (Information Security Mangment System)
2) PIMS(개인정보보호 관리체계) (Personal Information Mangment System)
3) ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
4) ITSEC(Information Technology Security Evaluation Criteria)
5) CC(Common Criteria)


✅암호 알고리즘

  • 평문(Paintext) : 해독 가능한 형태의 메시지
  • 암호문(Cipertext): 해독 불가능한 형태의 메세지
  • 암호화(Encryption): 평문을 암호문으로 변환하는 과정
  • 복호화(Decryption) : 암호문을 평문으로 변환하는 과정
  • 전자서명: 인터넷상에서 본인임을 증명하기 위해 서명을 하는 수단
  • 양방향 암호화 : 평문 <-> 암호화
  • 단방향 암호화 : 평문 <-> 암호화

✅⭐대칭키 암호(Symmetric key)

암호화와 복호화에 동일한 키를 사용하는 암호화 빙식

블록암호 알고리즘

알고리즘블록 크기키 길이특징
DES64비트56비트오래된 알고리즘, 안전성 문제로 사용 감소
3-DES64비트112/168비트2개의 키,DES의 개선판, 세 번 암호화 (암호 -> 복호 -> 암호)
AES128비트128/192/256비트DES 한계 극복 미국, 현재 가장 많이 사용되는 알고리즘
SKIPJACK64비트80비트미국 정부의 비밀 암호 알고리즘
IDEA64비트128비트스위스, 강력한 보안성, 오래된 알고리즘
SEED128비트128비트한국에서 개발된 블록 암호
ARIA128비트128/192/256비트한국의 표준 암호 알고리즘
LEA128비트128/192/256비트경량 블록 암호, IoT에 적합

스트림암호 알고리즘

알고리즘특징
LFSR선형 피드백 시프트 레지스터를 사용, 빠르고 간단한 구현
RC4고속 스트림 암호, 키 스트림 생성 방식, 다양한 프로토콜에서 사용
A5GSM 통신에서 사용되는 스트림 암호, 64비트 키 사용

✅⭐비대칭키 암호

암호화와 복호화에 서로 다른 키를 사용하는 방식

구분알고리즘 이름특징
소인수 분해RSA가장 대표적인 공개키 암호 알고리즘 (두 개의 큰 소수의 곱 기반)
Rabin소인수 분해 문제에 기반하며, 암호화와 서명에 사용 가능, RSA보다 빠르다.
이산 대수DSA미국 전자서명 표준, 디지털 서명 생성에 최적화된 알고리즘
Diffie-Hellman키 관리 센터 없이 공개키를 전달하는 데 사용
ElGamal같은 평문으로부터 다른 암호문 생성이 가능한 암호 알고리즘
타원 곡선ECC타원 곡선상의 이산대수 문제를 이용한 암호화 방식

✅단방향 암호화

해시를 이용한 암호화 과정

해시 함수 종류

해시 함수 종류출력 길이특징
MD5128비트빠른 속도를 가진 해시 함수, 충돌 취약성 문제로 보안에 적합하지 않음 [20년 1회]
SHA160비트안전한 해시 알고리즘, 다양한 변형(SHA-1, SHA-2 등) 존재 미국 (NTS)에의해 개발됨
HAS-160160비트SHA-1을 기반으로 한 해시 함수, 보안 강도가 중간 정도, 한국에서 개발함

암호화적 해시 함수의 결점

결점설명
무차별 대입 공격 (Brute Force Attack)모든 가능한 입력 값을 시도하여 해시 값을 찾는 공격 방식
레인보우 테이블 공격 (Rainbow Table Attack)미리 계산된 해시 값과 입력 값의 쌍을 사용하여 해시 값을 역추적하는 공격 방식

✅인증

인증

로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차

⭐인증유형

인증 유형설명
지식 기반 인증사용자가 알고 있는 정보를 기반으로 인증 (예: 비밀번호)
소유 기반 인증사용자가 소유하고 있는 물리적 장치를 기반으로 인증 (예: 스마트 카드, OTP 생성기)
생체 기반 인증사용자의 생체 정보를 기반으로 인증 (예: 지문, 얼굴 인식)
위치 기반 인증사용자의 위치 정보를 기반으로 인증 (예: 특정 지역에서만 접근 허용)
행동(행위) 기반 인증사용자의 행동 패턴을 기반으로 인증 (예: 타이핑 속도, 마우스 이동)

⭐인증방식

인증 방식설명
계정 정보 요청 헤더인증 정보를 요청 헤더에 포함하여 전송하는 방식
Cookie 방식서버가 클라이언트에 쿠키를 저장하고 이를 통해 인증 상태를 유지하는 방식
Session 방식서버에서 세션 ID를 생성하고 클라이언트에 전달하여 인증 상태를 관리하는 방식
토큰 기반 인증인증 후 발급된 토큰을 사용하여 접근을 제어하는 방식 (예: JWT, JSON Web Token)
OAuth제3자 인증을 통해 자원에 대한 접근을 제어하는 방식 (이용자의 웹서비스에 대한 제한된 접근 권한 부여)
SSO (Single Sign-On)한 번의 로그인으로 여러 서비스에 접근할 수 있도록 하는 방식
커버로스Kerberos 프로토콜을 이용한 인증 방식으로, 티켓을 사용하여 인증을 수행
아이핀 (i-PIN)개인 식별 번호를 통해 온라인 서비스에서 인증을 수행하는 방식

✅접근 통제

접근 통제 과정
1) 식별(Identification) : ID를 확인하는 과정
2) 인증(Authentication) : 패스워드가 정확한지 확인
3) 인가(Authorization) : 권한을 부여

⭐접근 통제 정책

정책MACDACRBAC
권한 부여시스템데이터 소유자중앙관리자
접근 결정보안등급(Label)신분(Identity)역할(Role)
정책 변경고정적(변경 어려움)변경 용이변경 용이
장점안정적, 중앙 집중적구현 용이, 유연함관리 용이

접근 통제 모델

접근 통제 모델설명
벨-라파둘라 모델(Bell-LaPadula Model)기밀성 유지에 중점을 두고, 높은 기밀성 레벨의 정보로부터 낮은 레벨의 사용자가 접근하는 것을 방지.
비바 모델(Biba Model)무결성 유지에 중점을 두고, 낮은 무결성 레벨의 정보로부터 높은 레벨의 사용자가 접근하는 것을 방지.
클락-월슨 모델(Clark-Wilson Model)무결성을 보장하기 위해 인증된 트랜잭션을 사용하며, 비즈니스 규칙을 기반으로 접근을 제어.
만리장성 모델(Chinese Wall Model)데이터의 무결성을 보호하기 위해 사용자가 특정 데이터에 접근할 수 있는지를 결정하는 방식.

✅보안 프로토콜

보안 프로토콜설명포트동작 모드프로토콜
SSH (Secure Shell Protocol)원격 호스트에 접속하기 위한 보안 프로토콜22번 포트
SSL (Secure Socket Layer)웹 브라우저와 웹 서버 간 안전한 데이터 전송을 위한 프로토콜443 포트
TLS (Transport Layer Security)전송 계층 보안을 위해 개발된 프로토콜
IPSecIP 계층(네트워크 계층)을 안전하게 보호하기 위한 기법전송 모드, 터널 모드AH, ESP, IKE
S-HTTP (Secure HTTP)웹상에서 네트워크 트래픽을 암호화하기 위한 방법
RedSecRADIUS 데이터를 TCP나 TLS를 이용하여 전송하기 위한 프로토콜

✅서비스 공격 유형

DoS(Denial of Service) 공격

대상 시스템이 정상적인 서비스를 수행하지 못하도록 만드는 공격

⭐Dos 공격 유형

공격 유형설명
Smurf AttackICMP 패킷을 이용해 네트워크 장비를 반사하여 공격
Ping of Death큰 크기의 ICMP 패킷을 보내 시스템을 충돌시키는 공격
Land Attack동일한 IP 주소와 포트를 이용해 패킷을 전송하여 시스템을 마비
Teardrop Attack잘못된 패킷 조각을 보내 시스템의 메모리를 소모시키는 공격
SYN FloodingTCP 연결 설정 과정에서 SYN 패킷을 과도하게 보내 서비스 중단
UDP FloodingUDP 패킷을 대량으로 보내 대역폭을 소모시키는 공격
Ping FloodingICMP Echo Request를 대량으로 보내 서비스 중단

📃ICMP: TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제( 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제)를 알려주는 프로토콜이다.

⭐DDoS(Distributed Denial of Service attack) 공격

분산된 다수의 좀비 PC를 이용하여 공격 대상 시스템의 서비스를 마비시키는 형태

DDoS 공격 툴의 종류

  • 트리누(Trinoo) : UDP 데이터 패킷을 사용하여 대량의 트래픽을 생성
  • TFN(Tribal Flood Network) : 다양한 공격 기법을 지원
  • 슈타첼드라트(Stacheldrht) : 트리누와 TFN의 특징을 결합

✅해킹 기법

해킹 기법설명
바이러스스스로를 복제하여 다른 파일에 감염시키는 악성 코드
네트워크를 통해 스스로 복제하여 전파되는 악성 코드
트로이 목마유용한 프로그램으로 가장하지만 악성 코드를 포함
루트킷시스템에 몰래 설치되어 권한을 상승시키고 숨기는 소프트웨어
XSS (교차 사이트 스크립팅)웹 페이지에 악성 스크립트를 삽입하여 사용자 정보를 탈취
SQL injection데이터베이스 쿼리에 악성 코드를 삽입하여 정보 탈취
피싱신뢰할 수 있는 기관으로 가장하여 개인 정보를 탈취
랜섬웨어파일을 암호화하여 금전을 요구하는 악성 소프트웨어
스니핑네트워크 트래픽을 몰래 감청하여 정보를 수집하는 기법
패스워드 크래킹암호를 해독하여 시스템에 접근하는 기법
포트 스캐닝열린 포트를 탐색하여 취약점을 찾는 기법
세션 하이재킹사용자의 세션을 가로채어 불법적으로 접근하는 기법
버퍼 오버플로우메모리 버퍼의 경계를 초과하여 데이터를 덮어쓰는 공격
ARP 스푸핑ARP 프로토콜을 이용해 네트워크에서 패킷을 가로채는 기법
드로퍼다른 악성 코드를 설치하기 위해 사용되는 프로그램
MITM (중간자 공격)통신 중간에서 데이터를 가로채거나 변조하는 공격
코드 인젝션악성 코드를 삽입하여 시스템을 조작하는 기법
DDoS 공격여러 시스템에서 동시에 공격하여 서비스 중단
QshingQR 코드로 악성 링크 유도 또는 악성 코드 설치
Nucking특정 IP 주소에 대량 패킷 전송
스파이웨어사용자 동의 없이 정보 수집
사회공학인간 심리 이용 공격
Evil Twin Attack가짜 WiFI API 공격
CSRF사용자 의도와 무관한 행위 강요
Backdoor정상 인증 없이 시스템 접근
블루투스 공격Bulebug(연결 취약) / BlueSnarf(장비 접근) / BluePrinting(장비 탐색), Blueacking(익명 메세지)
Honeypot공격자 유인 시스템
인포데믹스잘못된 정보 확산
다크데이터분석되지 않은 대량 데이터
킬 스위치정보기기 데이터 원격 삭제
트러스트존중요 정보 보호 위한 독립 보안 구역

🧩신기술 용어

✅서비스 유형

⭐서비스 유형

  • lasS: 인프라 제공 (서버, 스토리지)
  • PasS: 개발 플랫폼 제공 (개발 도구)
  • SaaS: 소프트웨어 제공 (웹 애플리케이션)
서비스 유형정의주요 특징
IaaS클라우드에서 서버, 스토리지, 네트워크 등의 IT 인프라 자원을 제공.사용자에게 하드웨어 리소스를 직접 관리할 수 있는 권한을 부여.
PaaS소프트웨어 개발 및 배포를 위한 플랫폼을 제공.개발자가 애플리케이션을 쉽게 만들고 배포할 수 있도록 도와주는 도구와 서비스를 포함.
SaaS인터넷을 통해 소프트웨어를 제공하고 사용자가 필요할 때 이용할 수 있게 함.소프트웨어 설치 없이 웹 브라우저를 통해 서비스에 접근 가능.
  • BasS: 블렉체인 기술 응용 서비스 개발/관리 지원
  • SecaaS: 클라우드 시스템 보안 서비스 제공
  • DaaS: 인터넷 연결 시 기업 내부망 접속 가능. 가상 데스크톱 제공
  • FasS: 애플리케이션 기능을 서비스 형태로 등록, 특정 이벤트 발생 시 실행

✅도커(Docker)

컨테이너 응용 프로그램 배포 자동화
애플리케이션을 컨테이너라는 독립적인 실행 환경에서 개발, 배포 및 실행할 수 있게 해주는 플랫폼


✅클라이언트 측 웹 프레임워크

프레임워크정의
React사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리로, 컴포넌트 기반 개발을 지원합니다.
Vue.js진입 장벽이 낮고 유연성이 높은 JavaScript 프레임워크로, 단일 페이지 애플리케이션(SPA) 개발에 적합합니다.
AngularJS구글에서 개발한 프레임워크로, MVC 아키텍처를 기반으로 하여 복잡한 웹 애플리케이션 구축을 지원합니다.
Node.js서버 측 JavaScript 실행 환경으로, 비동기 이벤트 기반 프로그래밍을 지원하여 빠른 웹 애플리케이션 개발이 가능합니다.
Ajax (Asynchronous JavaScript and XML)클라이언트와 서버 간의 비동기 통신을 가능하게 하여 웹 페이지의 부분 업데이트를 지원합니다.

✅REST

자원(Resource)을 이름(URL)으로 구현하여 상태(정보)를 주고 받는형식, ROA(Resource Oriented Architecture) 기반

REST 구성 요소

  • 자원(Resource): 웹 자원, HTTP, URL로 표현
  • 행위(Verb): HTTP 메서드(GET,POST,PUT,DELETE 등)로 표현
  • 내용(Repersentations): HTTP 메세지 페이로드에 담김

REST API

REST 원리를 따르는 웹 서비스 통신 인터페이스

RESTful

REST의 원리를 따르는 시스템


✅SOA(Service Oriented Architecture)

다양한 비지니스 환경에서 서비스를 유연하게 재사용하고 재조립할 수 있도록 지원하는 구조, SOAP(Simple Object Access Protocol)기술을 통해 구현

SOA 구성 요소

  • 서비스 브로커: 서비스 저장 및 관리, 검색 엔진 제공
  • 서비스 제공자: 서비스 제공 및 결과 제공
  • 서비스 소비자: 서비스 사용

⭐SOA 핵심기술

  • 데이터 교환: XML, 인터넷 데이터 교환 기술
  • 미들웨어: ESB, 메세징을 통해 시스템 연결
  • 서비스 호출: SOAP, XML 기반 분산 환경 정보 교환
  • 서비스 기록: WSDL, Web Service 기능 및 사용법 기술
  • 서비스 등록: UDDL, 인터넷상 Web Service 정보 등록 및 검색

시맨틱 웹(Semantic Web)

  • 컴퓨터가 인터넷 정보를 이해하고 해석하도록 메타데이터를 추가
  • XML 기반 RDF, OWL, SWPL 언어 사용

온톨로지(Ontology)

  • 컴퓨터가 이해할 수 있는 지식 모델
  • 정보 시스템에서 자원의 개념을 정의하고 검색 정확도를 높임
  • 구성: 클래스, 인스턴스, 속성, 관계

✅기타 용어 정리

용어설명
블록체인데이터를 안전하게 저장하고 관리하는 분산형 데이터베이스 기술로, 거래 기록을 블록에 담아 체인 형태로 연결하여 위변조를 방지합니다.
비트코인최초의 분산형 디지털 화폐로, 블록체인 기술을 기반으로 하여 중앙 기관 없이 개인 간의 거래를 가능하게 합니다.
메시업서로 다른 API를 결합하여 새로운 서비스를 만드는 기술로, 다양한 데이터와 기능을 통합하여 혁신적인 애플리케이션을 개발합니다.
메타버스가상 현실(VR)과 증강 현실(AR)을 포함하는 디지털 공간으로, 사용자들이 상호작용하며 다양한 경험을 제공하는 플랫폼입니다.
코드 커터족전통적인 케이블 TV 구독을 중단하고 인터넷 기반 스트리밍 서비스를 이용하는 소비자 그룹을 의미합니다.
핀테크금융 서비스와 기술의 융합으로, 모바일 결제, 온라인 대출, 자산 관리 등 다양한 혁신적인 금융 서비스를 제공합니다.
포스퀘어위치 기반 소셜 네트워킹 서비스로, 사용자들이 자신의 위치를 공유하고, 추천 정보를 제공받을 수 있는 플랫폼입니다.
디지털 발자국개인이 인터넷에서 남긴 흔적이나 데이터로, 온라인 활동에 의해 생성된 정보의 총체를 의미합니다.
노모포비아스마트폰이 없거나 사용하지 못할 경우 느끼는 불안감을 의미하며, 현대인의 스마트폰 의존성을 나타내는 용어입니다.
소셜 다이닝소셜 미디어를 활용하여 식사 경험을 공유하거나 함께하는 사람들과 연결되는 Dining 경험을 말합니다.
디지털 포렌식디지털 장치에서 증거를 수집하고 분석하는 과정을 의미하며, 범죄 수사나 법적 절차에서 중요한 역할을 합니다.
위치기반 SNS사용자의 현재 위치를 기반으로 정보를 공유하고 소통하는 소셜 네트워크 서비스입니다.
디지털 프로슈머디지털 환경에서 정보 수집 및 구매 결정을 하는 소비자를 의미하며, 제품이나 서비스에 대한 리뷰와 추천을 활용합니다.
크리슈머소비자가 상품이나 서비스의 제작 과정에 직접 참여하거나 영향을 미치는 현상을 의미합니다.
인포러스트정보와 지식의 흐름을 관리하고 분석하는 데 중점을 둔 조직이나 시스템을 의미합니다.
커넥티드 카인터넷에 연결된 자동차로, 다양한 디지털 서비스와 기능을 제공하며, 차량의 성능 및 안전성을 향상시킵니다.
웨버홀리즘인터넷과 디지털 콘텐츠에 대한 과도한 의존을 나타내며, 온라인 활동이 일상생활에 미치는 영향을 강조하는 개념입니다.

✅네트워크 신기술 용어

용어설명
사물 인터넷 (IoT, Internet of Things)다양한 사물들이 인터넷에 연결되어 데이터를 수집하고 교환하는 기술입니다.
M2M (Machine to Machine)기계 간의 직접적인 통신을 통해 데이터를 전송하고 처리하는 기술입니다.
저전력 블루투스 (BLE, Bluetooth Low Energy)저전력으로 작동하는 블루투스 기술로, 주로 IoT 기기에서 사용됩니다.
지그비 (Zigbee)저전력, 저속의 무선 통신 기술로, 주로 홈 자동화 및 IoT 응용에 사용됩니다.
지능형 초연결망 (5G, 5th Generation Network)초고속, 초저지연의 모바일 통신망으로, 다양한 디지털 서비스와 IoT 기기를 지원합니다.
애드 혹 네트워크 (Ad Hoc Network)사전 설정 없이 임시로 구성된 네트워크로, 장치 간의 직접적인 연결을 통해 데이터 전송이 이루어집니다.
메시 네트워크 (Mesh Network)각 장치가 서로 연결되어 정보를 전달하는 네트워크 구조로, 신뢰성과 범위를 향상시킵니다.
이동 컴퓨팅 (Mobile Computing)이동 중에도 컴퓨터와 인터넷을 사용할 수 있는 기술로, 모바일 기기를 통해 이루어집니다.
지능형 전력망 (Smart Grid)전력망에 정보 통신 기술을 접목하여 효율적이고 안전한 전력 관리 시스템입니다.
스마트 그리드 (Smart Grid)전력 생산, 분배, 소비를 최적화하기 위해 IT 기술을 활용한 전력망입니다.
와이-선 (Wi-Fi, Wireless Fidelity)무선 LAN 기술로, 고속 인터넷 접속을 제공합니다.
데이터 중심 네트워크 (Data-Centric Network)데이터의 흐름과 저장을 중심으로 설계된 네트워크 구조입니다.
피코넷 (Piconet)Bluetooth 기술을 활용하여 형성된 소규모 무선 네트워크입니다.
초 광대역 기술 (UWB, Ultra Wideband)매우 넓은 대역폭을 이용하여 고속 데이터 전송이 가능한 무선 통신 기술입니다.
자동 구성 네트워크 (SON, Self-Organizing Network)네트워크 장치가 자동으로 구성되고 최적화되는 기술입니다.
지리 정보 시스템 (GIS, Geographic Information System)지리적 데이터를 수집, 저장, 분석 및 시각화하는 시스템입니다.
USN (Ubiquitous Sensor Network)다양한 센서가 상시 연결되어 정보를 수집하는 네트워크입니다.
무선 사설망 (WPAN, Wireless Personal Area Network)개인용 장치 간의 근거리 무선 통신을 위한 네트워크입니다.
파장 분할 다중화기 (WDM, Wavelength Division Multiplexing)여러 개의 신호를 서로 다른 파장을 통해 하나의 광섬유에서 전송하는 기술입니다.
가상 시설 통신망 (VPN, Virtual Private Network)공용 네트워크를 통해 개인의 사설 네트워크를 안전하게 연결하는 기술입니다.
MQTT (Message Queuing Telemetry Transport)경량 메시지 전송 프로토콜로, IoT 기기 간의 통신에 주로 사용됩니다.
엔-스크린 (Any-Screen)다양한 화면에서 콘텐츠를 접근하고 소비할 수 있는 기술입니다.
가상랜 (VLAN, Virtual Local Area Network)물리적 네트워크를 논리적으로 분할하여 서로 다른 네트워크를 구성하는 기술입니다.
IMS (IP Multimedia Subsystem)IP 기반으로 음성, 영상, 메시징 서비스를 제공하는 시스템입니다.

✅데이터베이스 신기술 용어

용어설명
빅데이터 (Big Data)대량의 데이터 집합으로, 전통적인 데이터베이스 관리 시스템으로는 처리하기 어려운 데이터를 의미합니다.
정형 데이터 (Structured Data)미리 정의된 형식으로 저장된 데이터로, 관계형 데이터베이스에서 쉽게 검색되고 분석할 수 있습니다.
비정형 데이터 (Unstructured Data)형식이 없거나 불규칙한 데이터로, 텍스트, 이미지, 비디오 등 다양한 형태로 존재합니다.
메타데이터 (Metadata)데이터에 대한 데이터로, 데이터의 속성, 출처, 생성 시간 등을 설명하는 정보를 포함합니다.
데이터 웨어하우스 (Data Warehouse)여러 출처에서 데이터를 통합하여 분석 및 보고를 위한 중앙 저장소로 사용하는 시스템입니다.
데이터 마트 (Data Mart)특정 비즈니스 부문 또는 주제에 대한 데이터를 저장하는 소규모 데이터 웨어하우스입니다.
데이터마이닝 (Data Mining)대량의 데이터에서 유용한 정보를 추출하고 패턴을 발견하는 과정입니다.
텍스트 마이닝 (Text Mining)비정형 텍스트 데이터에서 의미 있는 정보를 추출하는 기술로, 자연어 처리 기법을 활용합니다.
하둡 (Hadoop)대량의 데이터를 저장하고 처리하기 위한 오픈소스 프레임워크로, 분산 컴퓨팅 환경에서 작동합니다.
Sqoop (Sqoop)관계형 데이터베이스와 하둡 간의 데이터 전송을 위한 도구로, 대량의 데이터를 효율적으로 가져오거나 내보낼 수 있습니다.
맵리듀스 (MapReduce)대량의 데이터를 병렬로 처리하기 위한 프로그래밍 모델로, 하둡의 핵심 구성 요소 중 하나입니다.
타조 (Tajo)대규모 데이터 분석을 위한 분산형 SQL 쿼리 엔진으로, 하둡 및 다른 데이터 소스에서 데이터를 처리합니다.
R (R)통계 분석과 데이터 시각화를 위한 프로그래밍 언어로, 데이터 과학 분야에서 널리 사용됩니다.
OLAP (Online Analytical Processing)다차원 데이터 분석을 지원하는 기술로, 대규모 데이터 집합에 대한 신속한 쿼리를 가능하게 합니다.
NoSQL (NoSQL)전통적인 관계형 데이터베이스가 아닌 다양한 데이터 저장 방식(문서, 키-값, 그래프 등)을 지원하는 데이터베이스 시스템입니다.

✅소프트웨어 공학 관련 용어

용어설명
브룩스의 법칙 (Brooks' Law)"늦어진 프로젝트에 인력을 추가하면 더 늦어진다"는 원칙으로, 프로젝트 관리에서 인력 추가의 부작용을 설명합니다.
파레토 법칙 (Pareto Principle)"80/20 법칙"으로, 결과의 80%가 원인의 20%에서 발생한다는 원칙입니다.
롱테일 법칙 (Long Tail Theory)소수의 인기 제품보다는 많은 수의 비인기 제품이 전체 매출에 기여할 수 있다는 개념입니다.
Boehm의 법칙 (Boehm's Law)소프트웨어 개발 과정에서 요구사항 변경이 비용을 증가시킨다는 원칙으로, 초기 단계에서의 요구사항 정의의 중요성을 강조합니다.
무어의 법칙 (Moore's Law)반도체 집적 회로의 성능이 18개월마다 두 배로 증가한다는 예측으로, 기술 발전의 속도를 설명합니다.
DRY 원칙 (DRY Principle)"Don't Repeat Yourself"의 약자로, 중복을 피하고 재사용성을 높여 코드의 품질을 개선하는 원칙입니다.
YAGNI 원칙 (YAGNI Principle)"You Aren't Gonna Need It"의 약자로, 필요하지 않은 기능을 미리 구현하지 말라는 원칙입니다.
profile
매일매일 틀깨기

0개의 댓글