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

# TodayILearned

개발 공부를 하면서 배운 내용을 정리하는 저장소입니다. 모든 내용은 GitBook을 통해 더 편리하게 볼 수 있습니다.

## 📚 주요 카테고리

### CS (Computer Science)

* [Data Structure](/sinheeseop_til/cs-computer-science/datastructure.md) - 데이터 구조
  * [자료구조 개념서](/sinheeseop_til/cs-computer-science/datastructure/_.md) - 자료구조의 근본과 이해 (4단계 정의법)
  * **01\_Physical\_Basis** (물리적 기반)
    * [Physical Basis](/sinheeseop_til/cs-computer-science/datastructure/01_physical_basis/01_physical_basis.md) - 배열/연결 기반 물리 구조
  * **02\_ADT** (추상 자료형)
    * [Map](/sinheeseop_til/cs-computer-science/datastructure/02_adt/map.md) - 맵(Map)의 개념과 구현체 비교
    * [Set](/sinheeseop_til/cs-computer-science/datastructure/02_adt/set.md) - 집합(Set)의 개념과 특징
  * **03\_Structure** (자료구조)
    * [HashTable](/sinheeseop_til/cs-computer-science/datastructure/03_structure/hashtable.md) - 해시 테이블 자료구조
    * **Tree/**
      * [Tree](/sinheeseop_til/cs-computer-science/datastructure/03_structure/tree/tree.md) - 트리 구조의 개념과 종류
      * [AdvancedTree\_Overview](/sinheeseop_til/cs-computer-science/datastructure/03_structure/tree/advancedtree_overview.md) - 고급 트리 간략 정리
  * **04\_Implementation** (구현체)
    * [Java\_HashMap](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_hashmap.md) - Java HashMap 구현체
    * [Java\_Hashtable](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_hashtable.md) - 레거시 Hashtable 클래스
    * [Java\_LinkedHashMap](/sinheeseop_til/cs-computer-science/datastructure/04_implementation/java_linkedhashmap.md) - 순서를 기억하는 Map
* [Algorithm](/sinheeseop_til/cs-computer-science/algorithm.md) - 알고리즘과 문제 해결
  * **Hash**
    * [Hash](/sinheeseop_til/cs-computer-science/algorithm/hash/hash.md) - 해시 용어 설명 및 개념
    * [OpenAddressing](/sinheeseop_til/cs-computer-science/algorithm/hash/openaddressing.md) - 개방 주소법과 탐색 전략
  * [Time Space Complexity](/sinheeseop_til/cs-computer-science/algorithm/timespacecomplexity.md) - 시간 복잡도와 공간 복잡도
  * [Binary Search](/sinheeseop_til/cs-computer-science/algorithm/binarysearch.md) - 이분탐색 알고리즘
  * [Two Pointers](/sinheeseop_til/cs-computer-science/algorithm/twopointers.md) - 투포인터 기법
* [Computer Architecture](/sinheeseop_til/cs-computer-science/computer_structure.md) - 컴퓨터 구조
  * [Register](/sinheeseop_til/cs-computer-science/computer_structure/register.md) - CPU 레지스터의 종류와 역할
  * [CPU Clock, Core, Thread](https://github.com/SINHEESEOP/TIL/tree/main/CS/Computer_Structure/cpu_clock_core_thread.md) - CPU 클럭 동작 원리와 멀티코어/멀티스레드 개념
  * [Structure of Assembly Instructions](/sinheeseop_til/cs-computer-science/computer_structure/structureofassembly_instructions.md) - 어셈블리 명령어 구조 분석
  * [Source Code and Commands](/sinheeseop_til/cs-computer-science/computer_structure/sourcecode_and_command.md) - 소스코드 컴파일과 명령어 실행
  * [Instruction Level Parallelism](https://github.com/SINHEESEOP/TIL/tree/main/CS/Computer_Structure/instruction_level_parallelism.md) - 명령어 병렬 처리 기법 (파이프라이닝, 슈퍼스칼라, 비순차적 처리)
  * [Computer Architecture Overview](/sinheeseop_til/cs-computer-science/computer_structure/thebigpictureofcomputerarchitecture.md) - 컴퓨터 구성 요소 및 기본 구조 개요
  * [ALU and Control Unit](/sinheeseop_til/cs-computer-science/computer_structure/arithmeticlogicunit_and_controlunit.md) - 산술논리연산장치와 제어장치의 구조 및 역할
  * [Interrupt 및 예외 요약](/sinheeseop_til/cs-computer-science/computer_structure/interrupt.md) - CPU 인터럽트와 예외(동기/비동기) 처리 개념 요약
* [Operating System](/sinheeseop_til/cs-computer-science/operating_system.md) - 운영체제

### Java

* [Java](/sinheeseop_til/java/java.md) - 자바 프로그래밍 언어 학습 정리
* [Java101](/sinheeseop_til/java/101.md) - 자바 언어의 기본 개념과 문법
  * [JavaBasics](/sinheeseop_til/java/101/java_basics.md) - 자바 기초 문법
  * [ObjectOrientedProgramming](/sinheeseop_til/java/101/object_oriented_programming.md) - 객체지향 프로그래밍
  * [ClassAndData](/sinheeseop_til/java/101/class_and_data.md) - 클래스와 데이터 구조
  * [Constructors](/sinheeseop_til/java/101/constructors.md) - 생성자 사용법
  * [AccessModifiers](/sinheeseop_til/java/101/access_modifiers.md) - 접근 제어자
  * [VariableAndMethodLifecycle](/sinheeseop_til/java/101/variable_and_method_lifecycle.md) - 변수와 메서드 생명주기
  * [JVMMemoryAndStatic](/sinheeseop_til/java/101/jvm_memory_and_static.md) - JVM 메모리와 정적 요소
  * [DifferentMachineInterpretationByOS](/sinheeseop_til/java/101/why_different_machine_interpretation_by_os.md) - OS별 머신 해석 차이
  * [FinalModifiers](/sinheeseop_til/java/101/final_modifiers.md) - final 제어자 활용
  * [InheritanceAndSuper](https://github.com/SINHEESEOP/TIL/tree/main/Java/101/inheritance_and_super.md) - 상속과 super 키워드
  * [ObjectComparison](/sinheeseop_til/java/101/objectcomparison.md) - 객체 비교 (== vs equals())
* [JavaAdvanced](/sinheeseop_til/java/java_advanced.md) - 자바 고급 기능과 설계 패턴
  * [JavaBeanPropertyConvention](/sinheeseop_til/java/java_advanced/javabeanpropertyconvention.md) - 자바빈 프로퍼티 규약
  * [자바-람다-동작원리와-함수형-개념](/sinheeseop_til/java/java_advanced/undefined.md) - Java에서의 함수형 패러다임: 람다의 내부 동작 원리와 일급 객체·고차 함수·동작 파라미터화의 관계
* [JavaQnA](/sinheeseop_til/java/qna.md) - 자바 관련 질문과 답변
  * [JVMQuestions](/sinheeseop_til/java/qna/concepts/jvm_questions.md) - JVM 관련 질문 모음 (메모리, JIT 컴파일러)
  * [WhyChildTypeCannotReferenceParentType](/sinheeseop_til/java/qna/concepts/why_child_cannot_reference_parent.md) - 자식 타입이 부모 타입을 참조할 수 없는 이유
  * [Interface vs Abstract Class](/sinheeseop_til/java/qna/concepts/interface_vs_abstract.md) - 인터페이스와 추상클래스의 차이점 분석

### Spring

* [Spring101](/sinheeseop_til/spring/101.md) - Spring Framework 입문과 기본 개념
  * [SpringOverview](/sinheeseop_til/spring/101/spring_overview.md) - 스프링 프레임워크 개요
  * [SpringBootProjectSetup](/sinheeseop_til/spring/101/spring_boot_project_setup.md) - 스프링 부트 프로젝트 설정
  * [SpringBasics](/sinheeseop_til/spring/101/spring_basics.md) - 스프링 기초 개념
  * [SpringBeansAndDependencyInjection](/sinheeseop_til/spring/101/spring_beans_and_dependency_injection.md) - 빈과 의존성 주입
  * [DataObjectsInSpring](/sinheeseop_til/spring/101/data_objects_in_spring.md) - 스프링의 데이터 객체
  * [DataObjectTypes](/sinheeseop_til/spring/101/dataobjecttypes.md) - 데이터 객체 타입의 진화와 구분
  * [SpringLayeredArchitecture](/sinheeseop_til/spring/101/spring_layered_architecture.md) - 스프링 계층형 아키텍처
  * [ModelVsEntityInSpring](/sinheeseop_til/spring/101/spring_model_vs_entity.md) - 모델과 엔티티 비교
  * [AOP](/sinheeseop_til/spring/101/spring_aop.md) - 관점 지향 프로그래밍
  * [SpringEvolutionHistory](/sinheeseop_til/spring/101/spring_evolution_history.md) - 스프링 발전 역사
  * [AutowiredQualifierPrimary](/sinheeseop_til/spring/101/autowiredqualifierprimary.md) - Autowired, Qualifier, Primary로 의존성 주입 관리
  * [CustomAnnotation](/sinheeseop_til/spring/101/customannotation.md) - 스프링에서 커스텀 애노테이션 만들기
  * [MultipleBeanInjection](/sinheeseop_til/spring/101/multiplebeaninjection.md) - 여러 빈 주입 받기(List, Map)
  * [AutomanualBeansGuideline](/sinheeseop_til/spring/101/automanualbeansguideline.md) - 자동 주입과 수동 빈 등록의 실무 운영 기준
  * [BeanScopeAndProvider](/sinheeseop_til/spring/101/beanscopeandprovider.md) - 스프링 빈 스코프와 Provider의 이해와 활용
  * [WebScope](/sinheeseop_til/spring/101/webscope.md) - 스프링 웹 스코프와 프록시 활용법
* [SpringMVC](/sinheeseop_til/spring/mvc.md) - Spring MVC 가이드
  * [SpringMVCEvolution](/sinheeseop_til/spring/mvc/spring_mvc_evolution.md) - 스프링 MVC의 발전 역사
  * [SpringMVCRequestMapping](/sinheeseop_til/spring/mvc/spring_mvc_request_mapping.md) - 스프링 MVC 요청 매핑
  * [SpringMVCRequestParameter](/sinheeseop_til/spring/mvc/spring_mvc_request_parameter.md) - 스프링 MVC 요청 파라미터
  * [SpringFilterAndInterceptor](/sinheeseop_til/spring/mvc/spring_filter_and_interceptor.md) - 스프링 필터와 인터셉터
  * [SpringMVCResponse](/sinheeseop_til/spring/mvc/spring_mvc_response.md) - 스프링 MVC 응답
  * [LoggingSLF4JLogback](/sinheeseop_til/spring/mvc/logging_slf4j_logback.md) - SLF4J와 Logback을 이용한 로깅
  * [SOLIDPrinciples](/sinheeseop_til/spring/mvc/solid_principles.md) - SOLID 원칙
* [SpringCore](/sinheeseop_til/spring/core.md) - Spring의 핵심 기능과 디자인 패턴
  * [SpringContainer](/sinheeseop_til/spring/core/container.md) - IoC 컨테이너와 Bean 생명주기
    * [SingletonContainer](/sinheeseop_til/spring/core/container/singleton_container.md) - 싱글톤 컨테이너 관리
  * [SpringComponents](/sinheeseop_til/spring/core/component.md) - 컴포넌트 스캔과 Bean 등록
    * [ComponentScan](/sinheeseop_til/spring/core/component/component_scan.md) - 컴포넌트 스캔 동작 원리
  * [DependencyInjection](/sinheeseop_til/spring/core/injection.md) - 다양한 의존성 주입 방식과 활용
    * [FieldInjectionAndTestIssues](/sinheeseop_til/spring/core/injection/fieldinjectionandtestissues.md) - 필드 주입의 문제점과 테스트
* [SpringTools](/sinheeseop_til/spring/tools.md) - Spring 개발에 유용한 도구와 라이브러리
  * [Lombok](/sinheeseop_til/spring/tools/lombok.md) - 자바 코드 간소화를 위한 어노테이션 도구
    * [LombokGuide](/sinheeseop_til/spring/tools/lombok/lombokguide.md) - Lombok 완벽 가이드

### C++

* [CPP101](/sinheeseop_til/c++/101.md) - C++ 언어 기초와 메모리 관리
  * [OverviewAndHistory](/sinheeseop_til/c++/101/cpp_overview_and_history.md) - C++ 개요와 역사
  * [DevelopmentEnvironment](/sinheeseop_til/c++/101/cpp_development_environment.md) - 개발 환경 설정
    * [WindowsSetup](/sinheeseop_til/c++/101/cpp_development_environment/windows_setup.md) - 윈도우 환경 설정
  * [BasicSyntax](/sinheeseop_til/c++/101/cpp_basic_syntax.md) - 기본 문법
  * [ColonVsDoubleColon](/sinheeseop_til/c++/101/cpp_colon_vs_double_colon.md) - 콜론과 이중 콜론 차이
  * [DefineVsFinalStatic](/sinheeseop_til/c++/101/cpp_define_vs_final_static.md) - 정의와 상수 비교
  * [MemoryManagement](/sinheeseop_til/c++/101/cpp_memory_management.md) - 메모리 관리
  * [SeparateCompilation](/sinheeseop_til/c++/101/cpp_separate_compilation.md) - 분할 컴파일

### Web

* [WebDevelopment](/sinheeseop_til/web/web.md) - 웹 개발 기초와 서블릿 아키텍처
  * [Web101](/sinheeseop_til/web/web/basics.md) - 웹 개발 기초
    * [ServletAndWASArchitecture](/sinheeseop_til/web/web/basics/servlet_was_architecture.md) - 서블릿과 WAS 구조
  * [Network](/sinheeseop_til/web/web/network.md) - 네트워크
    * [InternetNetworkBasics](/sinheeseop_til/web/web/network/internet_network_basics.md) - 인터넷 통신과 네트워크 기초
    * [HTTPAndWeb](/sinheeseop_til/web/web/network/http_and_web.md) - HTTP와 웹
    * [HTTPStatusCodes](/sinheeseop_til/web/web/network/http_status_codes.md) - HTTP 상태 코드
    * [HTTPHeaders](/sinheeseop_til/web/web/network/http_headers.md) - HTTP 헤더
    * [HTTPHeadersPart1](/sinheeseop_til/web/web/network/http_headers_part1.md) - HTTP 헤더(1) - 기본 개념과 표현
    * [HTTPHeadersPart2](/sinheeseop_til/web/web/network/http_headers_part2.md) - HTTP 헤더(2) - 정보, 인증, 쿠키
    * [URIAndWebRequestFlow](/sinheeseop_til/web/web/network/uri_and_web_request_flow.md) - URI, 웹 브라우저 요청 흐름, 클라이언트 서버 구조
    * [StatefulStateless](/sinheeseop_til/web/web/network/stateful_stateless.md) - Stateful, Stateless 그리고 비연결성
    * [HTTPMethods](/sinheeseop_til/web/web/network/http_methods.md) - HTTP 메서드

### Database

* [Database](/sinheeseop_til/database/db.md) - 데이터베이스 기본 개념과 기술
  * [Connection Pool](/sinheeseop_til/database/db/connectionpool.md) - 커넥션 풀의 개념과 장단점 분석
  * [Data Source](/sinheeseop_til/database/db/datasource.md) - 데이터 소스 설정 및 관리
  * [Session](/sinheeseop_til/database/db/session.md) - 세션 개념 및 정의
  * [Transaction and ACID](/sinheeseop_til/database/db/transaction_acid.md) - 트랜잭션과 ACID 속성 상세 설명
  * [Transaction Manager](/sinheeseop_til/database/db/transactionmanger.md) - 트랜잭션 매니저의 커넥션 관리 및 동작 원리
  * [Transaction Template](/sinheeseop_til/database/db/transactiontemplate.md) - 프로그래밍 방식 트랜잭션 제어
  * [SQL Mapper and ORM](/sinheeseop_til/database/db/sqlmapper_and_orm.md) - SQL Mapper와 ORM의 개념 및 차이점 분석
  * [Spring DB Exception Abstraction](/sinheeseop_til/database/db/springdb_.md) - Spring의 데이터베이스 예외 추상화와 체크예외 문제 해결

### DevOps

* [DevOps](/sinheeseop_til/devops/devops.md) - 데옵스 및 인프라 기본 개념과 기술
  * [Docker](/sinheeseop_til/devops/devops/docker.md) - 도커(Docker) 컨테이너 가상화 기술

### Terminology (용어 정리)

* [Terminology](/sinheeseop_til/terminology/terminology.md) - 용어 정리 노트
  * 용어의 어원/기원, 일상·타 업계·개발 업계(개발자/QA/PM)에서의 사용법, 나만의 정의 정리
  * [Module](/sinheeseop_til/terminology/terminology/module.md) - 모듈(부품 vs 규격, 인터페이스와의 관계)

### Troubleshooting

* [Troubleshooting](/sinheeseop_til/troubleshooting/troubleshooting.md) - 트러블슈팅 정리
  * [java.lang.NullPointerException at UserService.login](/sinheeseop_til/troubleshooting/troubleshooting/java.lang.nullpointerexception_at_userservice_login.md)
  * [JPA N+1 Post List Select](/sinheeseop_til/troubleshooting/troubleshooting/jpa_nplusone_post_list_select.md)

## 기여 방법

이 저장소에 새로운 내용을 추가하거나 오류를 수정하고 싶다면:

1. 이슈를 생성하거나
2. Pull Request를 보내주세요.

모든 피드백과 기여는 환영합니다!
