⚙️ 소프트웨어 설계 ⚙️

응집도

하나의 모듈이 얼마나 하나의 책임에 집중하는가
높을수록 좋고, 낮을수록 유지보수 어렵고 오류 가능성 큼

응집 정도
응집도 수준
설명
높음기능적 응집단 하나의 기능 수행
순차적 응집앞의 결과가 다음 기능의 입력
교환(통신)적 응집동일한 데이터 사용
절차적 응집일정 순서대로 수행되는 기능 모여있음
시간적 응집시간적으로 비슷한 시점에 수행되는 기능 모여있음
논리적 응집비슷한 범주의 기능 모여있음
낮음우연적 응집관련 없는 기능들이 모여있음

결합도

어떤 모듈이 다른 모듈에 얼마나 기대고 있는가
낮을수록 좋음

결합 정도
결합도 수준
설명
낮음자료 결합필요한 데이터만 파라미터로 전달
스탬프 결합자료구조(예: 구조체)를 통째로 전달
제어 결합제어 플래그를 전달해서 분기 지시
외부 결합OS, 하드웨어 등 외부 환경에 의존
공통 결합공유 변수(Global 변수 등) 사용
높음내용 결합다른 모듈의 내부를 직접 참조

디자인 패턴

1) 생성 패턴

객체를 만드는 방식에 어떤 유연성과 통제를 줄지

패턴명
설명
싱글톤(Singleton)단 하나의 유일 객체 생성
팩토리 메서드(Factory Method)생성 로직을 서브클래스에 위임
추상 팩토리(Abstract Factory)관련된 객체 집합 생성
빌더(Builder)복잡한 객체를 단계별로 생성

2) 구조 패턴

여러 클래스/객체를 어떻게 조립해 더 큰 구조를 만들지

패턴명
설명
어댑터(Adaptor)기존 클래스의 인터페이스 맞춰서 변환
프록시(Proxy)접근 제어를 위한 대리 객체
데코레이터(Decorator)기능을 동적으로 추가

3) 행위 패턴

객체들이 어떤 방식으로 데이터를 주고 받고 반응할지

패턴명
설명
옵저버(Observer)상태 변경 시 알림
템플릿 메서드(Template Method)상위 클래스에서 알고리즘 구조 정의하고, 하위 클래스가 구현
전략(Strategy)알고리즘을 캡슐화하여 교체 가능

🧪 테스트 🧪

테스트 기법

기법
설명
동등 분할입력값을 그룹화하여 그룹 내 대표값만 테스트
경계값 분석경계값이 오류 발생 확률이 높기 때문에 경계값 집중 테스트
결정 테이블조건별로 테스트 결과를 표로 작성
상태 전이상태 변화를 기반으로 테스트
원인-결과 그래프논리 관계를 시각화하여 복잡한 조건을 표현
에러 측정경험을 기반으로 오류 예측해서 테스트

테스트 커버리지

소프트웨어 테스트에 빠진곳은 없는지 판단하는 기준

종류
설명
구문 커버리지(Statement)모든 코드를 최소 한번 이상 실행
분기 커버리지(Branch)조건문의 참/거짓 상황을 각각 실행
조건 커버리지(Condition)복합 조건의 모든 조건이 참/거짓 상황을 각각 실행
경로 커버리지(Path)가능한 모든 실행 경로를 테스트
다중 조건 커버리지(Multiple)모든 조건들의 조합 상황도 다 테스트
조건/결정 커버리지(Condition/Decision)조건 + 분기 둘 다 만족

테스트 모듈

모듈
설명
스텁하양식 테스트에서 하위 모듈 대체
드라이버상향식 테스트에서 상위 모듈 대체

오류 제어

기법
설명
패리티 비트1비트, 오류 있는지만 확인
해밍 코드1비트, 오류 검출하고 정정
순환 중복 검사(CRC)수학 다항식으로 오류 검출
전방 오류 정정(FEC)수신자가 자체 정정
후방 오류 정정(BEC)수신자가 재전송을 요청하여 정정

📡 통신 및 네트워크 📡

통신 방식

방식
정의
특징
예시
회선 교환통신 전에 물리적 경로 고정전용선, 실시간, 비효율전화망(PSTN)
패킷 교환 - 데이터그램매 전송 시 경로 결정유연하지만 지연 가능인터넷(IP)
패킷 교환 - 가상 회선처음만 경로 설정, 이후 고정효율적, 빠름ATM, MPLS

주요 네트워크 프로토콜

프로토콜
설명
TCP연결 지향, 신뢰성 보장 (3-way handshake)
UDP비연결, 빠름, 신뢰성 낮음
IP주소 지정, 비연결형
ICMP오류 메시지 전달 (ping)
ARPIP를 MAC으로 변환
RARPMAC을 IP로 변환

라우팅 프로토콜

프로토콜
분류
방식
특징
사용 용도
RIP (Routing Information Protocol)내부망Distance Vector최대 홉 15개 제한, 최소한의 홉을 지나도록소규모 네트워크
OSPF (Open Shortest Path First)내부망Link State홉 수 제한 없음, 빠름, 최소한의 경로 비용으로 지나도록기업 내부망
BGP (Border Gateway Protocol)외부망Path Vector자율 시스템(AS) 간 라우팅, 인터넷 전용인터넷 백본

VPN

공용망을 이용해 사설 네트워크처럼 안전하게 통신하는 기술

프로토콜
설명
PPTP빠름, 보안낮음, 요즘 잘 안씀
L2TPIPsec과 함께 사용해야만 보안성 확보
IPsec인증+암호화+무결성, L2TP와 결합하여 사용
SSL VPN웹 브라우저 기반

클라우드 종류

구분
설명
IaaS인프라 제공 (서버)
PaaS플랫폼 제공 (개발 환경 포함)
SaaS소프트웨어 제공 (사용만 하면 됨)

🔐 정보보안 🔐

주요 공격 기법

기법
설명
스니핑네트워크 도청
스푸핑IP/이메일 등 위조
피싱가짜 사이트로 유도
파밍DNS 변조로 유도
SQL Injection쿼리 조작
XSS스크립트 삽입
디도스(DDoS)대량 트래픽 유발
루트킷시스템에 몰래 침투해 존재를 숨기고, 관리자 권한을 탈취해 탐지를 회피
APT (Advanced Persistent Threat)특정 대상을 장기간 은밀히 공격하여 정보를 수집·탈취하는 지능형 지속 위협
스머프ICMP를 악용하여 많은 응답을 몰아버리는 DDoS 공격의 한 종류

보안 기술

용어
설명
템퍼프루핑변경 감지 후 실행 차단
코드 난독화소스코드 해석 어렵게
워터마킹불법 복제 방지용 식별 정보
무결성 검사체크섬/해시로 데이터 변경 확인
시그니처 탐지기존 공격패턴 비교
행위 기반 탐지실행 행위 분석

암호화 및 인증

구분설명대표 알고리즘
대칭키같은 키로 암/복호화AES, DES, SEED
비대칭키공개키/개인키RSA, ECC
해시고정 길이 값으로 변환SHA-256 등
디지털 서명송신자 인증 및 위조 방지해시+비대칭
전자봉투대칭+비대칭 혼합 방식-

접근통제 방식

방식설명
MAC강제 접근 통제 – 규칙 기반
DAC임의 접근 통제 – 소유자 권한 부여 가능
RBAC역할 기반 – 직무 중심 접근제어

💽 데이터베이스 💽

데이터베이스 기본 용어

용어
정의
릴레이션테이블 전체
튜플행 (Row)
애트리뷰트열 (Column)
도메인속성 값의 범위
카디널리티고유값 수
차수속성 개수

스키마 계층

구분
정의
외부 스키마사용자 관점
개념 스키마조직 전체 논리 구조
내부 스키마물리적 저장 구조

무결성 제약조건

이름
정의
예시
개체 무결성PK는 NULL/중복 불가학번
참조 무결성FK는 부모 테이블의 PK학생-성적 테이블
도메인 무결성값은 도메인 내 존재성별 ‘남/여’
고유 무결성중복 불가 속성주민번호
NULL 무결성NULL 금지필수값
키 무결성유일 식별 키 존재 필요기본키 설정
사용자 정의논리적 제약조건나이 > 0 등

🗂️ 운영체제 🗂️

CPU 스케쥴링 알고리즘

0) 공통으로 사용할 프로세스 예시

프로세스
도착시간
실행시간
P108
P214
P329
P435

1) FCFS

먼저 도착한 순서대로 작업
(P1P2P3P4)

평균 대기시간: 8.75

2) SJF

대기중인 작업 중 가장 실행시간이 작은거 먼저 작업
(P1P2P4P3)

평균 대기시간: 7.75

3) SRTF

작업이 실행중이어도 더 짧은 작업이 오면 바로 선점하여 작업 (P1{1}P2P4P1{7}P3)

평균 대기시간: 6.5

4) HRN

대기시간과 실행시간을 통해 점수를 내 우선순위 설정
(점수 = 대기시간 / 실행시간)

예) P1이 실행된 후 P2, P3, P4 중 어떤 프로세스를 실행할지 고르는 상황 P1이 실행되었으니 현재 시간은 8

프로세스실행시간대기시간현재시간 - 도착시간점수
P248-1 = 77%4 = 1.75
P398-2 = 66%9 = 0.67
P458-3 = 55 % 5 = 1

점수가 1.75로 가장 높은 P2가 실행

페이지 교체 알고리즘

0) 공통으로 사용할 페이지 요청 예시

프레임 수 : 3
페이지 요청 : 7 0 1 2 0 3 0 4 2 3 0 3 2

1) FIFO

제일 오래전에 들어온 페이지 제거

7012030423032
옛날70012304222
701123042333
최근7012230423000
Fault

Page Fault: 10회

2) LRU

제일 오래전에 사용된 페이지 제거

7012030423032
옛날70122304220
701203042303
최근7012030423032
Fault

Page Fault: 9회

3) LFU

가장 적게 사용된 페이지를 제거
동일한 횟수일 시 FIFO 방식에 따라 제거

7012030423032
옛날7:10:10:20:20:30:30:30:30:40:40:4
7:10:11:11:12:12:13:14:12:12:12:12:2
최근7:10:11:12:12:13:13:14:12:13:13:13:23:2
Fault

Page Fault: 8회