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

# Today I Learned

* 미루지 말기 내일의 나를 믿지 말기
* 중요한 내용은 한 번 더 다듬어서 [블로그](https://devpanpan.tistory.com)에 업로드하기
* Issue, Project 기능 적극 활용하기

***

## algorithm

* [Binary Search](/today-i-learned/algorithm/binary_search.md)
* [Brute Force Search](/today-i-learned/algorithm/brute_force_search.md)
* [DFS BFS](/today-i-learned/algorithm/dfs_bfs.md)
* [Dijkstra](/today-i-learned/algorithm/dijkstra.md)
* [Dynamic Programming](/today-i-learned/algorithm/dynamic_programming.md)
* [Floyd-Warshall](/today-i-learned/algorithm/floyd-warshall.md)
* [Greedy](/today-i-learned/algorithm/greedy.md)
* [Sort](/today-i-learned/algorithm/sort.md)

## data-structure

* [Array, List, LinkedList](/today-i-learned/data-structure/array-_list-_linkedlist.md)
* [Graph vs Tree](/today-i-learned/data-structure/graph_vs_tree.md)
* [Hash, Map, HashMap](/today-i-learned/data-structure/hash-_map-_hashmap.md)
* [Heap](/today-i-learned/data-structure/heap.md)
* [Stack Queue](/today-i-learned/data-structure/stack_queue.md)

## database

* [Database Lock](/today-i-learned/database/database_lock.md)
* [Execution Plan](/today-i-learned/database/execution_plan.md)
* [Index](/today-i-learned/database/index.md)
* [Join Algorithm](/today-i-learned/database/join_algorithm.md)
* [MySQL vs MongoDB Connection 관리 전략 비교](https://github.com/hyh1016/TIL/blob/main/database/MySQL_vs_MongoDB_Connection_관리_전략_비교.md)
* [MySQL 사용자 권한부여](/today-i-learned/database/mysql_-_.md)
* [Normalization](/today-i-learned/database/normalization.md)
* [Row Oriented vs Column Oriented](/today-i-learned/database/row_oriented_vs_column_oriented.md)
* [Transaction](/today-i-learned/database/transaction.md)
* [Transaction Isolation Level](/today-i-learned/database/transaction_isolation_level.md)
* [VARCHAR의 길이제한](/today-i-learned/database/varchar-_.md)

## design-pattern

* [Abstract Factory Pattern](/today-i-learned/design-pattern/abstract_factory_pattern.md)
* [Adapter Pattern](/today-i-learned/design-pattern/adapter_pattern.md)
* [Bridge Pattern](/today-i-learned/design-pattern/bridge_pattern.md)
* [Builder Pattern](/today-i-learned/design-pattern/builder_pattern.md)
* [Chain of Responsibility Pattern](/today-i-learned/design-pattern/chain_of_responsibility_pattern.md)
* [Class Diagram](/today-i-learned/design-pattern/class_diagram.md)
* [Command Pattern](/today-i-learned/design-pattern/command_pattern.md)
* [Composite Pattern](/today-i-learned/design-pattern/composite_pattern.md)
* [Decorator Pattern](/today-i-learned/design-pattern/decorator_pattern.md)
* [Facade Pattern](/today-i-learned/design-pattern/facade_pattern.md)
* [Factory Method Pattern](/today-i-learned/design-pattern/factory_method_pattern.md)
* [Flyweight Pattern](/today-i-learned/design-pattern/flyweight_pattern.md)
* [Iterator Pattern](/today-i-learned/design-pattern/iterator_pattern.md)
* [Mediator Pattern](/today-i-learned/design-pattern/mediator_pattern.md)
* [Memento Pattern](/today-i-learned/design-pattern/memento_pattern.md)
* [Observer Pattern](/today-i-learned/design-pattern/observer_pattern.md)
* [Prototype Pattern](/today-i-learned/design-pattern/prototype_pattern.md)
* [Proxy Pattern](/today-i-learned/design-pattern/proxy_pattern.md)
* [SOLID](/today-i-learned/design-pattern/solid.md)
* [Singleton Pattern](/today-i-learned/design-pattern/singleton_pattern.md)
* [State Pattern](/today-i-learned/design-pattern/state_pattern.md)
* [Strategy Pattern](/today-i-learned/design-pattern/strategy_pattern.md)
* [Template Method Pattern](/today-i-learned/design-pattern/template_method_pattern.md)
* [UML](/today-i-learned/design-pattern/uml.md)
* [객체지향 패러다임](/today-i-learned/design-pattern/_.md)
* [결합도와 응집도](https://github.com/hyh1016/TIL/blob/main/design-pattern/결합도와_응집도.md)

## docker

* [Docker](/today-i-learned/docker/docker.md)
* [Docker Network](/today-i-learned/docker/docker_network.md)
* [Volume vs Bind Mount](https://github.com/hyh1016/TIL/blob/main/docker/Volume_vs_Bind_Mount.md)

## etc

* [Gradle](https://github.com/hyh1016/TIL/blob/main/etc/Gradle.md)
* [Gradle daemon](https://github.com/hyh1016/TIL/blob/main/etc/Gradle_daemon.md)
* [block-vs-non-block-sync-vs-async](/today-i-learned/etc/block-vs-non-block-sync-vs-async.md)

## git

* [Git Merge vs Git Rebase](/today-i-learned/git/git_merge_vs_git_rebase.md)
* [Interactive Rebase](https://github.com/hyh1016/TIL/blob/main/git/Interactive_Rebase.md)
* [자주 사용하는 Git 명령어 모음](/today-i-learned/git/_-_git_-_.md)

## java

* [Annotation](/today-i-learned/java/annotation.md)
* [Call method by reflection](https://github.com/hyh1016/TIL/blob/main/java/Call_method_by_reflection.md)
* [Exception Handling](/today-i-learned/java/exception_handling.md)
* [Generic](/today-i-learned/java/generic.md)
* [Generic wildcard를 이용한 extends super 사용 시 주의할 점](https://github.com/hyh1016/TIL/blob/main/java/Generic_wildcard를_이용한_extends_super_사용_시_주의할_점.md)
* [Graceful shutdown](https://github.com/hyh1016/TIL/blob/main/java/Graceful_shutdown.md)
* [JVM](/today-i-learned/java/jvm.md)
* [Java21 Improvement Record, Switch](https://github.com/hyh1016/TIL/blob/main/java/Java21_Improvement_Record,_Switch.md)
* [Java21 Sequenced Collections](https://github.com/hyh1016/TIL/blob/main/java/Java21_Sequenced_Collections.md)
* [Java21 Virtual Thread](https://github.com/hyh1016/TIL/blob/main/java/Java21_Virtual_Thread.md)
* [Java 코드의 실행 과정](/today-i-learned/java/java_-_-_.md)
* [Lambda Expression](/today-i-learned/java/lambda_expression.md)
* [Object Class](/today-i-learned/java/object_class.md)
* [Optional](/today-i-learned/java/optional.md)
* [Primitive Type & Reference Type](/today-i-learned/java/primitive_type_and_reference_type.md)
* [ReentrantLock](https://github.com/hyh1016/TIL/blob/main/java/ReentrantLock.md)
* [Reflection](/today-i-learned/java/reflection.md)
* [Serialize And Deserialize](/today-i-learned/java/serialize_and_deserialize.md)
* [Statement vs Prepared Statement](https://github.com/hyh1016/TIL/blob/main/java/Statement_vs_Prepared_Statement.md)
* [Stream](/today-i-learned/java/stream.md)
* [String, StringBuilder, StringBuffer](/today-i-learned/java/string-_stringbuilder-_stringbuffer.md)
* [Thread-safe Collection](https://github.com/hyh1016/TIL/blob/main/java/Thread-safe_Collection.md)
* [Tiles](/today-i-learned/java/tiles.md)
* [Type Casting](/today-i-learned/java/type_casting.md)
* [Why is sort() a static method](/today-i-learned/java/why_is_sort-_a_static_method.md)
* [map vs flatMap](https://github.com/hyh1016/TIL/blob/main/java/map_vs_flatMap.md)
* [tomcat architecture](https://github.com/hyh1016/TIL/blob/main/java/tomcat_architecture.md)
* [추상클래스와 인터페이스의 차이](/today-i-learned/java/_-_.md)

### effective-java

* [Item 1. static factory method](/today-i-learned/java/effective-java/item_1._static_factory_method.md)
* [Item 10. override equals](/today-i-learned/java/effective-java/item_10._override_equals.md)
* [Item 11. override hashCode](/today-i-learned/java/effective-java/item_11._override_hashcode.md)
* [Item 12. override toString](/today-i-learned/java/effective-java/item_12._override_tostring.md)
* [Item 13. override clone](/today-i-learned/java/effective-java/item_13._override_clone.md)
* [Item 14. implement comparable](/today-i-learned/java/effective-java/item_14._implement_comparable.md)
* [Item 15. field access modifier](/today-i-learned/java/effective-java/item_15._field_access_modifier.md)
* [Item 16. get method](/today-i-learned/java/effective-java/item_16._get_method.md)
* [Item 17. minimize mutability](/today-i-learned/java/effective-java/item_17._minimize_mutability.md)
* [Item 18. use composition instead extend](/today-i-learned/java/effective-java/item_18._use_composition_instead_extend.md)
* [Item 19. prepare docs if extend](/today-i-learned/java/effective-java/item_19._prepare_docs_if_extend.md)
* [Item 2. builder pattern](/today-i-learned/java/effective-java/item_2._builder_pattern.md)
* [Item 20. abstract class vs interface](/today-i-learned/java/effective-java/item_20._abstract_class_vs_interface.md)
* [Item 21. interface default method](/today-i-learned/java/effective-java/item_21._interface_default_method.md)
* [Item 22. use interface only type](/today-i-learned/java/effective-java/item_22._use_interface_only_type.md)
* [Item 23. use class hierarchy](/today-i-learned/java/effective-java/item_23._use_class_hierarchy.md)
* [Item 24. member class](/today-i-learned/java/effective-java/item_24._member_class.md)
* [Item 25. only one top level class](/today-i-learned/java/effective-java/item_25._only_one_top_level_class.md)
* [Item 26. don't use raw type](/today-i-learned/java/effective-java/item_26._dont_use_raw_type.md)
* [Item 27. remove unchecked warning](/today-i-learned/java/effective-java/item_27._remove_unchecked_warning.md)
* [Item 28. replace array with list](/today-i-learned/java/effective-java/item_28._replace_array_with_list.md)
* [Item 29. use generic type](/today-i-learned/java/effective-java/item_29._use_generic_type.md)
* [Item 3. singleton](/today-i-learned/java/effective-java/item_3._singleton.md)
* [Item 30. use generic method](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_30._use_generic_method.md)
* [Item 31. use wildcard type](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_31._use_wildcard_type.md)
* [Item 32. varargs with generic](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_32._varargs_with_generic.md)
* [Item 33. type safe heterogeneous container](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_33._type_safe_heterogeneous_container.md)
* [Item 34. enum type](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_34._enum_type.md)
* [Item 35. don't use enum ordinal](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_35._don%27t_use_enum_ordinal.md)
* [Item 36. EnumSet](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_36._EnumSet.md)
* [Item 37. EnumMap](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_37._EnumMap.md)
* [Item 38. use interface for extend enum](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_38._use_interface_for_extend_enum.md)
* [Item 39. annotation](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_39._annotation.md)
* [Item 4. private constructor](/today-i-learned/java/effective-java/item_4._private_constructor.md)
* [Item 40. @Override](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_40._@Override.md)
* [Item 41. marker interface](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_41._marker_interface.md)
* [Item 42. replace anonymous class with lambda](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_42._replace_anonymous_class_with_lambda.md)
* [Item 43. method reference](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_43._method_reference.md)
* [Item 44. default functional interface](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_44._default_functional_interface.md)
* [Item 45. stream](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_45._stream.md)
* [Item 46. collector](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_46._collector.md)
* [Item 47. return collection](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_47._return_collection.md)
* [Item 48. stream parallel](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_48._stream_parallel.md)
* [Item 49. validate parameter](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_49._validate_parameter.md)
* [Item 5. dependency injection](/today-i-learned/java/effective-java/item_5._dependency_injection.md)
* [Item 50. make defensive copies](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_50._make_defensive_copies.md)
* [Item 51. design method signatures carefully](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_51._design_method_signatures_carefully.md)
* [Item 52. use overloading judiciously](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_52._use_overloading_judiciously.md)
* [Item 53. varargs](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_53._varargs.md)
* [Item 54. return array or collections instead of null](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_54._return_array_or_collections_instead_of_null.md)
* [Item 54. use optional judiciously](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_54._use_optional_judiciously.md)
* [Item 55. return optional judiciously](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_55._return_optional_judiciously.md)
* [Item 56. write javadoc](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_56._write_javadoc.md)
* [Item 57. minimize scope of local variable](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_57._minimize_scope_of_local_variable.md)
* [Item 58. for-each](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_58._for-each.md)
* [Item 59. use library](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_59._use_library.md)
* [Item 6. reuse instance](/today-i-learned/java/effective-java/item_6._reuse_instance.md)
* [Item 60. if you need accurate answer, avoid float and double](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_60._if_you_need_accurate_answer,_avoid_float_and_double.md)
* [Item 61. use primitive type instead of wrapper](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_61._use_primitive_type_instead_of_wrapper.md)
* [Item 62. avoid string](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_62._avoid_string.md)
* [Item 63. avoid concat string](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_63._avoid_concat_string.md)
* [Item 64. refer interface](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_64._refer_interface.md)
* [Item 65. reflection](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_65._reflection.md)
* [Item 66. avoid using native method](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_66._avoid_using_native_method.md)
* [Item 67. optimize judiciously](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_67._optimize_judiciously.md)
* [Item 68. naming convention](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_68._naming_convention.md)
* [Item 69. use exceptions only for exceptional conditions](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_69._use_exceptions_only_for_exceptional_conditions.md)
* [Item 7. eliminate unused reference](/today-i-learned/java/effective-java/item_7._eliminate_unused_reference.md)
* [Item 70. checked, unchecked exception](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_70._checked,_unchecked_exception.md)
* [Item 71. avoid using unnecessary checked exceptions](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_71._avoid_using_unnecessary_checked_exceptions.md)
* [Item 72. use default exception](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_72._use_default_exception.md)
* [Item 73. translate low level exception](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_73._translate_low_level_exception.md)
* [Item 74. documentation exceptions thrown by method](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_74._documentation_exceptions_thrown_by_method.md)
* [Item 75. include failure capture information in detail messages](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_75._include_failure_capture_information_in_detail_messages.md)
* [Item 76. strive for failure atomicity](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_76._strive_for_failure_atomicity.md)
* [Item 77. don't ignore exceptions](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_77._don%27t_ignore_exceptions.md)
* [Item 78. synchronize access to shared mutable data](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_78._synchronize_access_to_shared_mutable_data.md)
* [Item 79. avoid excessive synchronization](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_79._avoid_excessive_synchronization.md)
* [Item 8. avoid using finalizer, cleaner](/today-i-learned/java/effective-java/item_8._avoid_using_finalizer-_cleaner.md)
* [Item 80. prefer executors, tasks, and stream to threads](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_80._prefer_executors,_tasks,_and_stream_to_threads.md)
* [Item 81. prefer concurrency utilities to wait and notify](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_81._prefer_concurrency_utilities_to_wait_and_notify.md)
* [Item 82. document thread safety](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_82._document_thread_safety.md)
* [Item 83. use lazy initialization judiciously](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_83._use_lazy_initialization_judiciously.md)
* [Item 84. don't depend on the thread scheduler](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_84._don%27t_depend_on_the_thread_scheduler.md)
* [Item 85. prefer alternatives to java serialization](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_85._prefer_alternatives_to_java_serialization.md)
* [Item 86. implement serializable with great caution](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_86._implement_serializable_with_great_caution.md)
* [Item 87. consider using a custom serialized form](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_87._consider_using_a_custom_serialized_form.md)
* [Item 88. write readObject methods defensively](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_88._write_readObject_methods_defensively.md)
* [Item 89. for instance control, prefer enum types to readResolve](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_89._for_instance_control,_prefer_enum_types_to_readResolve.md)
* [Item 9. try-with-resources](/today-i-learned/java/effective-java/item_9._try-with-resources.md)
* [Item 90. consider serialization proxies instead of serialized instances](https://github.com/hyh1016/TIL/blob/main/java/effective-java/Item_90._consider_serialization_proxies_instead_of_serialized_instances.md)

### jpa

* [@DynamicInsert, @DynamicUpdate](https://github.com/hyh1016/TIL/blob/main/java/jpa/@DynamicInsert,_@DynamicUpdate.md)
* [Entity Manager](https://github.com/hyh1016/TIL/blob/main/java/jpa/Entity_Manager.md)
* [Find by EntityManager vs JPQL select query](https://github.com/hyh1016/TIL/blob/main/java/jpa/Find_by_EntityManager_vs_JPQL_select_query.md)
* [JPA](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA.md)
* [JPA Cascade](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA_Cascade.md)
* [JPA Entity Equality](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA_Entity_Equality.md)
* [JPA Entity LifeCycle](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA_Entity_LifeCycle.md)
* [JPA Entity Lifecycle Event](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA_Entity_Lifecycle_Event.md)
* [JPA bulk update](https://github.com/hyh1016/TIL/blob/main/java/jpa/JPA_bulk_update.md)
* [Lock](https://github.com/hyh1016/TIL/blob/main/java/jpa/Lock.md)
* [Open Session In View](https://github.com/hyh1016/TIL/blob/main/java/jpa/Open_Session_In_View.md)
* [save() vs saveAndFlush()](https://github.com/hyh1016/TIL/blob/main/java/jpa/save\(\)_vs_saveAndFlush\(\).md)

### junit

* [Argument Matcher, Argument Captor](https://github.com/hyh1016/TIL/blob/main/java/junit/Argument_Matcher,_Argument_Captor.md)
* [JUnit 4의 @Test 메서드는 public 이어야 했는데, JUnit 5 부터는 public이 아니어도 되는 이유](https://github.com/hyh1016/TIL/blob/main/java/junit/JUnit_4의_@Test_메서드는_public_이어야_했는데,_JUnit_5_부터는_public이_아니어도_되는_이유.md)

### querydsl

* [Projection](https://github.com/hyh1016/TIL/blob/main/java/querydsl/Projection.md)
* [QueryDSL Setup](https://github.com/hyh1016/TIL/blob/main/java/querydsl/QueryDSL_Setup.md)
* [\[우이콘2020\] 수십억건에서 Querydsl 사용하기](https://github.com/hyh1016/TIL/blob/main/java/querydsl/\[우이콘2020]_수십억건에서_Querydsl_사용하기.md)

## kubernetes

* [Pod Topology Spread Constraints](https://github.com/hyh1016/TIL/blob/main/kubernetes/Pod_Topology_Spread_Constraints.md)
* [Taint and Toleration](https://github.com/hyh1016/TIL/blob/main/kubernetes/Taint_and_Toleration.md)
* [노드에 파드 할당하기 (Node Selector, Affinity)](https://github.com/hyh1016/TIL/blob/main/kubernetes/노드에_파드_할당하기_\(Node_Selector,_Affinity\).md)
* [쿠버네티스를 왜 쓰는가](https://github.com/hyh1016/TIL/blob/main/kubernetes/쿠버네티스를_왜_쓰는가.md)

## linux

* [Linux의 Permission](/today-i-learned/linux/linux-_permission.md)
* [kill](https://github.com/hyh1016/TIL/blob/main/linux/kill.md)

## mongodb

* [MongoDB CSFLE](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_CSFLE.md)
* [MongoDB ObjectId](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_ObjectId.md)
* [MongoDB Read Write Concern](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_Read_Write_Concern.md)
* [MongoDB Transaction](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_Transaction.md)
* [MongoDB WiredTiger](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_WiredTiger.md)
* [MongoDB 복제, 합의, 샤딩](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_복제,_합의,_샤딩.md)
* [MongoDB 운영 지표](https://github.com/hyh1016/TIL/blob/main/mongodb/MongoDB_운영_지표.md)

## network

* [CIDR](https://github.com/hyh1016/TIL/blob/main/network/CIDR.md)
* [Forward Proxy vs Reverse Proxy](https://github.com/hyh1016/TIL/blob/main/network/Forward_Proxy_vs_Reverse_Proxy.md)
* [Forward vs Redirect](https://github.com/hyh1016/TIL/blob/main/network/Forward_vs_Redirect.md)
* [HTTP의 진화와 버전별 특징](https://github.com/hyh1016/TIL/blob/main/network/HTTP의_진화와_버전별_특징.md)
* [L4 vs L7 Load balancer](https://github.com/hyh1016/TIL/blob/main/network/L4_vs_L7_Load_balancer.md)
* [OSI 7 Layer](/today-i-learned/network/osi_7_layer.md)
* [SSL, TLS](https://github.com/hyh1016/TIL/blob/main/network/SSL,_TLS.md)
* [Subnet](/today-i-learned/network/subnet.md)
* [그림으로 배우는 http & network basic](/today-i-learned/network/_-_http_and_network_basic.md)

## operating-system

* [Block vs Non-block, Sync vs Async](https://github.com/hyh1016/TIL/blob/main/operating-system/Block_vs_Non-block,_Sync_vs_Async.md)

## python

* [Python의 재귀제한](/today-i-learned/python/python-_.md)

## redis

* [Redis Cluster](https://github.com/hyh1016/TIL/blob/main/redis/Redis_Cluster.md)
* [Redis Sentinel](https://github.com/hyh1016/TIL/blob/main/redis/Redis_Sentinel.md)
* [Redis 자료구조 종류와 시간 복잡도](https://github.com/hyh1016/TIL/blob/main/redis/Redis_자료구조_종류와_시간_복잡도.md)
* [Redis를 활용한 읽기 쓰기 성능 최적화](https://github.com/hyh1016/TIL/blob/main/redis/Redis를_활용한_읽기_쓰기_성능_최적화.md)
* [Redis의 Atomicity - Transaction, Lua Script, Lock](https://github.com/hyh1016/TIL/blob/main/redis/Redis의_Atomicity_-_Transaction,_Lua_Script,_Lock.md)
* [Redis의 기본 구조와 동작 방식](https://github.com/hyh1016/TIL/blob/main/redis/Redis의_기본_구조와_동작_방식.md)
* [Redis의 영속화, AOF와 RDB](https://github.com/hyh1016/TIL/blob/main/redis/Redis의_영속화,_AOF와_RDB.md)

## server

* [CI\&CD](/today-i-learned/server/ci-and-cd.md)
* [Cache](/today-i-learned/server/cache.md)
* [Cloud Service](/today-i-learned/server/cloud_service.md)
* [Rate Limiter](https://github.com/hyh1016/TIL/blob/main/server/Rate_Limiter.md)
* [정적 서버와 동적 서버](/today-i-learned/server/_-_-_.md)
* [트래픽 증가에 따른 점진적 설계 확장](https://github.com/hyh1016/TIL/blob/main/server/트래픽_증가에_따른_점진적_설계_확장.md)

## spring

* [@Async](https://github.com/hyh1016/TIL/blob/main/spring/@Async.md)
* [@Configuration](/today-i-learned/spring/configuration.md)
* [@RequestParam @RequestBody @ModelAttribute](/today-i-learned/spring/requestparam_-requestbody_-modelattribute.md)
* [AOP](/today-i-learned/spring/aop.md)
* [Autowired](/today-i-learned/spring/autowired.md)
* [Bean Scope](/today-i-learned/spring/bean_scope.md)
* [Bean could not be injected because it is a JDK dynamic proxy](/today-i-learned/spring/bean_could_not_be_injected_because_it_is_a_jdk_dynamic_proxy.md)
* [Component Scan](/today-i-learned/spring/component_scan.md)
* [Component vs Bean](/today-i-learned/spring/component_vs_bean.md)
* [Configuration 분리](/today-i-learned/spring/configuration_.md)
* [DI](/today-i-learned/spring/di.md)
* [Embedded tomcat](https://github.com/hyh1016/TIL/blob/main/spring/Embedded_tomcat.md)
* [Filter, Interceptor, Spring AOP](/today-i-learned/spring/filter-_interceptor-_spring_aop.md)
* [IoC Container](/today-i-learned/spring/ioc_container.md)
* [Nested Class의 Bean 등록](/today-i-learned/spring/nested_class-_bean_.md)
* [Profile](/today-i-learned/spring/profile.md)
* [Properties](/today-i-learned/spring/properties.md)
* [Servlet container vs Spring container](https://github.com/hyh1016/TIL/blob/main/spring/Servlet_container_vs_Spring_container.md)
* [Spring Bean Life Cycle](/today-i-learned/spring/spring_bean_life_cycle.md)
* [Spring Event](https://github.com/hyh1016/TIL/blob/main/spring/Spring_Event.md)
* [Spring vs SpringBoot](/today-i-learned/spring/spring_vs_springboot.md)
* [Thymeleaf](/today-i-learned/spring/thymeleaf.md)

### jpa

* [Dirty Checking](/today-i-learned/spring/jpa/dirty_checking.md)
* [JPA Fetch 전략](/today-i-learned/spring/jpa/jpa_fetch_.md)
* [JPA N+1 Problem](/today-i-learned/spring/jpa/jpa_n+1_problem.md)

### spring-boot

* [Spring Web Layer](/today-i-learned/spring/spring-boot/spring_web_layer.md)
* [spring-boot](/today-i-learned/spring/spring-boot/spring-boot.md)

### spring-mvc

* [Argument Resolver](/today-i-learned/spring/spring-mvc/argument_resolver.md)
* [Filter](/today-i-learned/spring/spring-mvc/filter.md)
* [Filter vs OncePerRequestFilter](https://github.com/hyh1016/TIL/blob/main/spring/spring-mvc/Filter_vs_OncePerRequestFilter.md)
* [Interceptor](/today-i-learned/spring/spring-mvc/interceptor.md)
* [RestController](/today-i-learned/spring/spring-mvc/restcontroller.md)
* [Validator](/today-i-learned/spring/spring-mvc/validator.md)
* [exception-handling](/today-i-learned/spring/spring-mvc/exception-handling.md)
* [spring-mvc](/today-i-learned/spring/spring-mvc/spring-mvc.md)

### spring-security

* [Spring Security](/today-i-learned/spring/spring-security/spring_security.md)

## testing

* [Test Double](/today-i-learned/testing/test_double.md)
* [White Box, Black Box](/today-i-learned/testing/white_box-_black_box.md)

## web

* [API](https://github.com/hyh1016/TIL/blob/main/web/API.md)
* [Browser Caching](/today-i-learned/web/browser_caching.md)
* [CORS](/today-i-learned/web/cors.md)
* [HTTP Header](/today-i-learned/web/http_header.md)
* [HTTP와 HTTPS](/today-i-learned/web/http-_https.md)
* [OAuth](/today-i-learned/web/oauth.md)
* [PRG Pattern](/today-i-learned/web/prg_pattern.md)
* [Query Parameter & Path Variable](/today-i-learned/web/query_parameter_and_path_variable.md)
* [REST](https://github.com/hyh1016/TIL/blob/main/web/REST.md)
* [Status Code](/today-i-learned/web/status_code.md)
* [WebSocket](/today-i-learned/web/websocket.md)
* [application octet stream](/today-i-learned/web/application_octet_stream.md)
* [cookie-session](/today-i-learned/web/cookie-session.md)
* [jwt](/today-i-learned/web/jwt.md)
* [multipart form data](/today-i-learned/web/multipart_form_data.md)

### images

* [jwt-flow](https://github.com/hyh1016/TIL/blob/main/web/images/jwt-flow.png)
