CS-study
cs지식을 정리하는 공간
Reopository Rules
Table of Contents
- Development Common Sense(개발상식)
- Algorithm(알고리즘)
- Database(데이터베이스)
- Network(네트워크)
- Operating System(운영체제)
- Design Pattern(디자인 패턴)
🔍
개발상식 - 클린코드 & 리팩토링 & 시큐어코딩
- 애자일
- TDD
- DDD
- MSA
- OOP
- OOP의 5가지 설계 원칙
- 함수형 프로그래밍
- DevOps
- 3rd Party
- Git , Github, Gitlab
- REST API
- Parameter vs Argument
- Sync vs Async
- XSS
- 도커와 쿠버네티스
🔍
알고리즘 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략(a.k.a 종만북)을 기반으로 작성한 목차입니다.
- 알고리즘 분석
- 시간 복잡도와 공간복잡도
- 알고리즘의 정당성 증명
- 알고리즘 설계 패러다임
- 완전 탐색
- 분할 정복
- 동적 계획법
- 탐욕법
- 조합 탐색
- 파라메트릭 서치
- 유명한 알고리즘
- 정수론
- 소수
- 유클리드 알고리즘
- 모듈라 연산
- 이항 계수
- 계산 기하
- 정수론
- 기초 자료구조
- 비트마스크
- 부분 합
- 선형 자료구조
- 큐와 스택, 데크
- 문자열
- KMP 알고리즘
- 해시
- B-Tree & B+Tree
- 트리
- 트리의 구현과 순회
- 이진 탐색트리
- 우선순위 큐와 힙
- 구간 트리
- 상호 배타적 집합
- 트라이
- 그래프
- 그래프의 표현과 정의
- [DFS
- BFS
- 최단 경로 알고리즘
- 다익스트라
- 벨만-포드
- 플로이드의 모든 쌍 최단 거리 알고리즘
- 최소 스패닝 트리
- 크루스칼의 최소 스패닝 트리 알고리즘
- 프림의 최소 스패닝 트리 알고리즘
- 네트워크 유량
- 포드-풀커슨 알고리즘
- 에드몬드-카프 알고리즘
- 이분 매칭
- 정렬
- 삽입 정렬
- 선택 정렬
- 버블 정렬
- 병합 정렬
- 힙 정렬
- 퀵 정렬
- 기수 정렬
- 계수 정렬
- 셸 정렬
🔍
데이터베이스 - 키
- SQL - 기초 Query
- SQL - JOIN
- SQL Injection
- SQL vs NoSQL
- Anomaly
- 인덱스
- 트랜잭션(Transaction)
- 트랜잭션 격리 수준
- 레디스
- 이상 현상의 종류
- Hint
- 클러스터링
- 리플리케이션
- DB 튜닝
🔍
네트워크 - OSI 7계층
- IP
- IPv4
- IPv6
- TCP/IP
- UDP
- 대칭키 & 공개키
- HTTP & HTTPS
- Load Balancing
- Blocking & Non-Blocking I/O
🔍
운영체제 - 운영체제란?
- 프로세스와 쓰레드
- 인터럽트
- 시스템 콜
- PCB와 Context Switching
- IPC
- CPU 스케줄링
- Deadlocks
- Race Condition
- 세마포어 & 뮤텍스
- 메모리 & 가상 메모리
- 파일 시스템
🔍
디자인 패턴 - 디자인 패턴이란?
-
생성 패턴
- Builder
- Prototype
- Factory Method
- Abstract Factory
- Singleton
-
구조 패턴
- Bridge
- Decorator
- Facade
- Flyweight
- Proxy
- Composite
- Adapter
-
행위 패턴
- Interpreter
- Template Method
- Chain of Responsibillity
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Visitor