트랜잭션
- ACID
Atomicity (원자성) : 전부 수행되거나 전부 취소되어야 함 (Commit / Rollback)
Consistency (일관성) : 트랜잭션 수행 후에도 DB 상태는 항상 유효해야 함
Isolation (독립성) : 동시에 실행되어도 서로 간섭 없이 동작해야 함
Durability (영속성) : 완료된 트랜잭션 결과는 시스템 고장 후에도 유지
- 부분완료(partially commited) : 아직 COMMIT되지 않아 확정되지 않음 / COMMIT / ROLLBACK
정규화
- 이상 현상: 삽입, 삭제, 갱신
- 함수적 종속: A(결정자) -> B(종속자)
- 정규화 (제1, 제2, 제3, 보이스/코드 BCNF, 제4, 제5)
제1정규형 (1NF) : 모든 속성값이 원자값(더 이상 나눌 수 없음)
제2정규형 (2NF) : 1NF + 부분적 함수 종속 제거 (기본키 전체에 종속)
제3정규형 (3NF) : 2NF + 이행적 함수 종속 제거 (비기본키 → 비기본키)
BCNF (보이스-코드 정규형) : 모든 결정자가 후보키 (3NF보다 강화된 조건)
제4정규형 (4NF) : 다중값 종속 제거 (A →→ B 형태의 종속 관계 분해)
- 반정규화 : 성능 향상을 위해 정규화된 데이터를 의도적으로 통합하거나 중복
데이터베이스 설계
- 개념적 설계: E-R Diagram
- 논리적 설계: 목표 DBMS에 맞는 설계, 정규화, 트랜잭션 인터페이스
- 물리적 설계: 특정 DBMS에 맞는 설계, 물리적 구조, 데이터 타입, 인덱스 등 고려
키(Key)
- 후보키(Candidate Key): 유일성 + 최소성을 만족하는 튜플 식별 속성 집합
- 기본키(Primary Key): 후보키 중 선택된 대표 키 (NULL·중복 불가)
- 대체키(Alternate Key): 기본키 제외 나머지 후보키
- 슈퍼키(Super Key): 유일성만 만족하는 속성 집합 (최소성 없음)
- 외래키(Foreign Key): 다른 릴레이션의 기본키를 참조하는 키 (없는 값 참조 불가)
무결성 제약조건
- 개체 무결성: 기본키는 NULL·중복 불가
- 참조 무결성: 외래키는 NULL이거나 참조 릴레이션의 기본키 값과 일치해야 함
순수 관계 연산자
- Select (σ): 조건을 만족하는 튜플 선택
- Project (π): 지정한 속성만 추출해 열 선택
- Join (▷◁): 공통 속성 기준으로 두 릴레이션을 결합 (= 교차곱 + 선택)
- Division (÷): B의 조건을 모두 만족하는 A의 튜플에서 공통 부분 추출
정보보안 3요소
- 기밀성: 정보의 암호화
- 무결성: 인가된 사용자만 변경
- 가용성: 인가됐으면 언제든지 접근 (DoS는 가용성을 해침)
블랙박스 테스트 기법
- 동등 분할 기법
- 경계값 분석
- 원인-효과 그래프 검사
- 상태전이 검사
보안 솔루션
- VPN : 공중 네트워크 사용해 전용 회선처럼 보안 통신 제공
- SIEM: 보안 경고 실시간 분석, 빅데이터 기반 심층 분석
- WAF: 웹 기반 공격(SQL 삽입, XSS) 방어하기 위한 방화벽
- 기타 - IDS(탐지), IPS(방지), NAC(접근통제)
결합도(Coupling) - 낮을수록 좋음 (자료가 가장 좋음)
- 자료 결합도(값 전달) -> 스탬프 결합도(배열, 오브젝트 전달) -> 제어 결합도(제어 요소 전달) -> 외부 결합도(외부에서 데이터 참조) -> 공통 결합도(전역변수 이용) -> 내용 결합도(다른 모듈 변수 이용)
응집도(Cohesion) - 높을수록 좋음 (기능적이 가장 좋음)
- 우논시절 통순기
형상관리 : 개발 시 발생하는 모든 변경사항 통제 및 관리
- 도구: CVS, SVN, Git
- 절차: 형상 식별 - 형상 통제 - 형상 감사 - 형상 기록
라우팅 프로토콜
- RIP, OSPF
네트워크
- OSI 7계층
- 패킷 교환
- 프로토콜 : 송수신 간 데이터 교환을 위한 표준 통신 규약
- ARP/RARP : ARP: IP→MAC, RARP: MAC→IP
DB
- RAID : 데이터를 여러 디스크에 분산 저장
- 리커버리
- 신기술
디자인 패턴
- 생성 패턴 : 클래스나 객체의 생성과 참조 과정 정의
! 추상 팩토리 : 구체적인 클래스에 의존하지 않고 인터페이스로 연관-의존하는 객체들의 그룹으로 추상적 생성
! 빌더 : 작게 분리된 인스턴스를 건축하듯이 조합해 객체 생성
! 팩토리 메서드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
! 프로토타입 : 원본 객체 복제해서 생성
! 싱글톤 : 하나의 객체를 생성하면 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없는 패턴
- 구조 패턴 : 구조가 복잡한 시스템을 개발하기 쉽도록 클래스나 객체를 조합해 더 큰 구조로 만드는 패턴
! 어댑터 : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
! 브릿지 : 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴
! 컴포지트 : 여러 객체를 가진 복합 객체와 단일 객체를 구분없이 다루고자 할 때 사용하는 패턴. 트리 구조
! 데코레이터 : 객체간의 결합을 통해 능동적으로 기능을 확장할 수 있는 패턴. 덧붙이는 방식
! 퍼싸드 : wrapper 객체로 서브 클래스들 사이 통합 인터페이스 제공
! 프록시 : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할
- 행위 패턴 : 클래스나 객체가 상호작용하는 방법 및 책임을 정의하는 패턴
! 책임 연쇄 : 한 객체가 처리하지 못하면 다음 객체로 넘어감
! 커맨드 : 요청을 객체 형태로 캡슐화, 로그에 남김
! 인터프리터 : 언어에 문법 표현을 정의하는 패턴 및 프로토콜과 같은 것을 개발할 때 사용
! 반복자 : 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴. 노출 없이 순차 접근
! 중개자 : 상호작용을 캡슐화해 의존성 줄여 결합도 감소
! 메멘토 : 특정 시점에서의 객체 내부 상태를 객체화, 해당 시점으로 돌릴 수 있는 기능 제공 패턴
! 옵저버 : 상태가 변화하면 상속된 다른 객체들에게 변화된 상태를 전달
! 상태 : 상태에 따라 동작을 다르게 처리해야할 때 상태 캡슐화 및 참조
! 전략 : 알고리즘을 개별적으로 캡슐화
! 템플릿 메서드 : 상위 클래스에서 골격을 정의, 하위 클래스에서 구체화
! 방문자 : 각 클래스의 자료구조에서 처리 기능을 분리하여 별도의 클래스로 구성, 분리된 기능은 클래스 방문해서 수행
요구사항 검토
- 피어리뷰: 동료간 상호 리뷰
- 워크 스루: 요구사항 명세서를 미리 배포해 사전 검토
- 인스펙션: 명세 작성자를 제외한 검토 전문가들이 명세서 확인
- 프로토타이핑: 견본품으로 최종 결과 예
미들웨어
- DB, RPC, MOM, TP-Monitor, ORB, WAS
EAI
- Point to point, Hub & Spoke, Message Bus, Bus Hybrid
APM(Application Performance Management) : 어플리케이션 성능 관리 위해 접속자, 트랜잭션, 장애 진단 등 모니터링 기능 제공
테스트
- 단위, 통합, 인수
- 파레토 법칙 : 전체 결함의 80%는 전체 코드 중 20%의 영역에서 발생
암호화
- LFSR: 선형 피드백 시프트 레지스터, 스트림 암호에 사용됨.
- RC4: 스트림 기반 대칭키 암호 알고리즘.
- DES, AES, ARIA, SEED: 대표적 대칭키 블록 암호 알고리즘.
- RSA: 큰 소수의 곱 기반 공개키 암호 알고리즘.
서비스 공격
- Ping of death: 과도한 ping으로 시스템 마비.
- Smurfing: IP 스푸핑 + ICMP를 통한 증폭 공격.
- Tear drop: 잘못된 fragment offset으로 시스템 다운 유도.
- Land attack: 출발지=목적지 IP/포트로 패킷 보내기.
- DDoS: 분산된 공격으로 자원 고갈 유도.
그 외 세션 하이재킹, ARP 스푸핑, 스니핑, 워터링 홀, 키로거 공격, 랜섬웨어, 백도어
배치 전략
- First Fit(첫번째 영역), Best Fit(단편화 가장 적게), Worst Fit(단편화 가장 크게)
아래 블로그가 매우 도움되었습니다.
# 후기
2025년 기준 정보처리기사 실기는 Java, C, Python에 대해 숙지하는 것이 훨씬 중요했다.
컴퓨터공학 전공자에게 훨씬 유리한 시험이라 느꼈다.
'기타' 카테고리의 다른 글
2025년 정보처리기사 필기 핵심 요약 (0) | 2025.02.12 |
---|---|
[기타] 컴퓨터공학도를 위한 게이밍 노트북 추천 / 쿠팡 5월 빅스마일데이 특가 (1) | 2023.05.08 |
클라우드IDE로 주가 조회 서비스 만들기 (0) | 2023.02.19 |
[군장병 SW/AI 역량 강화 교육] 군장병 SW/AI 역량 강화 교육이란? (1) | 2022.08.02 |
[군대] TOD병이란? / 후기 (7) | 2022.07.31 |