흥달쌤 유튜브 라이브를 보고 다시 한번 복습하며 정리한 내용으로, 제가 정리한 부분도 있어 틀린 부분이 있을 수도 있습니다.
혹시 잘못된 부분이나 보완할 점이 있다면, 댓글로 자유롭게 알려주시면 감사하겠습니다 🙇♂️🙇♂️
후보키 | 기본키로 사용 가능한 속성 집합, 유일성/ 최소성을 만족 |
기본키 | 후보키 중 하나를 선택, NULL 불가, 중복 불가 유일성/ 최소성 만족 |
대체키 | 후보키가 2개 이상일 때, 기본키로 선택되지 않은 나머지 후보키, 유일성/최소성 만족 |
슈퍼키 | 유일성은 만족하지만 최소성은 만족 불가 |
외래키 | 다른 릴레이션의 기본키를 참조하는 속성 |
무결성 제약조건
- 개체 무결성 : 기본키는 중복되지 않고, NULL 값을 가질 수 없다.
- 참조 무결성 : 외래키는 NULL 이거나, 참조 릴레이션의 기본키와 일치해야 한다.
- 도메인 무결성 : 모든 속성 값은 정의된 도메인에 속해야 한다.
- 고유 무결성 : 특정 속성 값은 중복되지 않고 유일해야 한다.
- 릴레이션 무결성 : 삽입, 삭제, 갱신 등의 연산은 릴레이션의 무결성을 해치지 않아야 한다.
트랜잭션 - 하나의 일 처리 단위
ACID
원자성 (Atomicitiy) - 모두 반영되거나, 모두 반영되지 않아야 한다 / COMMIT, ROLLBACK의 영향을 받음
일관성 (Consistency) - 트랜잭션이 종료되면 일관된 상태를 유지해야 함
독립성, 경리성( Isolation) - 다른 트랜잭션이 영향을 미치면 안됨
영속성 (Durability) - 트랜잭션이 완료되면, 결과는 영구히 보존되어야 함
COMMIT/ROLLBACK
COMMIT - 트랜잭션의 변경 내용을 확정해서 DB에 반영
ROLLBACK - 트랜잭션의 변경 내용을 취소해서 이전 상태로 복원
부분완료상태 - 트랜잭션 수행 중, 아직 반영되지 않은 상태
정규화
정규화를 하는 이유 - 데이터를 잘게 나누어 중복을 제거
이상현상 - 삽입, 삭제, 갱신
- 제1정규형(1NF) - 도메인이 원자값
- 제2정규형(2NF) - 부분 함수 종속 제거
- 제3정규형(3NF) - 이행적 함수 종속 제거
- 보이스/코드 정규형(BCNF) - 모든 결정자가 후보키가 되어야 함
- 제4정규형(4NF) - 다치 종속 제거
- 제5정규형(5NF) - 조인 종속 제거
반정규화
정규화된 데이터를 의도적으로 중복시켜 → 성능 향상, 개발/운영 편의성 도모
데이터베이스 설계 단계
1. 요구 조건 분석 | |
2. 개념적 설계 | E-R 다이어그램 |
3. 논리적 설계 | 목표에 맞는 DBMS에 맞는 설계 정규화 트랜잭션 인터페이스 설계 |
4. 물리적 설계 | 특정 DBMS에 맞는 설계 물리적 구조, 저장 구조, 데이터 타입의 특지,인덱스 등을 고려 |
구현 |
3계층 스키마
외부 스키마 - 개념 스키마 - 내부 스키마 - 데이터베이스
외부 스키마 - 사용자가 보는 관점
개념 스키마 - 데이터베이스의 전체적인 구조와 제약조건
내부 스키마 - 전체적인 입장에서 본 것
논리적 독립성 - 외부스키마와 개념 스키마 사이에 존재, 개념스키마가 변경되어도 외부 스키마에 영향 X
물리적 독립성 - 개념스키마와 내부 스키마 사이에 존재, 내부스키마가 변경되어도 개념 스키마나 내부 스키마에 영향 X
정보 보안 요소
- 기밀성 : 정보의 암호화
- 무결성 : 인가된 사용자만 변경
- 가용성 : 언제든지 접근
- 인증 : 사용자의 신원 확인
- 부인방지 / 부인봉쇄 : 정보 전송 부인 방지
AAA
- 인증 (Authentication) - 사용자의 신원 확인
- 권한 부여 (Authorization) - 사용자에게 권한 부여 / 제한
- 계정 관리 (Accounting) - 사용 내역 기록
인증
- 지식 기반 : 아이디/비밀번호
- 소유 기반 : OTP, 신분증
- 생체 기반 : 지문, 홍채, 얼굴 인식
- 행위 기반 : 서명, 동작패턴
인증방식
- OAuth : 다른 서비스에 접근할 수 있도록 돕는 인증 프로그램
- SSO : 한 번의 로그인으로 여러 서비스에 자동으로 인증되는 방식
- 아이핀 : 주민등록번호 대체 수단
접근 통제
- 강제적 접근 통제(MAC) - 등급
- 임의적 접근 통제(DAC) - 신원/신분
- 역할 기반 접근 통제(RBAC) - 역할
병행제어를 하지 않았을 때의 문제점
- 갱신 분실
- 비완료 의존성
- 모순성
- 연쇄복귀
병행 제어 기법
- 로킹(Locking) - 트랜잭션이 자원을 사용하는 동안 다른 트랜잭션의 접근을 막음
- 2단계 로킹 규약(Two-Phase Locking Protocol) - 확장 & 축소 단계를 가지고 있음
- 타임 스탬프(Time Stamp) - 트랜잭션마다 시간순서(번호) 부여 → 순서 지켜서 처리
- 낙관적 병행제어 - 충돌이 거의 없을 거라고 가정 → 마지막에 검사해서 문제 있으면 ROLLBACK
- 다중 버전 병행제어 - 하나의 데이터에 여러 버전(Time Stamp) 유지 → 읽기/쓰기 충돌 최소화
회복 기법
- 로그 기반 회복 기법
- 지연 갱신 : 트랜잭션이 끝날 때까지 실제 DB 반영 X, 끝나고 반영 + REDO
- 즉시 갱시/즉각 갱신 : 트랜잭션 도중에도 DB 반영, 장애 발생시 REDO + UNDO
- 검사점 회복 기법
- 그림자 페이징 회복 기법
- 미디어 회복 기법(덤프)
REDO - 트랜잭션이 성공적으로 끝났는데, 장애로 반영이 안 됐을 경우 → 다시 반영하기 ( 재실행)
UNDO - 트랜잭션이 끝나지 않았는데 장애가 발생한 경우, 이전 상태로 되돌리기 (되돌리기)
블랙박스 테스트 기법
- 동등 분할 기법(Equivalence Partitioning Testing)
- 경계값 분석(Boundary Value Analysis)
- 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
- 오류 예측 검사(Error Guessing)
- 비교 검사(Comparison Testing)
- 상태전이 검사(State Transition Testing)
보안 솔루션
- VPN - 공중 네트워크를 사용해 전용 회선처럼 보안 통신을 제공하는 솔루션, 전용회선을 쓰는 것처럼
- SIEM - 보안 경고의 실시간 분석, 빅 데이터 기반 보안 분석 (로그분석기)
- WAF - 웹 기반 공격을 방어하기 위한 방화벽
- IDS - 비정상적인 접근을 탐지하는 시스템
- IPS - IDS + 실시간 차단 기능 포함
- DLP - 데이터 유출
- NAC - 사용자나 장비가 네트워크에 접근할 때 인증/검증하여 접근을 통제하는 기술
- FDS - 금융 거래 패턴을 분석하여, 비정상적이거나 이상 거래 탐지
결합도(Coupling)
- 자료 결합도(Data) - 값 전달 ⬇️ (가장 낮음, 가장 좋음)
- 스탬프 결합도(Stamp) - 배열, 오브젝트 등 전달
- 제어 결합도(Control) - 제어 요소 전달
- 외부 결합도(External) - 외부에서 데이터 참조
- 공통 결합도(Commmon) - 전역변수 이용
- 내부 결합도(Content) - 다른 모듈의 변수/기능 이용 ⬆️ (가장 높음)
응집도(Cohesion), 높을수록 좋음
- 기능적 응집도 (Functional) - 단일 목적 수행 (응집도 강함, 품질이 높음)
- 순차적 응집도 (Sequential) - 출력값을 입력값으로 사용
- 통신적 응집도 (Communication) - 동일한 입력과 출력을 사용
- 절차적 응집도 (Procedural) - 순차적으로 사용
- 시간적 응집도 (Temporal) - 특정 시간에 처리
- 논리적 응집도 (Logical) - 유사한 성격
- 우연적 응집도 (Coincidental) - 연관 없는 경우 (응집도 약함, 품질이 낮음)
UI 설계
- 직관성 - 누구나 쉽게 이해하고 사용
- 유효성 - 사용자의 목적을 정확하게 달성
- 학습성 - 누구나 쉽게 배우고 익힘
- 유연성 - 사용자의 요구사항을 최대한 수용
UI 유형
- CLI - 키보드로 명령어 입력
- GUI - 그래픽과 텍스트 기반의 인터페이스
- NUI - 인간의 자연스러운 움직임
형상관리 - 개발 과정에서 발생하는 모든 변경 사항을 통제하고 관리하는 방법
형상 관리 절차 (순서 X, 구분만)
- 형상 식별 - 관리 항목 구분
- 형상 통제 - 변경 요청을 검토하고 승인하여 현재의 기준선에 반영
- 형상 감사 - 계획에 따른 검토
- 형상 기록 - 과정을 기록
형상 관리 도구 - CVS, SVN, Git
패킷 교환
- 가상회선 방식 (연결형) - 호를 설정해줌 (연결을 확립), 연결을 확립하게 되면 끊임없이 데이터를 주고받을 수 있음
- 데이터그램 방식 (비연결형) - 연결확립 X, 목적지에 다 보내는 방식
OSI 7계층
- 응용 - 사용자와 프로그램 간 인터페이스 제공
- 표현 - 서로 다른 데이터 표현형식 간 변환 담당(암호화, 디코딩)
- 세션 - 세션을 관리하고 통신 연결 상태를 유지
- 전송 - 양 종단간의 신뢰성 있는 정보를 전달
- 네트워크 - 데이터를 목적지까지 라우팅하고 전송 경로를 설정 / 라우터
- 데이터링크 - 인접한 노드들간의 신뢰성 있는 정보를 전달 / 스위치, 브리지
- 물리 - 전기적인 신호를 이용해서 전달 / 허브, 리피터
라우팅 프로토콜
정적 라우팅 프로토콜은 시험에 나오지 않을 것 같음
동적 라우팅 프로토콜 - 자기가 알아서 경로를 판단
- EGP (외부)
- IGP ( 내부)
- 거리 벡터 알고리즘 (RIP, 벨만포드)
- 링크 상태의 알고리즘 (OSPF, 다익스트라)
EAI - 기업 내 다양한 플랫폼 및 애플리케이션을 연결하고 통합하는 솔루션
- point-to-point
- Hub & Spoke
- Message Bus
- Bus Hybrid
전송 데이터
- JSON : 이름과 값의 쌍으로 데이터를 구성
- XML : 데이터를 저장하고 전달하는 목적의 마크업 언어, 구조화된 언어
- YAML : 데이터 직렬화 언어
인터페이스 구현
- AJAX
- 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
- 페이지를 새로고침하지 않고 페이지 일부만을 변경
- SOAP
- HTTP, HTTPS, SMTP 등을 통해 XML 기반 메시지를 교환하는 포로토콜,
- SOAP(메시지 교환 프로토콜), UDDI(업체 목록 등록), WSDL(세부사항 기술)
- REST
- HTTP URI를 통한 자원 식별과 HTTP Method를 통한 CRUD 작업을 구현하는 자원 기반의 프로토콜
스토리지
DAS (Direct Attached Storage) |
직접 연결 / 공유 불가 | 컴퓨터에 직접 꽂는 외장하드처럼 생각! → 서버 1대만 사용 가능 |
NAS (Network Attached Storage) |
파일 공유 / 네트워크 | 공유기처럼 연결해서 여러 명이 파일 공유 → 파일 서버 역할 |
SAN (Storage Area Network) |
고속 / 블록 단위 / 비쌈 | 대형 병원/은행에서 DB서버용 고성능 저장소 → 빠르고 비싸고 전문적 |
RAID
- RAID-0 : 스트라이핑
- RAID-1 : 미러링
- RAID-2 : 해밍코드
- RAID-3 : 한 디스크에 패리티 저장
- RAID-4 : RAID-3과 유사, 블록 단위로 분산 저장
- RAID-5 : 각 디스크에 패리티 포함
- RAID-6 : 두 개의 패리티, 분산저장
DoS 공격 - 정상적인 서비스를 수행하지 못하도록 방해하는 공격
- Smurf Attack : IP와 ICMP 프로토콜의 특성을 이용
- Ping Of Death : 정상 크기 이상의 ICMP 패킷 전송
- Land Attack : 출발지 IP와 목적지 IP가 동일한 패킷 전송
- Teardrop Attack : 재조립 과정 방해
- SYN Flooding : SYN 신호만 전송
- UDP Flooding : 대량의 UDP 패킷을 전송
- Ping Flooding : 대량의 ICMP Echo 요청 패킷
DDOS : 분산 서비스 공격
보안용어
- 타이포스쿼팅 - 사이트의 주소 일부러 틀리게 만들어, 사용자의 실수 유발
- 트러스트존 - 일반 영역과 보안 영역을 분리해 민감한 데이터를 안전하게 처리
- APT -장기간에 걸쳐 목표를 정밀하게 노린 지속적이고 지능적인 공격
- 랜섬웨어 - 데이터를 암호화한 뒤, 복호화 대가로 몸값을 요구
- 다크데이터 - 수집/저장 되었지만 활용되지 않는 데이터
- 스턱스넷 - 물리적 파괴 목적
- 스니핑 - 네트워크 상에서 전송되는 데이터를 가로채어 도청
- 킬스위치 - 비상 상황 시 즉시 종료하거나 작동을 차단하는 보안 기능
- 제로데이 공격 - 보안 취약점이 공개되기 전에 이를 악용해 이루어지는 공격
- 사회 공학 - 사람의 심리/신뢰를 이용해 기밀 정보나 접근 권한을 탈취하는 비기술적 해킹 수법
- 파밍 - 악성 코드나 DNS 변조 등을 통해 사용자를 가짜 사이트로 유도
- 살라미 - 소액을 반복적으로 빼내어 큰 이득을 취하는 금융범죄
클라우드 서비스 -> 빌려쓰다
- IAAS : 인프라 자원(서버, 스토리지 등) 제공
- PaaS : 개발할 수 있는 환경을 빌리는 클라우드 (플랫폼)
- SaaS : 소프트웨어를 인터넷상에서 제공
소프트웨어 정의 기술
- SDN : 네트워크를 소프트웨어로 제어
- SDS : 스토리지 소프트웨어를 분리
- SDC : 컴퓨팅 자원을 소프트웨어로 제어
- SDDC : 데이터센터의 인프라 가상화
유닉스 - 1969년, 미국 AT&T 벨 연구소에서 켄 톰슨이 개발한 운영체제
유닉스의 구성
- 커널 : UNIX의 가장 핵심적인 부분
- 쉘 : 명령어 해석기
권한 변경 : chmod(권한 부여), umask(권한을 뺐음), chown
프로토콜 : 표준화된 통신 규약
기본 요소
- 구문 (Syntax)
- 의미 (Semantics)
- 타이밍 (Timing)
오류 제어
- 전진 오류 수정(FEC) - 스스로 오류 검출 및 수정(해밍코드, 상승코드)
- 후진 오류 수정(BEC) - 오류 발견 후 재전송 요청(패리티 검사, CRC, 블록 합)
리팩토링 - 기능의 변경 없이 내부 구조를 개선하는 방법
소스코드 품질 분석
- 동료 검토(Peer Review) - 개발자 등 동료가 자발적으로 참여하는 비공식적인 검토 활동
- 워크스루(Walkthrough) - 작성자가 주도하여 문서를 설명하고 참여자들이 질문하며 검토
- 인스펙션(Inspection) - 공식적인 검토 절차
- 외계인 코드 - 아주 오래되거나, 참고 문서 또는 개발자가 없어서 유지보수 작업이 어려운 프로그램
객체지향 분석 방범론
럼바우(Rumbaugh) 방법
- 객체 모델링(Object Modeling) - 객체 다이어그램
- 동적 모델링(Dynamic Modeling) - 상태 다이어그램
- 기능 모델링(Functional Modeling) - DFD(자료 흐름도)
소프트웨어 개발 방범론
애자일 : 작고 빠른 반복을 통해 고객의 요구에 유연하게 개발하는 소프트웨어 개발 방범론
나선형 모델 : 계획 -> 위험분석 -> 개발 -> 평가 이 과정을 반복해 점진적으로 개발
폭포수 : 순차적 처리, 고전적
프로토타입 : 시제품
객체지향 구성요소
- 클래스 - 속성과 연산을 정의해서 만든 틀
- 객체 - 클래스의 인스턴스
- 속성 - 객체들이 가지고 있는 고유한 데이터
- 메서드 - 작업을 수행하기 위한 명령문의 집합
- 메시지 - 객체에게 어떤 행위를 하도록 지시
객체지향 특성
- 캡슐화 - 속성과 메서드를 하나로 묶은 것
- 정보 은닉 - 내부 데이터에 직접 접근할 수 없도록 제한
- 상속 - 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 것
- 다형성 - 하나의 메시지에 대해 여러 가지 방법으로 응답
- 오버로딩 - 하나의 클래스 내에서 같은 이름의 메서드를 매개변수의 수나 타입이 다르게 정의하는 것
- 오버라이딩 - 상속받은 메서드를 하위 클래스에서 재정의하는 것 (이름, 매개변수 동일)
- 추상화 - 실체의 핵심적인 개념만을 추출
객체지향 설계 원칙(SOLID)
- 단일 책임 원칙(SRP) - 한 클래스는 하나의 책임만 가져야 한다
- 개방-폐쇄 원칙(OCP) - 확장에는 열려 있고, 수정에 닫혀 있어야 한다
- 리스코프 치환 원칙(LSP) - 자식 클래스는 언제나 자신의 부모 클래스를 대체한다.
- 인터페이스 분리 원칙(ISP) - 사용하지 않는 인터페이스는 구현하지 말아야 한다.
- 의존관계 역전 원칙(DIP) - 변화가 거의 없는 것에 의존한다.
백업
- 전체 백업 - 모든 데이터를 백업
- 증분 백업 - 변경/추가 데이터만 백업
- 차등 백업 - 모든 변경/추가된 데이터를 백업
- 합성 백업 - 전체 백업본과 여러 개의 증분 백업을 합쳐 새로운 전체 백업 구성
백업 수행 방식
- API 방식 - 백업 대상의 API 호출을 통해 데이터 추출
- Plug-in 방식 - 전용 플러그인 사용하여 백업 수행
- TED 방식 - 에이전트 없이 백업하는 방식 (무중단 백업에 활용)
RTO/RPO
- 복구 시간 목표(RTO) - 서비스를 사용할 수 없는 상태로 허용되는 시간
- 복구 시점 목표(RPO) - 최대 데이터 손실 시간
테스트 오라클
- 테스트 결과가 올바른지 판단하기 위해 정의된 참값과 비교하여 검증하는 기법
- 테스트 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참값을 대입해 비교하는 기법/활동
유형
- 참 오라클 : 모든 입력 값 테스트
- 샘플링 오라클 : 제한된 입력만 테스트
- 추정 오라클(휴리스틱) : 특정 입력 값 외에 나머지는 추정결과를 제공
- 일관성 검사 오라클 : 소프트웨어 변경 전후의 결과 비교
인증제도
- ISMS - 정보보호 관리체계 인증
- PIMS - 개인정보보호 관리체계 인증
- ISMS-P - 정보보호 및 개인정보보호 관리체계 인증
- ITSEC - 유럽의 평가 기준
- TCSEC - 미국의 평가 기준
- CC - 평균 결과 통합
HDLC
- 데이터 링크 계층에서 사용하는 비트 지향 프로토콜
- 동기/비동기 모두 지원
프레임 구조
Flag - 주소필드(정보 프레임) - 제어필드(감독 프레임) - 정보데이터(비순서 프레임) - FCS - Flag
프레임 유형
- 정보 프레임 : 실제 데이터 전송을 위한 프레임
- 감독 프레임 : 오류 검출 및 흐름 제어를 위해 사용
- 비순서 프레임 : 링크 설정, 해제 등 추가적인 제어 목적
전송 모드
- 정규 응답 모드(NRM)
- 주국과 하나 이상의 종국으로 구성
- 제어부가 0으로 시작
- 비동기 균형 모드(ABM)
- 모든 단말이 주국 역할 가능, 가장 유연
- 제어부가 10으로 시작
- 비동기 응답 모드(ARM)
- 주국이 통신을 제어하지만, 종국도 자체적으로 데이터 전송
- 제어부가 11로 시작
'Qualification' 카테고리의 다른 글
[정처기] 실기 공부 #1 (1) | 2025.04.16 |
---|---|
[Python] 리스트 (0) | 2025.04.08 |
[SQLD] 정리본 #1 (0) | 2025.03.04 |