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

# Backend OpenBook Project

## 기술의 활용은 목적과 관계에서 비롯한다.

> 탄탄한 컴퓨터 공학 기초부터 대규모 분산 아키텍처 및 인프라까지,
>
> 시스템 설계, 목적, 관계 등 기술의 본질적인 접근을 가능하게 하는 깊고 단단한 백엔드 엔지니어링.

***

### [📚 백엔드 개발자의 사고방식, 마음가짐](/openbook/undefined.md)

[백엔드 엔지니어링을 하기 위한 사고방식, 마음가짐의 방향을 먼저 다듬습니다.](/openbook/undefined.md)

* [설계 안목을 넓히고 엔지니어링 역량을 깊게 함양해야 하는 이유](/openbook/undefined-1.md)

### [📂 1. CS & Core Engineering](/openbook/1.-cs-and-core-engineering.md)

[모든 소프트웨어의 기반이 되는 컴퓨터 공학 기본기와 Java 핵심 기술을 다룹니다.](/openbook/1.-cs-and-core-engineering.md)

* [**1-1. CS / Basic #1 : 자료구조 및 알고리즘**](/openbook/1-1.-cs-basic-1.md)
* [**1-1. CS / Basic #2 : 컴퓨터 공학 이론**](/openbook/1-1.-cs-basic-2.md)
* [**1-2.** **Git**](/openbook/1-2.-git.md)
* [**1-3. 프로세스와 스레드**](/openbook/1-3..md)
* [**1-4. 연속메모리 할당 기법**](/openbook/1-4..md)
* [**1-5. IPC (Inter-Process Communication)**](/openbook/1-5.-ipc-inter-process-communication.md)
* [**1-6. 직렬화**](/openbook/1-6..md)
* [**1-7. JSON**](/openbook/1-7.-json.md)
* [**1-8. Java 언어의 깊이 : 제너릭**](/openbook/1-8.-java.md)

***

### [📂 2. Web & Application Architecture](/openbook/2.-web-and-application-architecture.md)

[웹 기술의 근간과 Spring 프레임워크 기반의 설계 요소를 다룹니다.](/openbook/2.-web-and-application-architecture.md)

* [**2-1. Networks** ](/openbook/2-1.-networks.md)
* [**2-2. AOP**](/openbook/2-2.-aop.md)
* [**2-3. Proxy**](/openbook/2-3.-proxy.md)
* [**2-4. 동기 / 비동기**](/openbook/2-4..md)
* [**2-5. Spring Core #1 : Module / Transaction** ](/openbook/2-5.-spring-core-1-module-transaction.md)
* [**2-5. Spring Core #2  : JVM / Web MVC / Bean**](/openbook/2-5.-spring-core-2-jvm-web-mvc-bean.md)
* [**2-5. Spring Core #3 : 부가&#x20;*****설정***](/openbook/2-5.-spring-core-3.md)
* [**2-5. Spring Core #4 : Entity Manager / Transaction Manager**](/openbook/2-5.-spring-core-4-entity-manager-transaction-manager.md)
* [**2-6. Spring Application & Web 동시성**](/openbook/2-6.-spring-application-and-web.md)
* [**2-7. Race Condition의 본질**](/openbook/2-7.-race-condition.md)
* [**2-8. Web 비동기 (Webflux)**](/openbook/2-8.-web-webflux.md)
* [**2-9. Spring Batch**](/openbook/2-9.-spring-batch.md)
* [**2-10. TDD**](/openbook/2-10.-tdd.md)
* [**2-11. Clean Architecture**](/openbook/2-11.-clean-architecture.md)
* [**2-12. JPA #1 : 핵심 속성**](/openbook/2-12.-jpa-1.md)
* [**2-12. JPA #2 : N+1 Problem**](/openbook/2-12.-jpa-2-n+1-problem.md)
* [**2-13. 세션**](/openbook/2-13..md)

***

### [📂 3. Data Engineering & Persistence](/openbook/3.-data-engineering-and-persistence.md)

[데이터를 안정적으로 저장하고, 이를 관리/활용하기 위한 방법을 다룹니다.](/openbook/3.-data-engineering-and-persistence.md)

* [**3-1. Data / DB Modeling**](/openbook/3-1.-data-db-modeling.md)
* [**3-2. DB / RDBMS 기초 및 설계 사상**](/openbook/3-2.-db-rdbms.md)
* [**3-3. 데이터베이스 인덱스**](/openbook/3-3..md)
* [**3-4. DB 동시 버전 관리(동시성)**](/openbook/3-4.-db.md)

***

### [📂 4. Caching & Message Queue](/openbook/4.-caching-and-message-queue.md)

[대규모 트래픽 환경에서 성능을 보장하기 위한 캐싱 전략과 비동기 메시징 시스템을 다룹니다.](/openbook/4.-caching-and-message-queue.md)

* [**4-1. 캐싱 전략 (Cache)**](/openbook/4-1.-cache.md)
* [**4-2. Redis 활용 및 병목 현상(Bottleneck) #1 : Redis에 대한 고찰** ](/openbook/4-2.-redis-bottleneck-1-redis.md)
* [***4-2.*****&#x20;Redis 활용 및 병목 현상(Bottleneck) #2 : Redis 부가 속성**](/openbook/4-2.-redis-bottleneck-2-redis.md)
* [**4-2. Redis 활용 및 병목 현상(Bottleneck) #3 : Redis 병목 현상**](/openbook/4-2.-redis-bottleneck-3-redis.md)
* [**4-3. 메시지 브로커 (RabbitMQ & Kafka)**](/openbook/4-3.-rabbitmq-and-kafka.md)
* [**4-4. 멱등성**](/openbook/4-4..md)

***

### [📂 5. Microservices & Cloud Native Architecture](/openbook/5.-microservices-and-cloud-native-architecture.md)

[대규모 분산 시스템(MSA/Cloud Native)을 설계하고 안정성을 확보하는 아키텍처에 대한 내용을 다룹니다.](/openbook/5.-microservices-and-cloud-native-architecture.md)

* [**5-1. MSA**](/openbook/5-1.-msa.md)
* [**5-2. 이기종**](/openbook/5-2..md)
* [**5-3. DDD**](/openbook/5-3.-ddd.md)
* [**5-4. Spring Cloud & Cloud Native**](/openbook/5-4.-spring-cloud-and-cloud-native.md)
* [**5-5. 분산 시스템의 내결함성, 회복 탄력성 (Circuit Breaker & Fallback)**](/openbook/5-5.-circuit-breaker-and-fallback.md)

***

### [📂 6. DevOps, Virtualization & Observability](/openbook/6.-devops-virtualization-and-observability.md)

[애플리케이션이 구동되는 인프라 환경과 시스템을 안정적으로 운영하기 위한 모니터링에 대해 다룹니다.](/openbook/6.-devops-virtualization-and-observability.md)

* [**6-1. 가상화 기술 및 Cloud Native**](/openbook/6-1.-cloud-native.md)
* [**6-2. Docker #1 : Docker**](/openbook/6-2.-docker-1-docker.md)
* [**6-2. Docker #2 : Docker Network**](/openbook/6-2.-docker-2-docker-network.md)
* [**6-2. Docker #3 : Docker Swarm / Service / Stack**](/openbook/6-2.-docker-3-swarm-service-stack.md)
* [**6-3. DevOps & CI/CD**](/openbook/6-3.-devops-and-ci-cd.md)
* [**6-4. 모니터링과 디버깅**](/openbook/6-4..md)


---

# 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 following URL with the `ask` and `goal` query parameters:

```
GET https://leehyokyun.gitbook.io/openbook/backend-openbook-project.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

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.
