> For the complete documentation index, see [llms.txt](https://geun-00.gitbook.io/geun-00-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://geun-00.gitbook.io/geun-00-docs/readme.md).

# TIL 📃

강의, 책 등을 통해 배운 이론들을 정리한 공간입니다. 목록은 다음과 같습니다.

* [Java](https://geun-00.gitbook.io/geun-00-docs#java)
* [Interview](https://geun-00.gitbook.io/geun-00-docs#interview)
* [Spring](https://geun-00.gitbook.io/geun-00-docs#spring)
* [Jpa](https://geun-00.gitbook.io/geun-00-docs#jpa-1)
* [Spring](https://geun-00.gitbook.io/geun-00-docs#Spring)
* [CS](https://geun-00.gitbook.io/geun-00-docs#cs)
* [자료구조](https://geun-00.gitbook.io/geun-00-docs#undefined-20)
* [Git](https://geun-00.gitbook.io/geun-00-docs#git)
* [알고리즘](https://geun-00.gitbook.io/geun-00-docs#algorithm)

***

### Java

<details>

<summary>기본 및 기타</summary>

* [OOP](https://github.com/genesis12345678/TIL/blob/main/Java/basic/OOP/OOP.md#oop)
* [SOLID](https://github.com/genesis12345678/TIL/blob/main/Java/basic/OOP/solid/solid.md#%EC%A2%8B%EC%9D%80-%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%EC%84%A4%EA%B3%84%EC%9D%98-5%EA%B0%80%EC%A7%80-%EC%9B%90%EC%B9%99solid)
* [메모리 구조](https://github.com/genesis12345678/TIL/blob/main/Java/basic/memory/MemoryStructure.md#%EC%9E%90%EB%B0%94-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EC%99%80-static)
* [상속](https://github.com/genesis12345678/TIL/blob/main/Java/basic/inheritance/Inheritance.md#%EC%9E%90%EB%B0%94-%EC%83%81%EC%86%8D)
* 다형성
  * [다형성 - 1](https://github.com/genesis12345678/TIL/blob/main/Java/basic/polymorphism/Polymorphism_1.md#%EB%8B%A4%ED%98%95%EC%84%B1---1) - 다형성의 기본적인 개념과 캐스팅
  * [다형성 - 2](https://github.com/genesis12345678/TIL/blob/main/Java/basic/polymorphism/Polymorphism_2.md#%EB%8B%A4%ED%98%95%EC%84%B1---2) - 다형성을 활용한 코드 리팩토링(with 인터페이스)
* [JPA Auditing](https://github.com/genesis12345678/TIL/blob/main/Springboot3/JPA_Auditing/JPA_Auditing.md)
* [MapStruct](https://github.com/genesis12345678/TIL/blob/main/Springboot3/MapStruct/MapStruct.md)

</details>

<details>

<summary>중고급 개념</summary>

* [중급 - 1](https://github.com/genesis12345678/TIL/blob/main/Java/mid_1/Main.md)
* [중급 - 2](https://github.com/genesis12345678/TIL/blob/main/Java/mid_2/Main.md)
* [고급 - 1](https://github.com/genesis12345678/TIL/blob/main/Java/adv_1/Main.md)
* [고급 - 2](/geun-00-docs/java/adv_2/main.md)

</details>

<details>

<summary>자바 8</summary>

* [함수형 인터페이스 API](https://github.com/genesis12345678/TIL/blob/main/Java/java8/Main.md)
* [스트림](https://github.com/genesis12345678/TIL/blob/main/Java/java8/stream/Main.md)

</details>

<details>

<summary>동시성 프로그래밍</summary>

* [자바 동시성 프로그래밍](https://github.com/genesis12345678/TIL/blob/main/Java/reactive/Main.md)

</details>

<details>

<summary>디자인 패턴</summary>

* [디자인 패턴](https://github.com/genesis12345678/TIL/blob/main/Java/java8/designpattern/Main.md)

</details>

***

### Interview ✨

<details>

<summary>프로그래밍</summary>

* [OOP](https://github.com/genesis12345678/TIL/blob/main/interview/programming/OOP.md#oop%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [블로킹 vs 논블로킹](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Block_Sync.md#%EB%B8%94%EB%A1%9C%ED%82%B9%EA%B3%BC-%EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94)
* [동기 vs 비동기](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Block_Sync.md#%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94)
* [동기/비동기 & 블로킹/논블로킹](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Block_Sync.md#%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%B8%94%EB%A1%9C%ED%82%B9%EA%B3%BC-%EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9%EC%9D%84-%EC%97%AE%EC%96%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [절차 지향 vs 객체 지향 프로그래밍](https://github.com/genesis12345678/TIL/blob/main/interview/programming/%EC%A0%88%EC%B0%A8_%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D.md#%EC%A0%88%EC%B0%A8-%EC%A7%80%ED%96%A5%EA%B3%BC-%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [Call By Value vs Call By Reference](https://github.com/genesis12345678/TIL/blob/main/interview/programming/CallBy_Value_Ref.md#call-by-value%EC%99%80-call-by-reference%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [프레임워크 vs 라이브러리](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Framework_Library.md#%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EC%99%80-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [DDD](https://github.com/genesis12345678/TIL/blob/main/interview/programming/DDD.md#ddddomain-driven-design%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [MSA](https://github.com/genesis12345678/TIL/blob/main/interview/programming/MSA.md#msa%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [함수형 프로그래밍](https://github.com/genesis12345678/TIL/blob/main/interview/programming/%ED%95%A8%EC%88%98%ED%98%95%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D.md#%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [메모리 구조](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Memory.md#%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EC%9D%98-%EB%84%A4-%EA%B0%80%EC%A7%80-%EC%98%81%EC%97%AD%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [컴파일러와 인터프리터](https://github.com/genesis12345678/TIL/blob/main/interview/programming/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC_%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0.md#%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%99%80-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0%EB%A5%BC-%EB%B9%84%EA%B5%90%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [병렬 프로그래밍](https://github.com/genesis12345678/TIL/blob/main/interview/programming/%EB%B3%91%EB%A0%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D.md#%EB%B3%91%EB%A0%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)

</details>

<details>

<summary>자료구조</summary>

* [자료구조와 알고리즘의 개념](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98.md#%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%97%90-%EA%B0%9C%EB%85%90%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [그래프와 트리의 차이점](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/Graph_Tree.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%99%80-%ED%8A%B8%EB%A6%AC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [이진 탐색 트리](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/BST.md#%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-%ED%8A%B8%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [AVL 트리](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/AVLTree.md#avl-%ED%8A%B8%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [레드 블랙 트리](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/RedBlackTree.md#%EB%A0%88%EB%93%9C-%EB%B8%94%EB%9E%99-%ED%8A%B8%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [스택과 큐](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/Stack_Queue.md#%EC%8A%A4%ED%83%9D%EA%B3%BC-%ED%81%90%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [Array와 ArrayList](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/Array.md#array%EC%99%80-arraylist%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [배열과 연결 리스트의 장단점](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/LinkedList.md)
* [해시 테이블](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/HashTable.md#%ED%95%B4%EC%8B%9C%ED%85%8C%EC%9D%B4%EB%B8%94hast-table%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [List, Set, Map의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/1_10/List_Set_Map.md#list-set-map-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%97%90-%EB%8C%80%ED%95%B4-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [B+ Tree](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/B%2BTree.md#b-tree%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EC%A7%80-%EC%84%A4%EB%AA%85%ED%95%B4-%EC%A3%BC%EC%84%B8%EC%9A%94)
* [HashMap 동작 방식](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/HashMap.md#hashmap%EC%9D%80-%EC%96%B4%EB%96%A4-%EC%8B%9D%EC%9C%BC%EB%A1%9C-%EB%8F%99%EC%9E%91%ED%95%98%EB%82%98%EC%9A%94)
* [Hash 충돌이 발생하는 경우](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/Hash_%EC%B6%A9%EB%8F%8C_1.md#hash-%EC%B6%A9%EB%8F%8C%EC%9D%B4-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94)
* [Hash 충돌 시 내부 데이터 탐색](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/Hash_%EC%B6%A9%EB%8F%8C_2.md)
* [컬렉션 프레임워크](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/JCF.md)
* [검색 자료구조로서 해시 테이블과 BST 비교](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/HashTable_BST.md)
* [스택에서 자원 공유](https://github.com/genesis12345678/TIL/blob/main/interview/programming/Stack.md)
* [최소 스패닝 트리](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/MST.md)
* [선형구조 형태의 자료형에서 가산성과 동차성](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/%EA%B0%80%EC%82%B0%EC%84%B1_%EB%8F%99%EC%B0%A8%EC%84%B1.md)
* [배열 중복제거 방법](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/%EB%B0%B0%EC%97%B4%EC%A4%91%EB%B3%B5%EC%A0%9C%EA%B1%B0.md)
* [Enum](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/Enum.md)
* [Char 타입과 String 타입](https://github.com/genesis12345678/TIL/blob/main/interview/dataStructure/11_20/char_string.md)

</details>

<details>

<summary>알고리즘</summary>

* [시간 복잡도](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84.md)
* [동적 프로그래밍](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/DP.md)
* [버블 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/BubbleSort.md)
* [선택 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/SelectionSort.md)
* [삽입 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/InsertionSort.md)
* [힙 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/HeapSort.md)
* [병합 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/MergeSort.md)
* [퀵 정렬](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/QuickSort.md)
* [허프만 코딩](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/Huffman.md)
* [정렬 알고리즘에 따른 시간복잡도 비교](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/%EC%A0%95%EB%A0%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84.md)
* [재귀 알고리즘](https://github.com/genesis12345678/TIL/blob/main/interview/algorithm/%EC%9E%AC%EA%B7%80%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98.md)

</details>

<details>

<summary>네트워크</summary>

* [웹 동작 방식](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/Web.md)
* [Http와 Https의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/Http_Https.md)
* [OSI 7 계층](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/OSI7Layer.md)
* [TCP/IP 4 계층](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/TcpIp4Layer.md)
* [DNS란, DNS 작동 방식](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/DNS.md)
* [TCP와 UDP의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/TCPUDP.md)
* [MTU](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/MTU.md)
* [서버-클라이언트 메시지 확인](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/MessageACK.md)
* [3-way handshake, 4-way handshake 흐름](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/Handshake.md)
* [Http 프로토콜](https://github.com/genesis12345678/TIL/blob/main/interview/network/1_10/HTTP.md)
* [HTTPS가 동작하는 방식](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/HTTPS.md)
* [HTTP 헤더의 구조](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/HttpHeader.md)
* [Keep-Alive 헤더](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/KeepAlive.md)
* [HTTP GET과 POST의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/GetPost.md)
* [쿠키와 세션](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/CookieSession.md)
* [웹 브라우저에 google.com을 치면 일어나는 일](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/Google.md)
* [CORS](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/cors.md)
* [웹 서버와 WAS의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/WebServer.md)
* [Restful API에서 리소스](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/Resource.md)
* [REST API란](https://github.com/genesis12345678/TIL/blob/main/interview/network/11_20/RestAPI.md)
* [I/O와 N/I/O 차이](https://github.com/genesis12345678/TIL/blob/main/interview/network/21_22/IO.md)
* [MQTT 프로토콜이란](https://github.com/genesis12345678/TIL/blob/main/interview/network/21_22/MQTT.md)

</details>

<details>

<summary>운영체제</summary>

* [운영 체제란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/OS.md)
  * 운영 체제의 주요 목적
  * 운영 체제의 기능
* [프로세스란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/Process.md)
* [쓰레드란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/Thread.md)
* [쓰레드를 만들 때 자원](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/ThreadResource.md)
* [쓰레드의 주소 공간](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/ThreadSpace.md)
* [쓰레드와 프로세스 차이](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/%EC%93%B0%EB%A0%88%EB%93%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4.md)
  * `Threading`, `Processing`
  * `Thrashing`
* [교착 상태란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/DeadLock.md)
  * 교착상태가 발생하기 위한 조건
  * 교창상태 해결법
* [경쟁 상태란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/RaceCondition.md)
* [Mutex와 SpinLock의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/Mutex_SpinLock.md)
* [쓰레드 간 접근](https://github.com/genesis12345678/TIL/blob/main/interview/os/1_10/%EC%93%B0%EB%A0%88%EB%93%9C%EC%A0%91%EA%B7%BC.md)
* [CPU 스케줄링이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/CPUScheduling.md)
  * CPU 스케줄링 방법들
* [최초 적합, 최적 적합, 최악 적합](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Fit.md)
* [외부 단편화와 내부 단편화란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Fragmentation.md)
* [커널이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Kernel.md)
* [멀티 쓰레딩이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Multi.md)
  * 멀티 프로세스란?
  * 멀티 프로세스 대신 멀티 쓰레드를 사용하는 이유
  * 멀티 프로세싱과 멀티 프로그래밍의 차이
  * 멀티 태스킹이란?
  * 멀티 태스킹과 멀티 쓰레딩 비교
* [뮤텍스와 세마포어란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/MutexSemaphore.md)
* [페이지 교체 알고리즘](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/PRA.md)
* [페이징이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Paging.md)
* [프로세스 & 쓰레드의 동기화란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/Sync.md)
* [가상 메모리란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/11_20/VirtualMemory.md)
* [에이징이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/Aging.md)
* [기아 상태란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/Starvation.md)
* [문맥 교환이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/ContextSwitching.md)
* [멀티 쓰레드 프로그래밍의 장단점](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/MultiThread.md)
* [세그먼테이션이란?](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/Segmentation.md)
* [모드 스위치와 프로세스 스위치의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/Switch.md)
* [커널 수준 쓰레드와 사용자 수준 쓰레드의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/os/21_27/Thread.md)

</details>

<details>

<summary>데이터베이스</summary>

* [인덱스(Index)에 대해서](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Index.md)
  * 인덱스를 효과적으로 사용하려면
  * 인덱스 알고리즘
* [JOIN에 대해서](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Join.md)
  * 내부 조인과 외부 조인의 차이
* [MyBatis와 ORM 장단점](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/MyBatis.md)
* [NoSQL이란?](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/NoSQL.md)
  * RDB와 차이점
  * NoSQL이 더 빠른 이유
  * RDB와 NoSQL을 사용해야 할 때
* [정규화와 정규화 단계](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Normalization.md)
* [ORM이란?](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/ORM.md)
* [파티셔닝과 샤딩에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Partitioning.md)
* [테이블 스캔에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Scan.md)
* [스키마란?](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Schema.md)
* [트랜잭션이란?](https://github.com/genesis12345678/TIL/blob/main/interview/database/1_10/Transaction.md)
  * 트랜잭션 4가지 원칙(ACID)
  * 트랜잭션 격리 수준
* [클러스터링과 리플리케이션 차이](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/Cluster.md)
* [DB 이중화 방식](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/Duplication.md)
* [JPA를 사용하면 좋은 점](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/JPA.md)
* [락(Lock), 공유락과 베타락](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/Lock.md)
* [옵티마이저란?](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/Optimizer.md)
* [DB 종류별 장단점](https://github.com/genesis12345678/TIL/blob/main/interview/database/11_16/PronsAndCons.md)

</details>

<details>

<summary>자바</summary>

* [자바의 장단점](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/ProsAndCons.md)
* [자바는 call by value? call by reference?](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/Call.md)
  * `call by value`와 `call by reference` 차이 코드 예시
* [추상화](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/Abstract.md)
* [상속과 인터페이스 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/Extends.md)
* [접근 제어자](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/AccessControl.md)
* [클래스, 객체, 인스턴스 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Class.md)
* [오버로딩과 오버라이딩의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Overloading.md)
* [불변 객체란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Immutable.md)
* [`Exception`과 `RuntimeException` 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Exception.md)
* [래퍼 클래스에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/Wrapper.md)
* [`new String()`과 `""` 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/newString.md)
* [디자인 패턴](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/DesignPattern.md)
* [상속을 이용한 디자인 패턴](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/TemplateMethod.md)
* [쓰레드들의 순서를 보장하는 코드 예시](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/Threads.md)
* [쓰레드 안전하다는 것은?](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/TreadSafe.md)
  * 쓰레드 안전을 위한 4가지 방법
  * 자바에서 쓰레드 안전하게 설계하는 방법
  * `java.util.concurrent` 패키지란?
* [JVM 이란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/JVM.md)
  * JVM 구조
* [GC란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/GC.md)
  * GC 등장 배경
  * Heap 메모리 구조
  * GC 동작 방식
  * GC 여러가지 알고리즘
* [제네릭이란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/1_10/Generic.md)
  * 변성 & 와일드카드
* [`equals`와 `hashCode` 메서드](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/EqualsHashcode.md)
* [연결 리스트와 일반 리스트의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/List.md)
* [람다식에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Lambda.md)
* [직렬화란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Serializable.md)
* [스트림에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/java/11_20/Stream.md)
  * 병렬 스트림
* [일급 객체란?](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/FirstClass.md)
* [`Iterator`와 `Iterable`의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/Iterator.md)
* [리플렉션에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/java/21_25/Reflection.md)

</details>

<details>

<summary>스프링</summary>

* [스프링이란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/Spring.md)
  * 스프링의 특징
* [스프링과 스프링 부트의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/SpringBoot.md)
* [스프링 컨테이너와 스프링 빈이란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/Bean.md)
* [프레임워크, 라이브러리, API의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/FrameworkLibrary.md)
* [필터와 인터셉터의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/FilterInteceptor.md)
* [서블릿에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/Servlet.md)
* [MVC 패턴에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/MVCPattern.md)
* [스프링 MVC 구조에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/SpringMVC.md)
* [스프링 AOP에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/AOP.md)
* [`@Controller`와 `@RestController`의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/spring/1_10/Controller.md)
* [`Annotation`이란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/Annotation.md)
  * 스프링이 `Annotation` 기반인 이유와 주요 `Annotation`
* [커넥션 풀 & 데이터 소스란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/ConnectionPool.md)
* [하나의 컨트롤러로 요청을 받을 수 있는 이유](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/Controller.md)
* [DAO, DTO, VO, Entity](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/DTO.md)
* [GET과 POST의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/GetPost.md)
* [IoC / DI란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/IoCDI.md)
* [레이어드 아키텍처](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/LayerdArchitecture.md)
* [mvc1과 mvc2](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/MVC1_2.md)
* [ORM이란?](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/ORM.md)
  * `MyBatis` vs `JPA`
* [Spring Security에 대해서](https://github.com/genesis12345678/TIL/blob/main/interview/spring/11_20/Security.md)
* [트랜잭션을 추상화한 이유](https://github.com/genesis12345678/TIL/blob/main/interview/spring/21_30/TxAbstract.md)
* [트랜잭션 동기화 매니저의 역할](https://github.com/genesis12345678/TIL/blob/main/interview/spring/21_30/TxSyncManager.md)
* [선언전 트랜잭션 vs 프로그래밍 방식 트랜잭션](https://github.com/genesis12345678/TIL/blob/main/interview/spring/21_30/Transaction.md)
* [`@Transactional` 동작 방식](https://github.com/genesis12345678/TIL/blob/main/interview/spring/21_30/%40Transactional.md)
* [트랜잭션 전파에 대해](https://github.com/genesis12345678/TIL/blob/main/interview/spring/21_30/Propagation.md)

</details>

<details>

<summary>JPA</summary>

* [페치 조인의 단점](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/FetchJoin.md)
* [ID를 Long 타입으로 사용하는 이유](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/IdLong.md)
* [상속 관계 매핑](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/Inheritance.md)
* [N + 1 문제](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/N%2B1.md)
* [OneToOne 양방향 관계의 지연 로딩](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/OneToOneLazy.md)
* [영속성 컨텍스트](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/PersistenceContext.md)
* [Querydsl을 사용하는 이유](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/Querydsl.md)
* [readOnly 속성의 이점](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/ReadOnly.md)
* [연관 관계가 필요한 이유](/geun-00-docs/readme.md)
* [`save()`와 `saveAll()`의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/1_10/SaveSaveAll.md)
* [`deleteAll()`과 `deleteAllInBatch()`의 차이](https://github.com/genesis12345678/TIL/blob/main/interview/jpa/11_20/DeleteAll.md)

</details>

***

### Spring

<details>

<summary>스프링 핵심 원리</summary>

#### 기본

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/spring_basic.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EA%B8%B0%EB%B3%B8-%EC%9B%90%EB%A6%AC)
* [순수 자바 설계(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/pureJava/java_1.md#%EC%88%9C%EC%88%98%ED%95%9C-%EC%9E%90%EB%B0%94%EB%A7%8C%EC%9C%BC%EB%A1%9C-%EC%84%A4%EA%B3%84---1) - 스프링 기술 없이 자바만으로 설계할 때 문제점
* [순수 자바 설계(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/pureJava/java_2.md#%EC%88%9C%EC%88%98%ED%95%9C-%EC%9E%90%EB%B0%94%EB%A7%8C%EC%9C%BC%EB%A1%9C-%EC%84%A4%EA%B3%84---2) - 자바만으로 설계했을 때 문제점을 해결해보고 스프링 기술 접목해보기
* [스프링 컨테이너(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/springContainer/container_1.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88---1) - 스프링 컨테이너 생성 과정과 컨테이너에 등록된 빈 조회하는 법
* [스프링 컨테이너(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/springContainer/container_2.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88---2) - 스프링 빈을 생성하는 여러가지 방법(`BeanFactory`와 `ApplicationContext`)
* [싱글톤 컨테이너(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/singleton/singleton_1.md#%EC%8B%B1%EA%B8%80%ED%86%A4-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88---1) - 싱글톤 패턴과 싱글톤 방식의 주의점(공유필드)
* [싱글톤 컨테이너(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/singleton/singleton_2.md#%EC%8B%B1%EA%B8%80%ED%86%A4-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88---2) - `@Configuration`에 대해
* [컴포넌트 스캔](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/componentScan/componentScan.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EC%8A%A4%EC%BA%94) - 자동 빈 등록
* [의존관계 자동 주입(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/DI/DI_1.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9D%98%EC%A1%B4%EA%B4%80%EA%B3%84-%EC%9E%90%EB%8F%99-%EC%A3%BC%EC%9E%85---1) - 다양한 의존관계 주입 방법
* [의존관계 자동 주입(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/DI/DI_2.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9D%98%EC%A1%B4%EA%B4%80%EA%B3%84-%EC%9E%90%EB%8F%99-%EC%A3%BC%EC%9E%85---2) - 조회한 빈이 2개 이상일 때 구분하는 방법
* [빈 생명주기](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/beanLifeCycle/beanLifeCycle.md#%EB%B9%88-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0-%EC%BD%9C%EB%B0%B1) - 스프링 빈의 생명주기 관리
* [빈 스코프(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/beanScope/beanScope_1.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88-%EC%8A%A4%EC%BD%94%ED%94%84---1) - 스프링의 다양한 빈 스코프, 프로토타입 스코프
* [빈 스코프(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/basic/beanScope/beanScope_2.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88-%EC%8A%A4%EC%BD%94%ED%94%84---2) - 스프링이 다양한 빈 스코프, 웹 스코프

#### 고급

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/LogTrace.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0)
* 로그 추적기 개발
  * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/logTrace_1/LogTrace_1.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0---v1) - 가장 원초적인 방법
  * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/logTrace_2/LogTrace_2.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0---v2) - 동기화 문제 발생
  * [V3](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/logTrace_3/LogTrace_3.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0---v3) - 필드 동기화 사용, 동시성 문제 발생
  * [V4](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/logTrace_4/LogTrace_4.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0---v4) - 템플릿 메서드 패턴 적용
  * [V5](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/logTrace_5/LogTrace_5.md#%EB%A1%9C%EA%B7%B8-%EC%B6%94%EC%A0%81%EA%B8%B0---v5) - 템플릿 콜백 패턴 적용
* [동시성 문제](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/syncProblem/SyncProblem.md#%EB%8F%99%EC%8B%9C%EC%84%B1-%EB%AC%B8%EC%A0%9C---%EC%98%88%EC%A0%9C) - 동시성 문제에 대해
* [쓰레드 로컬](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/threadLocal/ThreadLocal.md#%EC%93%B0%EB%A0%88%EB%93%9C-%EB%A1%9C%EC%BB%AC) - 동시성 문제를 해결하는 쓰레드 로컬에 대해
* [템플릿 메서드 패턴](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/templateMethodPattern/TemplateMethodPattern.md#%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4) - 템플릿 메서드 패턴에 대해
* [전략 패턴](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/strategyPattern/StrategyPattern.md#%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B4) - 전략 패턴에 대해
* [프록시 적용](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/proxyAndDecorator/Proxy.md) - 인터페이스 기반 프록시와 구체 클래스 기반 프록시
  * [프록시 패턴](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/proxyAndDecorator/proxy/Proxy.md#%ED%94%84%EB%A1%9D%EC%8B%9C-%ED%8C%A8%ED%84%B4) - 프록시 패턴에 대해
  * [데코레이터 패턴](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/proxyAndDecorator/proxy/Proxy.md#%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4) - 데코레이터 패턴에 대해
* [JDK 동적 프록시](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/jdkDynamicProxy/JDKDynamicProxy.md#jdk-%EB%8F%99%EC%A0%81-%ED%94%84%EB%A1%9D%EC%8B%9C) - JDK 동적 프록시에 대해
  * [JDK 동적 프록시 적용](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/jdkDynamicProxy/JDKDynamicProxy.md#jdk-%EB%8F%99%EC%A0%81-%ED%94%84%EB%A1%9D%EC%8B%9C-%EC%A0%81%EC%9A%A9)
* [CGLIB](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/cglib/CGLIB.md#cglib) - `CGLIB`과 프록시 팩토리에 대해
  * [프록시 팩토리 적용](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/cglib/ApplyProxyFactory.md#%ED%94%84%EB%A1%9D%EC%8B%9C-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EC%A0%81%EC%9A%A9)
* [포인트컷, 어드바이스, 어드바이저](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/advisor/Advisor.md#%ED%8F%AC%EC%9D%B8%ED%8A%B8%EC%BB%B7-%EC%96%B4%EB%93%9C%EB%B0%94%EC%9D%B4%EC%8A%A4-%EC%96%B4%EB%93%9C%EB%B0%94%EC%9D%B4%EC%A0%80) - 포인트컷, 어드바이스, 어드바이저에 대해
* [빈 후처리기](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/beanPostProcessor/BeanPostProcessor.md#%EB%B9%88-%ED%9B%84%EC%B2%98%EB%A6%AC%EA%B8%B0) - 프록시 팩토리를 적용했을 때 문제점을 해결하는 빈 후처리기에 대해
  * [빈 후처리기 적용](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/beanPostProcessor/BeanPostProcessor.md#%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%B9%88-%ED%9B%84%EC%B2%98%EB%A6%AC%EA%B8%B0-%EC%A0%81%EC%9A%A9)
  * [스프링이 제공하는 빈 후처리기](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/beanPostProcessor/SpringBeanPostProcessor.md#%EC%8A%A4%ED%94%84%EB%A7%81%EC%9D%B4-%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94-%EB%B9%88-%ED%9B%84%EC%B2%98%EB%A6%AC%EA%B8%B0) - 스프링 AOP 기술 접목
* [@Aspect AOP](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/aspectAOP/AspectProxy.md#aspect-aop) - `@Aspect`에 대해
* 스프링 AOP
  * [개념](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/idea/SpringAopIdea.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B0%9C%EB%85%90) - 스프링 AOP에 대해 개념적으로 이해하기(적용 방식, 용어 등)
  * [구현](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0) - 스프링 AOP 구현
    * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_1_3.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v1) - `@Aspect` 사용
    * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_1_3.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v2) - 포인트컷 분리해보기
    * [V3](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_1_3.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v3) - 어드바이스 여러 개 적용
    * [V4](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_4_6.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v4) - 포인트컷을 외부 클래스로 분리
    * [V5](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_4_6.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v5) - 어드바이스 순서 지정
    * [V6](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/implement/SpringAopImplement_4_6.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EA%B5%AC%ED%98%84---v6) - 어드바이스 종류에 대해
  * [포인트컷](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop---%ED%8F%AC%EC%9D%B8%ED%8A%B8%EC%BB%B7) - 여러 포인트컷 지시자에 대해
    * [execution](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_1.md#%ED%8F%AC%EC%9D%B8%ED%8A%B8%EC%BB%B7-%EC%A7%80%EC%8B%9C%EC%9E%90) - `execution` 문법
    * [within](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_2.md#within) - `within` 문법
    * [args](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_2.md#args) - `args` 문법
    * [@target, @within](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_2.md#target-within) - `@target`, `@within`에 대해
    * [@annotation](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_3.md#annotation) - `@annotation`에 대해
    * [bean](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_3.md#bean) - `bean`에 대해
    * [매개변수 전달](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_3.md#%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%EC%A0%84%EB%8B%AC) - 포인트컷 표현식을 사용하여 어드바이스에 매개변수 전달
    * [this, target](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/pointcut/Pointcut_3.md#this%EC%99%80-target) - `this`와 `target`에 대해
  * [예제](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/example/Example.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C) - 스프링 AOP를 활용하여 로그 출력과 재시도를 하는 AOP 구현해보기
  * 주의사항 - 스프링 AOP 주의사항
    * [프록시 내부 호출](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/warn/Warn_1.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EC%A3%BC%EC%9D%98%EC%82%AC%ED%95%AD) - 프록시 내부 호출 문제와 여러가지 대안
    * [프록시 기술과 한계](https://github.com/genesis12345678/TIL/blob/main/Spring/advanced/springAOP/warn/Warn_2.md#%EC%8A%A4%ED%94%84%EB%A7%81-aop-%EC%A3%BC%EC%9D%98%EC%82%AC%ED%95%AD) - 프록시 기술의 한계(타입 캐스팅, 의존관계 주입, CGLIB)와 스프링의 해결책

</details>

<details>

<summary>스프링 MVC</summary>

#### 1편

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/springmvc_1.md#spring-mvc---1)
* [웹 애플리케이션](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/web_application/web_application.md#web-application) - 웹 애플리케이션에 대한 전반적인 이해
* [서블릿](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/servlet/servlet.md#%EC%84%9C%EB%B8%94%EB%A6%BF) - 서블릿 컨테이너 동작 방식과 `HttpServletRequest`, `HttpServletResponse`에 대해
* [JSP, MVC 패턴](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/jsp_mvc/jsp_mvc.md#jsp%EC%99%80-mvc-%ED%8C%A8%ED%84%B4) - 서블릿과 JSP, MVC 패턴에 대해
* [MVC 프레임워크 만들기](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/make_mvc/mvc.md#%ED%94%84%EB%A1%A0%ED%8A%B8-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC-%ED%8C%A8%ED%84%B4) - 프론트 컨트롤러 패턴으로 직접 MVC 프레임워크를 만들어보면서 컨트롤러에 대해 이해하기
* [스프링 MVC 구조](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/spring_mvc/spring_mvc.md#%EC%8A%A4%ED%94%84%EB%A7%81-mvc-%EA%B5%AC%EC%A1%B0) - MVC 프레임워크를 직접 만들어 본 것을 기반으로 스프링 MVC 구조 이해하기
* [스프링 MVC 기본 기능](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_1/springmvc_feature/feature.md#%EC%8A%A4%ED%94%84%EB%A7%81-mvc---%EA%B8%B0%EB%B3%B8-%EA%B8%B0%EB%8A%A5) - 스프링 MVC가 지원하는 요청과 응답의 여러가지 기능

#### 2편

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/springmvc_2.md#spring-mvc---2)
* [타임리프 기본 기능](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/thymeleaf/thymeleaf.md#%ED%83%80%EC%9E%84%EB%A6%AC%ED%94%84) - 타임리프와 타임리프 기본 문법
* [타임리프와 스프링](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/thymeleaf_spring/thymeleaf_spring.md#%ED%83%80%EC%9E%84%EB%A6%AC%ED%94%84---%EC%8A%A4%ED%94%84%EB%A7%81-%ED%86%B5%ED%95%A9) - 타임리프와 스프링 통합
* [메시지, 국제화](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/message/message.md#%EB%A9%94%EC%8B%9C%EC%A7%80-%EA%B5%AD%EC%A0%9C%ED%99%94) - 설정 파일(`.properties`)을 활용한 메시지 관리와 국제화 서비스
* [검증 Validation](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/validation/validation.md#%EA%B2%80%EC%A6%9D) - 요청에 대한 검증을 순수 코드부터 애노테이션 적용까지 점진적으로 알아보기
* [로그인 처리(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/login_1/login_1.md#%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%B2%98%EB%A6%AC---%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98) - 쿠키와 세션으로 로그인 처리를 구현하면서 쿠키와 세션 알아보기
* [로그인 처리(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/login_2/login_2.md#%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%B2%98%EB%A6%AC---%ED%95%84%ED%84%B0-%EC%9D%B8%ED%84%B0%EC%85%89%ED%84%B0) - 서블릿 필터와 스프링 인터셉터로 공통 관심사 해결
* [예외 처리와 오류 페이지](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/exception_errorPage/exception_errorPage.md#%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC%EC%99%80-%EC%98%A4%EB%A5%98-%ED%8E%98%EC%9D%B4%EC%A7%80) - 애플리케이션에서 예외가 발생했을 때 과정과 오류 페이지 관리
* [API 예외 처리](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/api_exception/api_exception.md#api-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC) - API 예외 처리를 순수 코드부터 애노테이션 적용까지 점진적으로 알아보기
* [스프링 타입 컨터버](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/typeConverter/typeConverter.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%83%80%EC%9E%85-%EC%BB%A8%EB%B2%84%ED%84%B0) - 컨터버와 포맷터에 대해
* [파일 업로드](https://github.com/genesis12345678/TIL/blob/main/Spring/springmvc_2/fileUpload/fileUpload.md#%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C) - 서블릿과 스프링으로 파일 업로드 해보기

</details>

<details>

<summary>스프링 DB</summary>

#### 1편

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/database_1.md#%EC%8A%A4%ED%94%84%EB%A7%81-db-1%ED%8E%B8)
* [JDBC](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/database_1.md#jdbc) - JDBC에 대해
* [커넥션 풀과 데이터 소스](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/connectionPool/connectionPool.md#%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80%EA%B3%BC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%86%8C%EC%8A%A4) - 커넥션 풀과 데이터 소스(`DataSource`)에 대해
* [트랜잭션](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/transaction/transaction.md#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98) - 트랜잭션 개념과 트랜잭션 적용 해보기
* [스프링 트랜잭션](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/spring_transaction/spring_transaction.md#%EC%8A%A4%ED%94%84%EB%A7%81%EA%B3%BC-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0---%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98) - 트랜잭션을 적용했을 때 문제점을 스프링으로 해결해보기
* [자바 예외](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/javaException/javaException.md#%EC%9E%90%EB%B0%94-%EC%98%88%EC%99%B8) - 자바의 예외에 대해(체크, 언체크 예외)
* [스프링 예외 처리](https://github.com/genesis12345678/TIL/blob/main/Spring/database_1/springException/springException.md#%EC%8A%A4%ED%94%84%EB%A7%81%EA%B3%BC-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0---%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC-%EB%B0%98%EB%B3%B5) - 스프링에서 예외 추상화를 하는 방법

#### 2편

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/db2.md#db2---%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%91%EA%B7%BC-%EA%B8%B0%EC%88%A0)
* [JdbcTemplate](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/jdbcTemplate/jdbcTemplate.md#jdbctemplate) - `JdbcTemplate` 구현하면서 알아보기
* [MyBatis](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/myBaits/myBatis.md#mybatis) - `MyBatis` 구현하면서 알아보기
* [JPA](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/jpa/jpa.md#jpa) - `JPA` 구현하면서 알아보기
* [스프링 데이터 JPA](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/springJpa/springJpa.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-jpa) - `스프링 데이터 JPA` 구현하면서 알아보기
* [Querydsl](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/querydsl/querydsl.md#querydsl) - `Querydsl` 구현하면서 알아보기
* [테스트](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/test/dbTest.md#db-%EC%A0%91%EA%B7%BC---%ED%85%8C%EC%8A%A4%ED%8A%B8) - 테스트 코드에서 DB 접근에 대해
* [활용 방안](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/tradeOff/tradeOff.md#%ED%99%9C%EC%9A%A9-%EB%B0%A9%EC%95%88) - `스프링 데이터 JPA`와 `Querydsl`을 같이 사용할 때 트레이드 오프
* [스프링 트랜잭션](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/transaction/transaction.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%9D%B4%ED%95%B4) - 스프링의 트랜잭션에 대해 더 알아보기
* [트랜잭션 전파(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/propagation/tx_propagation_1/tx_propagation.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%A0%84%ED%8C%8C-1) - 트랜잭션 전파에 대해
* [트랜잭션 전파(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/database_2/propagation/tx_propagation_2/tx_propagation.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%A0%84%ED%8C%8C-2) - 트랜잭션 전파 활용

</details>

<details>

<summary>스프링 부트</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/SpringBoot.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8)
* [웹 서버와 서블릿 컨테이너](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/servletContainer/ServletContainer.md#%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-%EC%84%9C%EB%B8%94%EB%A6%BF-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88) - 스프링 부트가 없는 과거 버전으로 개발해보기
* [내장 톰캣](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/embedTomcat/EmbedTomcat.md#%EB%82%B4%EC%9E%A5-%ED%86%B0%EC%BA%A3) - 내장 톰캣을 사용하여 여러 문제점들을 해결하고 스프링 부트 접목해보기
* [스프링 부트 스타터](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/starterLibrary/Library.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%EC%8A%A4%ED%83%80%ED%84%B0) - 스프링 부트가 라이브러리 버전 관리를 하는 방법
* [스프링 부트의 자동 구성](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/autoConfig/AutoConfig.md#%EC%9E%90%EB%8F%99-%EA%B5%AC%EC%84%B1) - 스프링 부트의 자동 구성에 대해
  * [자동 구성(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/autoConfig/AutoConfig.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%9D%98-%EC%9E%90%EB%8F%99-%EA%B5%AC%EC%84%B1) - 자동 구성을 직접 만들어보고 자동 구성 이해하기
  * [자동 구성(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/autoConfig/SpringBootAutoConfig_2.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%9D%98-%EC%9E%90%EB%8F%99-%EA%B5%AC%EC%84%B1) - 라이브러리를 직접 만들어보고 자동 구성 이해하기
* [외부 설정과 프로필](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/ExternalConfig.md#%EC%99%B8%EB%B6%80-%EC%84%A4%EC%A0%95) - 외부 설정으로 데이터를 관리하는 방법
  * [OS 환경 변수](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/OS.md#%EC%99%B8%EB%B6%80-%EC%84%A4%EC%A0%95---os-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98) - OS 환경 변수 사용법
  * [자바 시스템 속성](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/JavaSystem.md#%EC%99%B8%EB%B6%80-%EC%84%A4%EC%A0%95---%EC%9E%90%EB%B0%94-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%86%8D%EC%84%B1) - 자바 시스템 속성 사용법
  * [커맨드 라인 인수](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/CommandLine.md#%EC%99%B8%EB%B6%80-%EC%84%A4%EC%A0%95---%EC%BB%A4%EB%A7%A8%EB%93%9C-%EB%9D%BC%EC%9D%B8-%EC%9D%B8%EC%88%98) - 커맨드 라인 인수 사용법
  * [스프링 통합](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/SpringCombine.md#%EC%8A%A4%ED%94%84%EB%A7%81-%ED%86%B5%ED%95%A9) - 여러 외부 설정 값에 따라서 스프링이 데이터를 읽는 방법
  * [설정 데이터](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/ExternalFile.md#%EC%84%A4%EC%A0%95-%EB%8D%B0%EC%9D%B4%ED%84%B0---%EC%99%B8%EB%B6%80-%ED%8C%8C%EC%9D%BC) - 설정 데이터(`.properties`) 외부 파일과 내부 파일, 우선순위에 대해
  * [외부 설정 사용](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/ExternalRead.md#%EC%99%B8%EB%B6%80-%EC%84%A4%EC%A0%95-%EC%82%AC%EC%9A%A9) - `@Value`와 `@ConfigurationProperties`에 대해
  * [YAML](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/YAML.md#yaml) - `.yml`에 대해
  * [@Profile](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/externalConfig/%40Profile.md#profile) - `@Profile`에 대해
* [액츄에이터](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Actuator.md#%EC%95%A1%EC%B8%84%EC%97%90%EC%9D%B4%ED%84%B0) - 스프링 부트 액츄에이터에 대해
  * [시작](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Basic.md#%EC%95%A1%EC%B8%84%EC%97%90%EC%9D%B4%ED%84%B0-%EC%8B%9C%EC%9E%91) - 액츄에이터 기본 사용법과 엔드포인트
  * [헬스 정보](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Health.md#%ED%97%AC%EC%8A%A4-%EC%A0%95%EB%B3%B4) - 액츄에이터 헬스 정보에 대해
  * [애플리케이션 정보](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Info.md#%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%A0%95%EB%B3%B4) - 액츄에이터 애플리케이션 정보에 대해
  * [로거](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Logger.md#%EB%A1%9C%EA%B1%B0) - 액츄에이션 로거 정보에 대해
  * [HTTP 요청 응답 기록](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/HttpExchange.md#http-%EC%9A%94%EC%B2%AD-%EC%9D%91%EB%8B%B5-%EA%B8%B0%EB%A1%9D) - 액츄에이터 HTTP 요청 응답 기록에 대해
  * [보안](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/actuator/Security.md#%EC%95%A1%EC%B8%84%EC%97%90%EC%9D%B4%ED%84%B0-%EB%B3%B4%EC%95%88) - 액츄에이터 보안 유의점
* [마이크로미터](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/micrometer.md#%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EB%AF%B8%ED%84%B0) - 마이크로미터와 메트릭에 대해
  * [프로메테우스](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Prometheus.md#%ED%94%84%EB%A1%9C%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4) - 프로메테우스 기본 사용법과 기본 기능
  * [그라파나](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/SpringBoot.md#%EA%B7%B8%EB%9D%BC%ED%8C%8C%EB%82%98) - 그라파나 기본 사용법
* [모니터링 메트릭 활용](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/MetricsUse.md#%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EB%A9%94%ED%8A%B8%EB%A6%AD-%ED%99%9C%EC%9A%A9) - 비즈니스 메트릭 등록해보기, 실무 모니터링 팁
  * [카운터](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Counter.md#%EB%A9%94%ED%8A%B8%EB%A6%AD-%EB%93%B1%EB%A1%9D---%EC%B9%B4%EC%9A%B4%ED%84%B0) - 카운터 메트릭 등록
    * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Counter.md#%EC%B9%B4%EC%9A%B4%ED%84%B0---v1) - 코드로 만들기
    * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Counter.md#%EC%B9%B4%EC%9A%B4%ED%84%B0---v2) - 애노테이션 적용
  * [타이머](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Timer.md#%EB%A9%94%ED%8A%B8%EB%A6%AD-%EB%93%B1%EB%A1%9D---%ED%83%80%EC%9D%B4%EB%A8%B8) - 타이머 메트릭 등록
    * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Timer.md#%ED%83%80%EC%9D%B4%EB%A8%B8---v1) - 코드로 만들기
    * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Timer.md#%ED%83%80%EC%9D%B4%EB%A8%B8---v2) - 애노테이션 적용
  * [게이지](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Gauge.md#%EB%A9%94%ED%8A%B8%EB%A6%AD-%EB%93%B1%EB%A1%9D---%EA%B2%8C%EC%9D%B4%EC%A7%80) - 게이지 메트릭 등록
    * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Gauge.md#%EA%B2%8C%EC%9D%B4%EC%A7%80---v1) - 코드로 만들기
    * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/springboot/monitoring/Gauge.md#%EA%B2%8C%EC%9D%B4%EC%A7%80---v2) - 간단한 버전

</details>

<details>

<summary>스프링 시큐리티</summary>

* [스프링 시큐리티](https://github.com/genesis12345678/TIL/blob/main/Spring/security/security/main.md)
* [OAuth 2.0](https://github.com/genesis12345678/TIL/blob/main/Spring/security/oauth/main.md)

</details>

***

### JPA

<details>

<summary>기본</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/jpa.md#jpa)
* [영속성 컨텍스트](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/persistenceContext/persistenceContext.md#%EC%98%81%EC%86%8D%EC%84%B1-%EA%B4%80%EB%A6%AC) - 영속성 컨텍스트에 대한 용어 이해
* [엔티티 매핑](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/entityMapping/entityMapping.md#%EC%97%94%ED%8B%B0%ED%8B%B0-%EB%A7%A4%ED%95%91) - 엔티티와 테이블 매핑 기본
* [연관 관계 매핑](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/related/related.md#%EC%97%B0%EA%B4%80-%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91) - 단방향, 양방향, 연관관계의 주인에 대해
* [다양한 연관 관계 매핑](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/related/relateds.md#%EB%8B%A4%EC%96%91%ED%95%9C-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84) - 일대일, 다대일 등의 연관관계에 대해
* [고급 매핑](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/inheritance/inheritance.md#%EC%83%81%EC%86%8D%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91) - 테이블 상속 구현하기
* [프록시](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/proxy/proxy.md#%ED%94%84%EB%A1%9D%EC%8B%9C) - JPA의 프록시 기술, 즉시 로딩과 지연 로딩, 영속성 전이에 대해
* [값 타입](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/valueType/valueType.md#%EA%B0%92-%ED%83%80%EC%9E%85) - 임베디드 타입과 불변 객체, 값 타입 컬렉션에 대해
* [JPQL(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/jpql/jpql.md#jpql) - `JPQL` 기본 사용법
* [JPQL(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/jpql/jpql_2.md#jpql) - `JPQL` 심화 사용법

</details>

<details>

<summary>JPA를 활용한 웹 애플리케이션 개발 - 1</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_1/Use.md#jpa%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9B%B9-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C)
* [엔티티 개발](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_1/entity/Design.md#%EC%84%A4%EA%B3%84) - 엔티티 클래스 개발 및 엔티티 설계 시 주의할 점
* [도메인 개발](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_1/domain/Domain.md#%EB%8F%84%EB%A9%94%EC%9D%B8-%EA%B0%9C%EB%B0%9C) - 레포지토리 및 서비스 계층 개발
* [웹 계층 개발](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_1/web/Web.md#%EC%9B%B9-%EA%B3%84%EC%B8%B5-%EA%B0%9C%EB%B0%9C) - 웹 계층 개발 및 **변경 감지와 병합**에 대해

</details>

<details>

<summary>JPA를 활용한 웹 애플리케이션 개발 - 2</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/Use.md#jpa%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9B%B9-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C)
* [API 조회 기본](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/Basic.md#%ED%9A%8C%EC%9B%90-api) - 기본적인 등록, 수정, 조회 API
* [지연 로딩과 조회 성능 최적화](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A7%80%EC%97%B0-%EB%A1%9C%EB%94%A9%EA%B3%BC-%EC%A1%B0%ED%9A%8C-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94) - `XToOne` 연관관계 조회 성능 최적화
  * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C---v1) - 엔티티 직접 노출
  * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C---v2) - 엔티티 DTO 변환
  * [V3](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C---v3) - DTO로 변환 후 페치 조인 적용
  * [V4](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C---v4) - DTO로 바로 조회
  * [정리](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OptimizingInquiry.md#%EC%A0%95%EB%A6%AC)
* [컬렉션 조회 성능 최적화](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%BB%AC%EB%A0%89%EC%85%98-%EC%A1%B0%ED%9A%8C-%EC%B5%9C%EC%A0%81%ED%99%94) - `XToMany` 연관관계 조회 성능 최적화
  * [V1](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v1) - 엔티티 직접 노출
  * [V2](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v2) - 엔티티 DTO 변환
  * [V3](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v3) - DTO로 변환 후 페치 조인 적용(페이징 불가능)
  * [V3.1](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v31) - `V3` 페이징 불가능 문제 해결
  * [V4](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v4) - DTO로 바로 조회(`N + 1`문제 발생)
  * [V5](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v5) - DTO로 바로 조회, 컬렉션 조회 최적화
  * [V6](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A1%B0%ED%9A%8C---v6) - DTO로 바로 조회, 플랫 데이터 최적화
  * [정리](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/CollectionOptimizing.md#%EC%A0%95%EB%A6%AC)
* [OSIV](https://github.com/genesis12345678/TIL/blob/main/Spring/jpa/use_2/OSIV.md#osivopen-session-in-view) - `OSIV`에 대해

</details>

<details>

<summary>스프링 데이터 JPA</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/spring_data_jpa.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-jpa)
* [공통 인터페이스](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/common_interface/common_interface.md#%EA%B3%B5%ED%86%B5-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EA%B8%B0%EB%8A%A5) - 스프링 데이터 JPA의 구조
* [쿼리 메서드 기능(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/query_method/query_method_1.md#%EC%BF%BC%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5---1) - 메서드 이름으로 쿼리 생성, `@Query` 등에 대해
* [쿼리 메서드 기능(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/query_method/query_method_2.md#%EC%BF%BC%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C---2) - 페이징, `@EntityGraph`등에 대해
* [확장 기능](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/extend/extend.md#%ED%99%95%EC%9E%A5-%EA%B8%B0%EB%8A%A5) - 스프링 데이터 JPA를 확장하여 사용할 수 있는 기술들(`Auditing`, `Web`확장 등)
* [분석](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/analyse/analyse.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-jpa-%EB%B6%84%EC%84%9D) - 스프링 데이터 JPA가 사용하는 구현체와 새로운 엔티티를 구별하는 방법에 대해
* [그 외 기능들](https://github.com/genesis12345678/TIL/blob/main/Spring/dataJpa/functions/functions.md#%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-jpa-%EB%82%98%EB%A8%B8%EC%A7%80-%EA%B8%B0%EB%8A%A5%EB%93%A4) - 프로젝션과 Native Query

</details>

<details>

<summary>Querydsl</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/querydsl.md#querydsl)
* [기본 문법(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/basic/basic_1.md#querydsl-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95---1) - 검색, 결과 조회, 정렬, 페이징
* [기본 문법(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/basic/basic_2.md#querydsl-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95---2) - 집합 함수, 조인, 페치 조인
* [기본 문법(3)](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/basic/basic_3.md#querydsl-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95---3) - 서브 쿼리, `Case`문
* [중급 문법(1)](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/intermidate/intermediate_1.md#querydsl-%EC%A4%91%EA%B8%89-%EB%AC%B8%EB%B2%95---1) - 프로젝션 결과 반환의 여러가지 방법
* [중급 문법(2)](https://github.com/genesis12345678/TIL/blob/main/Spring/querydsl/intermidate/intermediate_2.md#querydsl-%EC%A4%91%EA%B8%89-%EB%AC%B8%EB%B2%95---2) - 동적 쿼리, 벌크 연산

</details>

***

### CS 💻

<details>

<summary>HTTP</summary>

* [메인](https://github.com/genesis12345678/TIL/blob/main/Http/HTTP.md#http-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D)
* [인터넷 네트워크](https://github.com/genesis12345678/TIL/blob/main/Http/network/network.md#ip---%EC%9D%B8%ED%84%B0%EB%84%B7-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C) - `IP`, `TCP와 UDP`, `PORT`, `DNS`에 대해
* [URI](https://github.com/genesis12345678/TIL/blob/main/Http/uri/uri.md#uri) - `URI`와 웹 브라우저 요청의 흐름
* [Http](https://github.com/genesis12345678/TIL/blob/main/Http/http/http.md#http) - `Http` 특징에 대해
* [Http 메서드](https://github.com/genesis12345678/TIL/blob/main/Http/httpMethod/httpMethod.md#http-method) - `Http` 메서드와 API 설계 예시
* [Http 상태코드](https://github.com/genesis12345678/TIL/blob/main/Http/httpStatusCode/httpStatusCode.md#http-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C) - 여러가지 `Http` 상태코드에 대해
* [Http 일반헤더](https://github.com/genesis12345678/TIL/blob/main/Http/httpHeader_1/header_1.md#http-%EC%9D%BC%EB%B0%98-%ED%97%A4%EB%8D%94) - `Http` 헤더의 표현, 협상, 전송 방식, 정보, 인증, 쿠키에 대해
* [Http 헤더(Cache)](https://github.com/genesis12345678/TIL/blob/main/Http/httpHeader_2/httpHeader_2.md#http-%ED%97%A4%EB%8D%94---cache) - `Http` 헤더의 캐시(`Cache`)에 대해

</details>

<details>

<summary>OS</summary>

* [PCB](https://github.com/genesis12345678/TIL/blob/main/OS/PCB_and_ContextSwitching/pcb.md#pcb--context-switching) - `PCB`와 `컨텍스트 스위칭`에 대해
* [CPU Scheduling](https://github.com/genesis12345678/TIL/blob/main/OS/cpuScheduling/Scheduling.md#cpu-scheduling) - `CPU 스케줄링`에 대해(`FCFS`, `SJF` 등)
* [Memory](https://github.com/genesis12345678/TIL/blob/main/OS/memory/memory.md#memory---%EB%A9%94%EB%AA%A8%EB%A6%AC) - `Memory` 영역에 대해
* [OS](https://github.com/genesis12345678/TIL/blob/main/OS/os/OperatingSystem.md#os---%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C) - 운영체제(`OS`)에 대해
* [Process](https://github.com/genesis12345678/TIL/blob/main/OS/process/process.md#process---%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4) - `Process`, `Thread`, `멀티 태스킹`에 대해

</details>

<details>

<summary>컴퓨터 구조와 운영체제</summary>

* [컴퓨터 구조와 운영체제](https://github.com/genesis12345678/TIL/blob/main/cs/Main.md)

</details>

<details>

<summary>네트워크</summary>

* [네트워크](https://github.com/genesis12345678/TIL/blob/main/cs/network/Main.md)

</details>

***

### 자료구조 📊

* [자료구조란?](https://github.com/genesis12345678/TIL/blob/main/dataStructure/dataStructure/dataStructure.md#%EC%9E%90%EB%A3%8C-%EA%B5%AC%EC%A1%B0)

<details>

<summary>선형 자료구조</summary>

* [배열](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/Array/Array.md#array---%EB%B0%B0%EC%97%B4) - `Array`와 `ArrayList`에 대해
  * [`ArrayList` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/Array/ArrayList.java)
* [연결 리스트](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/linkedList/LinkedList.md#linkedlist) - `LinkedList`에 대해
  * [`SingleLinkedList` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/linkedList/singleLinkedList/SinglyLinkedList.java)
  * [`DoubleLinkedList` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/linkedList/doubleLinkedList/DoublyLinkedList.java#L20)
* [스택](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/stack/Stack.md#stack---%EC%8A%A4%ED%83%9D) - `Stack`에 대해
  * [`LinkedStack` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/stack/linkedStack/LinkedStack.java)
  * [`ArrayStack` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/stack/arrayStack/ArrayStack.java)
* [큐](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/queue/Queue.md#queue---%ED%81%90) - `Queue`에 대해
  * [`LinkedtQueue` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/queue/linkedQueue/LinkedListQueue.java)
  * [`ArrayQueue` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/queue/arrayQueue/ArrayQueue.java)
* [데크](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/dequeue/Deque.md#deque-%EB%8D%B0%ED%81%AC) - `Deque`에 대해
  * [`LinkedDeque` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/dequeue/linkedDeque/LinkedDeque.java)
  * [`ArrayDeque` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/dequeue/arrayDeque/ArrayDeque.java)
* [해시 테이블](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/hash/hash.md#%ED%95%B4%EC%8B%9Chash) - `Hash`에 대해
  * [`HashSet` 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/linear/hash/hashSet/HashSet.java)

</details>

<details>

<summary>비선형 자료구조</summary>

* [그래프](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/graph/graph.md#%EA%B7%B8%EB%9E%98%ED%94%84) - `Graph`와 `트리`에 대해
  * [인접 행렬 방식 예제](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/graph/ArrayGraph.java)
  * [인접 리스트 방식 예제](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/graph/LinkedGraph.java)
* [힙](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/heap/heap.md#heap---%ED%9E%99) - `Heap`에 대해
  * [최소힙(`MinHeap`) 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/heap/minHeap/MinHeap.java)
  * [최대힙(`MaxHeap`) 직접 구현해보기](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/heap/maxHeap/MaxHeap.java)
* [이진 탐색 트리](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/bst/BST.md) - 개념 및 구현
* [AVL 트리](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/avl/AVLTree.md) - 개념 및 구현
* [Red-Black 트리](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/redblack/red-black.md) - 개념 및 구현
* [B-트리](https://github.com/genesis12345678/TIL/blob/main/dataStructure/non_linear/btree/btree.md) - 개념 및 구현

</details>

***

### GIT

* [메인](https://github.com/genesis12345678/TIL/blob/main/git/Main.md#git)

<details>

<summary>기본</summary>

* [초반 설정](https://github.com/genesis12345678/TIL/blob/main/git/Start.md#git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95) - `Git`을 사용할 때 최초로 하는 설정(`config`와 `.gitignore`)
* [변경사항 저장](https://github.com/genesis12345678/TIL/blob/main/git/Save.md#%EB%B3%80%EA%B2%BD%EC%82%AC%ED%95%AD-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0) - 변경사항을 커밋하기

</details>

<details>

<summary>Branch</summary>

* [기본적인 브랜치 다루는 방법](https://github.com/genesis12345678/TIL/blob/main/git/Branch.md#branch) - 생성, 확인, 이동, 삭제 등
* [브랜치 합치기](https://github.com/genesis12345678/TIL/blob/main/git/Branch.md#%EB%B8%8C%EB%9E%9C%EC%B9%98-%ED%95%A9%EC%B9%98%EA%B8%B0) - `merge`와 `rebase`
* [Git의 merge 전략](https://github.com/genesis12345678/TIL/blob/main/git/Branch.md#git%EC%9D%98-merge-%EC%A0%84%EB%9E%B5) - `fast-forward`, `3-way merge`, 다양한 `merge` 옵션들에 대해
* [다른 브랜치](https://github.com/genesis12345678/TIL/blob/main/git/Branch.md#%EB%8B%A4%EB%A5%B8-%EB%B8%8C%EB%9E%9C%EC%B9%98%EC%97%90%EC%84%9C-%EC%9B%90%ED%95%98%EB%8A%94-%EC%BB%A4%EB%B0%8B-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0) - 다른 브랜치에서 원하는 커밋 가져오기(`cherry-pick`), 파생된 브랜치 옮겨붙이기(`rebase --onto`), 커밋들 하나로 묶어 가져오기(`--squash`)
* [Gitflow](https://github.com/genesis12345678/TIL/blob/main/git/Branch.md#gitflow) - 협업을 위한 브랜칭 전략

</details>

<details>

<summary>되돌리기</summary>

* [과거로 가기](https://github.com/genesis12345678/TIL/blob/main/git/Past.md#%EA%B3%BC%EA%B1%B0%EB%A1%9C-%EA%B0%80%EA%B8%B0) - `reset`과 `revert`
* [취소와 되돌리기](https://github.com/genesis12345678/TIL/blob/main/git/Revert.md#%EC%B7%A8%EC%86%8C%EC%99%80-%EB%90%98%EB%8F%8C%EB%A6%AC%EA%B8%B0) - `Git`에서 관리되지 않는 파일들 삭제, 커밋하지 않은 변경사항 되돌리기, `reset` 복구하기

</details>

<details>

<summary>Git 더 알아보기</summary>

* [Git의 3가지 공간](https://github.com/genesis12345678/TIL/blob/main/git/Deep.md#git%EC%9D%98-3%EA%B0%80%EC%A7%80-%EA%B3%B5%EA%B0%84) - `Git`이 파일을 관리하는 방법에 대해(+`reset`의 3가지 옵션)
* [HEAD](https://github.com/genesis12345678/TIL/blob/main/git/Deep.md#git%EC%9D%98-head) - `HEAD`라는 개념을 활용하는 방법
* [fetch vs pull](https://github.com/genesis12345678/TIL/blob/main/git/Deep.md#fetch%EC%99%80-pull) - `fetch`와 `pull`의 차이점
* [Help](https://github.com/genesis12345678/TIL/blob/main/git/Deep.md#git-help) - `Git help`에 대해
* [Config](https://github.com/genesis12345678/TIL/blob/main/git/Deep.md#git-config) - 설정값 보기, 단축키 설정 등 `Git config` 관련 명령어

</details>

<details>

<summary>원격 저장소</summary>

* [원격 저장소](https://github.com/genesis12345678/TIL/blob/main/git/GitHub.md#%EC%9B%90%EA%B2%A9-%EC%A0%80%EC%9E%A5%EC%86%8Cgithub) - `GitHub`에 대해
  * 로컬과 원격 연결
  * 원격 저장소에서 프로젝트 가져오기
  * `pull`을 하는 두 가지 방법

</details>

<details>

<summary>커밋 관리</summary>

* [커밋 권장사항](https://github.com/genesis12345678/TIL/blob/main/git/Commit.md#%EC%9E%91%EC%97%85%EC%9D%84-%EC%BB%A4%EB%B0%8B%ED%95%A0-%EB%95%8C-%EA%B6%8C%EC%9E%A5%EC%82%AC%ED%95%AD) - 커밋 권장사항 및 컨벤션
* [세심하게 커밋](https://github.com/genesis12345678/TIL/blob/main/git/Commit.md#%EC%84%B8%EC%8B%AC%ED%95%98%EA%B2%8C-%EC%8A%A4%ED%85%8C%EC%9D%B4%EC%A7%95-%ED%95%98%EA%B3%A0-%EC%BB%A4%EB%B0%8B%ED%95%98%EA%B8%B0) - `hunk`별 스테이징 진행
* [커밋 치워두기](https://github.com/genesis12345678/TIL/blob/main/git/Commit.md#%EC%BB%A4%EB%B0%8B%ED%95%98%EA%B8%B0-%EC%95%A0%EB%A7%A4%ED%95%9C-%EB%B3%80%ED%99%94-%EC%B9%98%EC%9B%8C%EB%91%90%EA%B8%B0) - `stash`에 대해
* [커밋 수정하기](https://github.com/genesis12345678/TIL/blob/main/git/Commit.md#%EC%BB%A4%EB%B0%8B-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0) - 과거 커밋 내역을 수정하는 방법
* [태그](https://github.com/genesis12345678/TIL/blob/main/git/Commit.md#%EC%BB%A4%EB%B0%8B-%ED%83%9C%EA%B7%B8) - `Git`의 `Tag`에 대해

</details>

<details>

<summary>분석과 디버깅</summary>

* [log](https://github.com/genesis12345678/TIL/blob/main/git/Debug.md#log) - `git log`의 다양한 옵션들
* [차이 살펴보기](https://github.com/genesis12345678/TIL/blob/main/git/Debug.md#%EC%B0%A8%EC%9D%B4-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0) - 파일, 커밋, 브랜치의 차이를 CLI로 알아보는 방법
* [오류 발생지점 찾기](https://github.com/genesis12345678/TIL/blob/main/git/Debug.md#%EC%98%A4%EB%A5%98-%EB%B0%9C%EC%83%9D-%EC%8B%9C%EC%A0%90-%EC%B0%BE%EA%B8%B0) - `git`으로 오류가 발생하는 커밋 지점을 찾는 방법

</details>

***

### Algorithm 🧠

* [메인](https://github.com/genesis12345678/TIL/blob/main/algorithm/Main.md#%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98)
* [시간 복잡도](https://github.com/genesis12345678/TIL/blob/main/algorithm/Algorithm.md#%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EB%8F%84-%ED%91%9C%EA%B8%B0%EB%B2%95) - 시간 복잡도 표기법과 활용에 대해

<details>

<summary>자료구조</summary>

* [배열과 리스트](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/array/List.md#%EB%B0%B0%EC%97%B4%EA%B3%BC-%EB%A6%AC%EC%8A%A4%ED%8A%B8) - 배열과 리스트 자료구조
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/array/Example_1.md#%EB%B0%B0%EC%97%B4%EA%B3%BC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/array/Example_2.md#%EB%B0%B0%EC%97%B4%EA%B3%BC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%98%88%EC%A0%9C---1)
* [구간 합](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/sectionSum/Section.md#%EA%B5%AC%EA%B0%84-%ED%95%A9) - 합 배열을 이용한 구간 합
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/sectionSum/Example_1.md#%EA%B5%AC%EA%B0%84-%ED%95%A9-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/sectionSum/Example_2.md#%EA%B5%AC%EA%B0%84-%ED%95%A9-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/sectionSum/Example_3.md#%EA%B5%AC%EA%B0%84-%ED%95%A9-%EC%98%88%EC%A0%9C---3)
* [투 포인터](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/twoPointer/TwoPointer.md#%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0) - 두 개의 포인터로 시간 복잡도 최적화
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/twoPointer/Example_1.md#%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/twoPointer/Example_2.md#%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/twoPointer/Example_3.md#%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-%EC%98%88%EC%A0%9C---3)
* [슬라이딩 윈도우](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/slidingWindow/SlidingWindow.md#%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0) - 투 포인터 확장 개념
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/slidingWindow/Example_1.md#%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/slidingWindow/Example_2.md#%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%98%88%EC%A0%9C---2)
* [스택](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/stack/Stack.md#%EC%8A%A4%ED%83%9D) - 스택 자료구조
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/stack/Example_1.md#%EC%8A%A4%ED%83%9D-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/stack/Example_2.md#%EC%8A%A4%ED%83%9D-%EC%98%88%EC%A0%9C---2)
* [큐](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/queue/Queue.md#%ED%81%90) - 큐 자료구조
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/queue/Example_1.md#%ED%81%90-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dataStructure/queue/Example_2.md#%ED%81%90-%EC%98%88%EC%A0%9C---2)

</details>

<details>

<summary>정렬</summary>

* [버블 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/bubbleSort/BubbleSort.md#%EB%B2%84%EB%B8%94-%EC%A0%95%EB%A0%AC) - `swap`, `O(n^2)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/bubbleSort/Example_1.md#%EB%B2%84%EB%B8%94-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/bubbleSort/Example_2.md#%EB%B2%84%EB%B8%94-%EC%86%8C%ED%8A%B8-%EC%98%88%EC%A0%9C---2)
* [선택 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/selectionSort/SelectionSort.md#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC) - `O(n^2)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/selectionSort/Example_1.md#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
* [삽입 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/insertionSort/InsertionSort.md#%EC%82%BD%EC%9E%85-%EC%A0%95%EB%A0%AC) - `O(N^2)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/insertionSort/Example_1.md#%EC%82%BD%EC%9E%85-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
* [퀵 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/quickSort/QuickSort.md#%ED%80%B5-%EC%A0%95%EB%A0%AC) - `pivot`, 평균 : `O(nlogn)`, 최악 : `O(n^2)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/quickSort/Example_1.md#%ED%80%B5-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
* [병합 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/mergeSort/MergeSort.md#%EB%B3%91%ED%95%A9-%EC%A0%95%EB%A0%AC) - 분할 정복, `O(nlogn)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/mergeSort/Example_1.md#%EB%B3%91%ED%95%A9-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/mergeSort/Example_2.md#%EB%B6%84%ED%95%A0-%EC%A0%95%EB%B3%B5-%EC%98%88%EC%A0%9C---2)
* [기수 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/radixSort/RadixSort.md#%EA%B8%B0%EC%88%98-%EC%A0%95%EB%A0%AC) - 계수 정렬(`counting sort`), `O(kn)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/sorting/radixSort/Example_1.md#%EA%B8%B0%EC%88%98-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)

</details>

<details>

<summary>탐색</summary>

* [깊이 우선 탐색](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/dfs/DFS.md#%EA%B9%8A%EC%9D%B4-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89) - `O(V+E)`, 재귀 함수
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/dfs/Example_1.md#%EA%B9%8A%EC%9D%B4-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/dfs/Example_2.md#%EA%B9%8A%EC%9D%B4-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/dfs/Example_3.md#%EA%B9%8A%EC%9D%B4-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---3)
* [너비 우선 탐색](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/bfs/BFS.md#%EB%84%88%EB%B9%84-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89) - `O(V+E)`, 큐, 최단 경로 보장
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/bfs/Example_1.md#%EB%84%88%EB%B9%84-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/bfs/Exmaple_2.md#%EB%84%88%EB%B9%84-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89--%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/bfs/Example_3.md#%EB%84%88%EB%B9%84-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---3)
* [이진 탐색](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/binary/BinarySearch.md#%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89) - 중앙값 비교, `O(logN)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/binary/Example_1.md#%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/binary/Example_2.md#%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/search/binary/Example_3.md#%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-%EC%98%88%EC%A0%9C---3)

</details>

<details>

<summary>그리디</summary>

* [그리디 알고리즘 이론](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Greedy.md#%EA%B7%B8%EB%A6%AC%EB%94%94)
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Example_1.md#%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Example_2.md#%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Example_3.md#%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%98%88%EC%A0%9C---3)
  * [예제 문제 - 4](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Example_4.md#%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%98%88%EC%A0%9C---4)
  * [예제 문제 - 5](https://github.com/genesis12345678/TIL/blob/main/algorithm/greedy/Example_5.md#%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%98%88%EC%A0%9C---5)

</details>

<details>

<summary>정수론</summary>

* [소수 구하기](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/getPrime/GetPrimeNumber.md#%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0) - 에라토스테네스의 체 원리로 소수 구하기
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/getPrime/Example_1.md#%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/getPrime/Example_2.md#%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/getPrime/Example_3.md#%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C---3)
  * [예제 문제 - 4](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/getPrime/Example_4.md#%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C---4)
* [오일러 피 함수](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/eulerPhi/EulerPhi.md#%EC%98%A4%EC%9D%BC%EB%9F%AC-%ED%94%BC-%ED%95%A8%EC%88%98) - `N`의 서로소 구하기(1 이외에 공약수가 없음)
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/eulerPhi/Example_1.md#%EC%98%A4%EC%9D%BC%EB%9F%AC-%ED%94%BC-%ED%95%A8%EC%88%98-%EC%98%88%EC%A0%9C---1)
* [유클리드 호제법](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Euclidean.md#%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95) - 두 수의 최대공약수 구하기
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Example_1.md#%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Example_2.md#%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Example_3.md#%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95-%EC%98%88%EC%A0%9C---3)
* [확장 유클리드 호제법](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Euclidean.md#%ED%99%95%EC%9E%A5-%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95) - 방정식의 해 구하기
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/numberTheory/euclidean/Example_4.md#%ED%99%95%EC%9E%A5-%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95-%EC%98%88%EC%A0%9C---1)

</details>

<details>

<summary>그래프</summary>

* [그래프의 표현](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/expression/GraphExpression.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%ED%91%9C%ED%98%84) - 에지 리스트, 인접 행렬, **인접 리스트**
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/expression/Example_1.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%ED%91%9C%ED%98%84-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/expression/Example_2.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%ED%91%9C%ED%98%84-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/expression/Example_3.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%ED%91%9C%ED%98%84-%EC%98%88%EC%A0%9C---3)
  * [예제 문제 - 4](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/expression/Example_4.md#%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%ED%91%9C%ED%98%84-%EC%98%88%EC%A0%9C---4)
* [유니온 파인드](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/unionFind/UnionFind.md#%EC%9C%A0%EB%8B%88%EC%98%A8-%ED%8C%8C%EC%9D%B8%EB%93%9C) - 그래프 탐색을 효율적으로 하기 위한 `union`과 `find` 연산
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/unionFind/Example_1.md#%EC%9C%A0%EB%8B%88%EC%98%A8-%ED%8C%8C%EC%9D%B8%EB%93%9C-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/unionFind/Example_2.md#%EC%9C%A0%EB%8B%88%EC%98%A8-%ED%8C%8C%EC%9D%B8%EB%93%9C-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/unionFind/Example_3.md#%EC%9C%A0%EB%8B%88%EC%98%A8-%ED%8C%8C%EC%9D%B8%EB%93%9C-%EC%98%88%EC%A0%9C---3)
* [위상 정렬](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/topologySort/Topology.md#%EC%9C%84%EC%83%81-%EC%A0%95%EB%A0%AC) - 노드 순서를 찾는 알고리즘, `O(V+E)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/topologySort/Example_1.md#%EC%9C%84%EC%83%81-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/topologySort/Example_2.md#%EC%9C%84%EC%83%81-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/topologySort/Example_3.md#%EC%9C%84%EC%83%81-%EC%A0%95%EB%A0%AC-%EC%98%88%EC%A0%9C---3)
* [다익스트라](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/dijkstra/Dijkstra.md#%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC) - 그래프에서 최단 거리를 구하는 알고리즘, `O(ElogV)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/dijkstra/Example_1.md#%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/dijkstra/Example_2.md#%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/dijkstra/Example_3.md#%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EC%98%88%EC%A0%9C---3)
* [벨만-포드](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/bellmanFord/Bellman.md#%EB%B2%A8%EB%A7%8C-%ED%8F%AC%EB%93%9C) - 그래프에서 최단 거리를 구하는 알고리즘(음수 사이클 존재 여부 판단), `O(VE)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/bellmanFord/Example_1.md#%EB%B2%A8%EB%A7%8C-%ED%8F%AC%EB%93%9C-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/bellmanFord/Example_2.md#%EB%B2%A8%EB%A7%8C-%ED%8F%AC%EB%93%9C-%EC%98%88%EC%A0%9C---2)
* [플로이드-워셜](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/floydWarshall/FloydWarshall.md#%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%9B%8C%EC%85%9C) - 3중 for 문으로 그래프에서 최단 거리를 구하는 알고리즘, `O(V^3)`
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/floydWarshall/Example_1.md#%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%9B%8C%EC%85%9C-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/floydWarshall/Example_2.md#%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%9B%8C%EC%85%9C-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/floydWarshall/Example_3.md#%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%9B%8C%EC%85%9C-%EC%98%88%EC%A0%9C---3)
* [최소 신장 트리](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/mst/MST.md#%EC%B5%9C%EC%86%8C-%EC%8B%A0%EC%9E%A5-%ED%8A%B8%EB%A6%AC) - 그래프에서 사용된 에지들의 가중치의 합 최소로 하는 트리(with 유니온 파인드)
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/mst/Example_1.md#%EC%B5%9C%EC%86%8C-%EC%8B%A0%EC%9E%A5-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/mst/Example_2.md#%EC%B5%9C%EC%86%8C-%EC%8B%A0%EC%9E%A5-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/graph/mst/Example_3.md#%EC%B5%9C%EC%86%8C-%EC%8B%A0%EC%9E%A5-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---3)

</details>

<details>

<summary>트리</summary>

* [트리](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/tree/Tree.md#%ED%8A%B8%EB%A6%AC) - 트리의 기본적인 개념
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/tree/Example_1.md#%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/tree/Example_2.md#%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---2)
* [트라이](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/tree/Tree.md#%ED%8A%B8%EB%9D%BC%EC%9D%B4) - 문자열 검색 트리 자료구조
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/tree/Example_3.md#%ED%8A%B8%EB%9D%BC%EC%9D%B4-%EC%98%88%EC%A0%9C---1)
* [이진 트리](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/binary/BinaryTree.md#%EC%9D%B4%EC%A7%84-%ED%8A%B8%EB%A6%AC) - 이진 트리의 특징을 활용한 인덱스 연산 방식 기초
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/binary/Example_1.md#%EC%9D%B4%EC%A7%84-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---1)
* [세그먼트 트리](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/segment/SegmentTree.md#%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%EB%A6%AC) - 이진 트리의 특징을 활용한 구간 합, 최댓값 또는 최솟값 구하기와 데이터 업데이트를 빠르게 하기
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/segment/Example_1.md#%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/segment/Example_2.md#%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/segment/Example_3.md#%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%EB%A6%AC-%EC%98%88%EC%A0%9C---3)
* [최소 공통 조상](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/lca/LCA.md#%EC%B5%9C%EC%86%8C-%EA%B3%B5%ED%86%B5-%EC%A1%B0%EC%83%81) - 트리 그래프에서 최소 공통 조상 찾기(일반적인 방법과 빠르게 찾는 방법)
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/lca/Example_1.md#%EC%B5%9C%EC%86%8C-%EA%B3%B5%ED%86%B5-%EC%A1%B0%EC%83%81-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/tree/lca/Example_2.md#%EC%B5%9C%EC%86%8C-%EA%B3%B5%ED%86%B5-%EC%A1%B0%EC%83%81-%EC%98%88%EC%A0%9C---2)

</details>

<details>

<summary>조합</summary>

* [조합](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Combination.md#%EC%A1%B0%ED%95%A9) - 동적 계획법의 기본이 되는 조합에 대해
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_1.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_2.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_3.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---3)
  * [예제 문제 - 4](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_4.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---4)
  * [예제 문제 - 5](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_5.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---5)
  * [예제 문제 - 6](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_6.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---6)
  * [예제 문제 - 7](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_7.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---7)
  * [예제 문제 - 8](https://github.com/genesis12345678/TIL/blob/main/algorithm/combination/Example_8.md#%EC%A1%B0%ED%95%A9-%EC%98%88%EC%A0%9C---8)

</details>

<details>

<summary>동적 계획법</summary>

* [동적 계획법](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/DP.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95) - 동적 계획법(`DP`) 핵심 이론
  * [예제 문제 - 1](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_1.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---1)
  * [예제 문제 - 2](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_2.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---2)
  * [예제 문제 - 3](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_3.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---3)
  * [예제 문제 - 4](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Examlple_4.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---4)
  * [예제 문제 - 5](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_5.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---5)
  * [예제 문제 - 6](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_6.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---6)
  * [예제 문제 - 7](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_7.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---7)
  * [예제 문제 - 8](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_8.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---8)
  * [예제 문제 - 9](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_9.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---9)
  * [예제 문제 - 10](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_10.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---10)
  * [예제 문제 - 11](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_11.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---11)
  * [예제 문제 - 12](https://github.com/genesis12345678/TIL/blob/main/algorithm/dynamic/Example_12.md#%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95-%EC%98%88%EC%A0%9C---12)

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://geun-00.gitbook.io/geun-00-docs/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
