Basic
- volatile : volatile 이론, volatile과 pipe-line, volatile과 spinlock
 - define문에서 ##의 역할
 - mutable
 - friend
 - const와 constexpr
 - pointer 배열
 - string
 - mutex basic
 - thread basci
 - 위임 생성자(delegate constructor)
 - 헷갈리는 부분 정리
 
Design-pattern
- 디자인패턴은 XXX패턴 -> 무슨 기능, OOO패턴 -> 무슨 기능 이런식으로 암기하는 것은 아무런 의미가 없다.
 - 이런 패턴이 있고 이런식으로 코딩을 할 수 있다는 것을 이해하는 것이 중요하다. 패턴이름을 외우려고 노력하지 말자.
 
기본기
- Protected constructor : protected 생성/소멸
 - Upcasting : 업캐스팅 예시
 - abstract class, interface, coupling : 추상 클래스 및 인터페이스 제작방법
 
디자인 패턴 개요
- 디자인 패턴은 어디에 쓸까?
 - Template Example(Application Framework)
 - Strategy Example(Function)
 - Strategy Pattern, Policy Base 비교
 
디자인 패턴
- Composite Pattern
 - Decorator Pattern
 - State Pattern
 - Adaptor Pattern
 - Bridge Pattern
 - Facade Pattern
 - Proxy Patter
 - Factory Method
 - Factory Pattern
 - (Abstract)Factory Pattern
 - Builder Pattern
 - Container Pattern
 - Visitor Pattern
 - Observer Pattern
 - Singleton Pattern
 
STL
여기부터는 iterator를 어떻게 쓰는지에 대한 내용 가볍게 읽어보자.
- iterator란?
 - iterator - 1 : iterator 사용법 기초
 - iterator - 2 : 컨테이너마다 지원하는 연산자
 - iterator - 3 : advance function(list도 ++연산 쓰고싶은데??)
 - iterator - 4 : iterator 만들기 basic
 - iterator - 5 : 
iterator_traits만들기 -  
iterator - 6 : back/front inserter
 - bind
 - thread - sync
 - chrono
 - chrono - duration
 - chrono - ratio
 
template
기본기
- template이란?
 - template instantiation : template생성시 기계어는 어떻게 생성될까?
 - 명시적/암시적 instatitation
 - 함수 템플릿(make_pair) 만들기
 - (참고) template의 주소
 - lazy instantiation
 - 런타임 데이터 type출력
 - template의 type-decution 주의사항
 - (참고) 배열의 이름은 주소일까?
 - (참고) template 전달인자 주소로 받기
 
기본문법
- class에 template 쓰기
 - 복사생성자 template
 - 함수 템플릿 호출시 주의사항
 - typename 정의
 - value_type 써보기
 - 매개변수
 - template specialization(template 지정)
 
type traits
- 런타임에 데이터형을 지정해보자(IfThenElse)
 - couple을 만들고 자료형의 개수를 리턴
 - template으로 factorial 만들기(template meta programming)
 - template으로 런타임 포인터 타입 확인하기
 - template으로 배열인지 확인하기
 - 같은 데이터형이라도 포인터인지 아닌지에 따라 다른 template 생성
 - 같은 데이터형이라도 포인터인지 아닌지에 따라 다른 template 생성 - 2
 - remove_pointer 써보기, 만들어 보기
 - template 함수의 리턴, 매개변수 타입 구하기
 - C++에서 제공하는 표준 type_traits
 
Variadic Template
Template Design
- thin template : 템플릿을 효율적으로 구현해보자
 - CRTP : 자녀클래스의 이름(정보)을 알고 싶을때
 - 기타) STL Memory Allocator
 - enable_if
 - concept
 
Concurrency
- 1. thread - 1 : 
getid(), sleep(), yield() - 2. thread - 2 : 
std::thread,ref - 3. promise & future
 - 4. async
 - 5. jthread
 - 6. mutex
 - 7. lock management
 - 8. condition variable
 - 9. semaphore
 - 10. latch & barrier
 - 11. atomic - 1
 - 12. memory order
 - 13. atomic - 2
 - 14. parallel STL