{"id":27360673,"url":"https://github.com/jhhong0509/study","last_synced_at":"2025-04-13T01:09:45.456Z","repository":{"id":37684969,"uuid":"317821467","full_name":"jhhong0509/study","owner":"jhhong0509","description":"백엔드 공부한거 정리","archived":false,"fork":false,"pushed_at":"2022-10-24T00:49:04.000Z","size":44106,"stargazers_count":104,"open_issues_count":2,"forks_count":13,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T01:09:22.940Z","etag":null,"topics":["database","jpa","refactoring","spring-boot","webflux"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jhhong0509.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-02T10:07:59.000Z","updated_at":"2025-03-10T12:19:32.000Z","dependencies_parsed_at":"2023-01-19T15:32:14.338Z","dependency_job_id":null,"html_url":"https://github.com/jhhong0509/study","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhhong0509%2Fstudy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhhong0509%2Fstudy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhhong0509%2Fstudy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhhong0509%2Fstudy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhhong0509","download_url":"https://codeload.github.com/jhhong0509/study/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650750,"owners_count":21139681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","jpa","refactoring","spring-boot","webflux"],"created_at":"2025-04-13T01:09:44.546Z","updated_at":"2025-04-13T01:09:45.427Z","avatar_url":"https://github.com/jhhong0509.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 목차\n\n## OAuth\n\n1. [소개](https://github.com/jhhong0509/study/blob/master/auth/oauth/01.introduction.md)\n2. [동작 방식](https://github.com/jhhong0509/study/blob/master/auth/oauth/02.how_auth_work.md)\n\n---\n\n## OOP\n\n- [IoC, DI, DIP](https://github.com/jhhong0509/study/blob/master/oop/ioc_di_dip.md)\n\n---\n\n## CI/CD\n\n- [정의](https://github.com/jhhong0509/study/blob/master/cicd/what_is.md)\n- [점진적 배포 핵클 웨비나](https://github.com/jhhong0509/study/blob/master/cicd/feature_flag_webina.md)\n- [CodeCoverage](https://github.com/jhhong0509/study/blob/master/cicd/code_coverage.md)\n\n---\n\n## Kubernetes\n\n- [K8S 소개](https://github.com/jhhong0509/study/blob/master/kubernetes/kubernetes.md)\n- [ConfigMap과 Secret](https://github.com/jhhong0509/study/blob/master/kubernetes/configmap_and_secret.md)\n\n---\n\n## 토큰\n\n- [JWT](https://github.com/jhhong0509/study/blob/master/auth/jwt.md)\n- [JWK](https://github.com/jhhong0509/study/blob/master/auth/jwk.md)\n\n---\n\n## Database\n\n- [이름 명명 규칙](https://github.com/jhhong0509/study/blob/master/database/column_name_rule.md)\n- [용어](https://github.com/jhhong0509/study/blob/master/database/words.md)\n- [Varchar size에 따른 MySQL 동작](https://github.com/jhhong0509/study/blob/master/database/varchar_size.md)\n- [INDEX](https://github.com/jhhong0509/study/blob/master/database/index.md)\n- [Pagination](https://github.com/jhhong0509/study/blob/master/database/pagination.md)\n- [저장 Deep Dive](https://github.com/jhhong0509/study/blob/master/database/save_deepdive.md)\n\n---\n\n## MongoDB\n\n- [스키마 구조](https://github.com/jhhong0509/study/blob/master/database/mongodb/scheme_structure.md)\n\n---\n\n## Kotlin\n\n- [기초](https://github.com/jhhong0509/study/blob/master/kotlin/basic.md)\n- [Sequence](https://github.com/jhhong0509/study/blob/master/kotlin/sequence.md)\n- [VS Java](https://github.com/jhhong0509/study/blob/master/kotlin/vs_java.md)\n\n---\n\n## Kotlin Coroutine\n\n- [기본 개념](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/01.%20%EA%B8%B0%EB%B3%B8%20%EA%B0%9C%EB%85%90.md)\n- [Global Scope를 사용하면 안되는 이유](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/GlobalScope%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EB%A7%90%EC%95%84%EC%95%BC%20%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0.md)\n- [TestDispatcher](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/Test%20Dispatcher.md)\n\n---\n\n### Kotlin Coroutine 책\n\n1. **Kotlin Coroutine에 대한 이해**\n   1. [왜 코루틴을 사용하는가](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/1%EC%9E%A5%20%EC%BD%94%ED%8B%80%EB%A6%B0%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4/01.%20%EC%99%9C%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80%3F.md)\n   2. [Sequence Builder](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/1%EC%9E%A5%20%EC%BD%94%ED%8B%80%EB%A6%B0%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4/02.%20Sequence%20Builder.md)\n   3. [Suspension은 어떻게 동작할까](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/1%EC%9E%A5%20%EC%BD%94%ED%8B%80%EB%A6%B0%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4/03.%20Suspension%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%8F%99%EC%9E%91%ED%95%98%EB%8A%94%EA%B0%80%3F.md)\n   4. [Coroutine 자세히 보기](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/1%EC%9E%A5%20%EC%BD%94%ED%8B%80%EB%A6%B0%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4/04.%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EC%9E%90%EC%84%B8%ED%9E%88%20%EB%B3%B4%EA%B8%B0.md)\n   5. [Coroutine 내장 지원 / 외부 라이브러리](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/1%EC%9E%A5%20%EC%BD%94%ED%8B%80%EB%A6%B0%20%EC%BD%94%EB%A3%A8%ED%8B%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4/05.%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%82%B4%EC%9E%A5%20%EC%A7%80%EC%9B%90%20vs%20%EC%99%B8%EB%B6%80%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC.md)\n2. **Koroutine 라이브러리**\n   1. [Coroutine Builder](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/01.%20Coroutine%20Builder.md)\n   2. [Coroutine Context](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/02.%20Coroutine%20Context.md)\n   3. [Job과 자식 await하기](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/03.%20Job%EA%B3%BC%20%EC%9E%90%EC%8B%9D%20await%ED%95%98%EA%B8%B0.md)\n   4. [Cacellation](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/04.%20Cancellation.md)\n   5. [예외 처리](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/05.%20%EC%98%88%EC%99%B8%20%EC%B2%98%EB%A6%AC.md)\n   6. [Coroutine Scope 함수](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/06.%20Coroutine%20Scope%20%ED%95%A8%EC%88%98%EB%93%A4.md)\n   7. [Dispatcher](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/07.%20dispatcher.md)\n   8. [Coroutine Scope](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/08.%20coroutine%20scope%20%EB%A7%8C%EB%93%A4%EA%B8%B0.md)\n   9. [State 관리 문제](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/09.%20state%20%EA%B4%80%EB%A6%AC%20%EB%AC%B8%EC%A0%9C.md)\n   10. [Coroutine 테스트하기](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/2%EC%9E%A5%20%EC%BD%94%EB%A3%A8%ED%8B%B4%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/10.%20coroutine%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%ED%95%98%EA%B8%B0.md)\n3. **Channel과 Flow**\n   1. [Channel](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/01.%20Channel.md)\n   2. [Actor](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/02.%20Actor.md)\n   3. [Hot / Cold Datasource](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/03.%20Hot%20and%20Cold%20datasource.md)\n   4. [Flow 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/04.%20Flow%20%EC%86%8C%EA%B0%9C.md)\n   5. [Flow 만들기](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/05.%20Flow%20%EB%A7%8C%EB%93%A4%EA%B8%B0.md)\n   6. [Flow 생명주기 함수](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/06.%20Flow%20%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0%20%ED%95%A8%EC%88%98.md)\n   7. [Flow process](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/07.%20Flow%20Process.md)\n   8. [sharedFlow와 stateFlow](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/08.%20sharedFlow%EC%99%80%20stateFlow.md)\n   9. [마치며](https://github.com/jhhong0509/study/blob/master/stu_spring/coroutine/kotlin_coroutine/3%EC%9E%A5%20channel%EA%B3%BC%20flow/09.%20%EB%81%9D%EB%82%B4%EB%A9%B0.md)\n\n---\n\n## MSA\n\n### 내가 공부한 MSA\n\n1. [기초](https://github.com/jhhong0509/study-architecture/blob/main/msa/01.msa_basic.md)\n2. [구조](https://github.com/jhhong0509/study-architecture/blob/main/msa/02.msa_structure.md)\n3. [RPC란?](https://github.com/jhhong0509/study-architecture/blob/main/msa/03.rpc.md)\n4. [MQ란?](https://github.com/jhhong0509/study-architecture/blob/main/msa/04.mq.md)\n5. [Service Mesh란](https://github.com/jhhong0509/study-architecture/blob/main/msa/service_mesh.md)\n6. [CDC, Outbox, Event Sourcing 소개](https://github.com/jhhong0509/study-architecture/blob/main/msa/cdc%2C%20outbox%2C%20event%20sourcing.md)\n7. [Debezium 소개](https://github.com/jhhong0509/study-architecture/blob/main/msa/debezium.md)\n\n### 마이크로서비스 아키텍쳐 패턴\n\n1. **Monolithic 지옥에서 벗어나라**\n   1. [마이크로서비스 아키텍쳐가 답이다](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/01%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D%20%EC%A7%80%EC%98%A5%EC%97%90%EC%84%9C%20%EB%B2%97%EC%96%B4%EB%82%98%EB%9D%BC/1.4%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%EA%B0%80%20%EB%8B%B5%EC%9D%B4%EB%8B%A4.md)\n   2. [마이크로서비스 아키텍쳐의 장단점](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/01%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D%20%EC%A7%80%EC%98%A5%EC%97%90%EC%84%9C%20%EB%B2%97%EC%96%B4%EB%82%98%EB%9D%BC/1.5%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%EC%9D%98%20%EC%9E%A5%EB%8B%A8%EC%A0%90.md)\n   3. [마이크로서비스 아키텍쳐 패턴 언어](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/01%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D%20%EC%A7%80%EC%98%A5%EC%97%90%EC%84%9C%20%EB%B2%97%EC%96%B4%EB%82%98%EB%9D%BC/1.6%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%20%ED%8C%A8%ED%84%B4%20%EC%96%B8%EC%96%B4.md)\n   4. [마이크로서비스 너머 프로세스와 조직](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/01%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D%20%EC%A7%80%EC%98%A5%EC%97%90%EC%84%9C%20%EB%B2%97%EC%96%B4%EB%82%98%EB%9D%BC/1.7%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%84%88%EB%A8%B8%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80%20%EC%A1%B0%EC%A7%81.md)\n2. **분해 전략**\n   1. [마이크로서비스 아키텍쳐란 무엇인가](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/02%20%EB%B6%84%ED%95%B4%20%EC%A0%84%EB%9E%B5/2.1%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80.md)\n   2. [마이크로서비스 아키텍쳐 정의](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/02%20%EB%B6%84%ED%95%B4%20%EC%A0%84%EB%9E%B5/2.2%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%20%EC%A0%95%EC%9D%98.md)\n3. **프로세스 간 통신**\n   1. [마이크로서비스  아키텍쳐 IPC개요](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/03%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EA%B0%84%20%ED%86%B5%EC%8B%A0/3.1%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%20IPC%20%EA%B0%9C%EC%9A%94md.md)\n   2. [동기 RPI 패턴 응용 통신](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/03%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EA%B0%84%20%ED%86%B5%EC%8B%A0/3.2%20%EB%8F%99%EA%B8%B0%20RPI%20%ED%8C%A8%ED%84%B4%20%EC%9D%91%EC%9A%A9%20%ED%86%B5%EC%8B%A0.md)\n   3. [비동기 메세징 패턴 응용 통신](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/03%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EA%B0%84%20%ED%86%B5%EC%8B%A0/3.3%20%EB%B9%84%EB%8F%99%EA%B8%B0%20%EB%A9%94%EC%84%B8%EC%A7%95%20%ED%8C%A8%ED%84%B4%20%EC%9D%91%EC%9A%A9%20%ED%86%B5%EC%8B%A0.md)\n   4. [비동기 메세징으로 가용성 개선](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/03%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EA%B0%84%20%ED%86%B5%EC%8B%A0/3.4%20%EB%B9%84%EB%8F%99%EA%B8%B0%20%EB%A9%94%EC%84%B8%EC%A7%95%EC%9C%BC%EB%A1%9C%20%EA%B0%80%EC%9A%A9%EC%84%B1%20%EA%B0%9C%EC%84%A0.md)\n4. **사가를 이용한 트랜잭션 관리**\n   1. [MSA에서 트랜잭션의 필요성](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/04%20%EC%82%AC%EA%B0%80%EB%A5%BC%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%20%EA%B4%80%EB%A6%AC/4.1%20MSA%EC%97%90%EC%84%9C%20%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%EC%9D%98%20%ED%95%84%EC%9A%94%EC%84%B1.md)\n   2. [Saga의 구성](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/04%20%EC%82%AC%EA%B0%80%EB%A5%BC%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%20%EA%B4%80%EB%A6%AC/4.2%20Saga%20%EA%B5%AC%EC%84%B1.md)\n   3. [비격리 문제](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/04%20%EC%82%AC%EA%B0%80%EB%A5%BC%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%20%EA%B4%80%EB%A6%AC/4.3%20%EB%B9%84%EA%B2%A9%EB%A6%AC%20%EB%AC%B8%EC%A0%9C.md)\n   4. [주문 서비스 디자인과 주문 생성 Saga 설계](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/04%20%EC%82%AC%EA%B0%80%EB%A5%BC%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%20%EA%B4%80%EB%A6%AC/4.4%20%EC%A3%BC%EB%AC%B8%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%94%94%EC%9E%90%EC%9D%B8%EA%B3%BC%20%EC%A3%BC%EB%AC%B8%20%EC%83%9D%EC%84%B1%20Saga%20%EC%84%A4%EA%B3%84.md)\n5. **비지니스 로직 설계**\n   1. [비지니스 로직 구성 패턴](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/05%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%84%A4%EA%B3%84/5.1%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EA%B5%AC%EC%84%B1%20%ED%8C%A8%ED%84%B4.md)\n   2. [DDD Aggregate Pattern](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/05%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%84%A4%EA%B3%84/5.2%20DDD%20Aggregate%20Pattern.md)\n   3. [Publish Domain Event](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/05%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%84%A4%EA%B3%84/5.3%20Publish%20Domain%20Event.md)\n   4. [주방 서비스 비지니스 로직 예제](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/05%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%84%A4%EA%B3%84/5.4%20%20%EC%A3%BC%EB%B0%A9%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%98%88%EC%A0%9C.md)\n   5. [주문 서비스 비지니스 로직 예제](https://github.com/jhhong0509/study-architecture/blob/master/msa/book/05%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%84%A4%EA%B3%84/5.5%20%EC%A3%BC%EB%AC%B8%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EC%98%88%EC%A0%9C.md)\n6. **비지니스 로직 개발: Event Sourcing**\n   1. [Event Sourcing 응용 비지니스 로직 개발](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/06%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EA%B0%9C%EB%B0%9C%3A%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%86%8C%EC%8B%B1/6.1%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%86%8C%EC%8B%B1%20%EC%9D%91%EC%9A%A9%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EA%B0%9C%EB%B0%9C.md)\n   2. [Event Store 구축하기](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/06%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EA%B0%9C%EB%B0%9C:%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%86%8C%EC%8B%B1/6.2%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%A0%80%EC%9E%A5%EC%86%8C%20%EA%B5%AC%ED%98%84.md)\n   3. [Saga와 Event Sourcing](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/06%20%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4%20%EB%A1%9C%EC%A7%81%20%EA%B0%9C%EB%B0%9C:%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%86%8C%EC%8B%B1/6.3%20Saga%EC%99%80%20%EC%9D%B4%EB%B2%A4%ED%8A%B8%20%EC%86%8C%EC%8B%B1.md)\n7. **마이크로서비스 쿼리 구현하기**\n   1. [API 조합 패턴 응용 쿼리](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/07%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%BF%BC%EB%A6%AC%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/7.1%20API%20%EC%A1%B0%ED%95%A9%20%ED%8C%A8%ED%84%B4%20%EC%9D%91%EC%9A%A9%20%EC%BF%BC%EB%A6%AC.md)\n   2. [CQRS 패턴](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/07%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%BF%BC%EB%A6%AC%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/7.2%20CQRS%20%ED%8C%A8%ED%84%B4.md)\n   3. [CQRS View 설계](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/07%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%BF%BC%EB%A6%AC%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/7.3%20CQRS%20View%20%EC%84%A4%EA%B3%84.md)\n   4. [CQRS를 AWS DynamoDB로 구현](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/07%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%BF%BC%EB%A6%AC%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/7.4%20CQRS:%20AWS%20DynamoDB%EB%A1%9C%20%EA%B5%AC%ED%98%84.md)\n8. **외부 API 패턴**\n   1. [외부 API 설계 이슈](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/08%20%EC%99%B8%EB%B6%80%20API%20%ED%8C%A8%ED%84%B4/8.1%20%EC%99%B8%EB%B6%80%20API%20%EC%84%A4%EA%B3%84%20%EC%9D%B4%EC%8A%88.md)\n   2. [API Gateway 패턴](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/08%20%EC%99%B8%EB%B6%80%20API%20%ED%8C%A8%ED%84%B4/8.2%20API%20Gateway%20%ED%8C%A8%ED%84%B4.md)\n   3. [API Gateway 구현](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/08%20%EC%99%B8%EB%B6%80%20API%20%ED%8C%A8%ED%84%B4/8.3%20API%20Gateway%20%EA%B5%AC%ED%98%84.md)\n9. **마이크로서비스 테스트 - 1**\n   1. [MSA 테스트 전략](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/09%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%ED%85%8C%EC%8A%A4%ED%8A%B8-1/9.1%20MSA%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EC%A0%84%EB%9E%B5.md)\n   2. [서비스 단위 테스트](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/09%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%ED%85%8C%EC%8A%A4%ED%8A%B8-1/9.2%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%8B%A8%EC%9C%84%20%ED%85%8C%EC%8A%A4%ED%8A%B8.md)\n\n10. **마이크로서비스 테스트 - 2**\n    1. [통합 테스트](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/10%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%ED%85%8C%EC%8A%A4%ED%8A%B8-2/01.%20%ED%86%B5%ED%95%A9%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0.md)\n    2. [Component 테스트](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/10%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%ED%85%8C%EC%8A%A4%ED%8A%B8-2/02.%20Component%20%ED%85%8C%EC%8A%A4%ED%8A%B8.md)\n    3. [End-To-End 테스트](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/10%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%ED%85%8C%EC%8A%A4%ED%8A%B8-2/03.%20%EC%A2%85%EB%8B%A8%20%ED%85%8C%EC%8A%A4%ED%8A%B8.md)\n\n11. **Production Ready 서비스 개발**\n    1. [보안 서비스 개발](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/11%20Production-Ready%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B0%9C%EB%B0%9C/01.%20%EB%B3%B4%EC%95%88%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B0%9C%EB%B0%9C.md)\n    2. [Configurable 서비스 개발](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/11%20Production-Ready%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B0%9C%EB%B0%9C/02.%20%EC%84%A4%EC%A0%95%20%EA%B0%80%EB%8A%A5%ED%95%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4.md)\n    3. [Observable 서비스 개발](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/11%20Production-Ready%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B0%9C%EB%B0%9C/03.%20%EA%B4%80%EC%B8%A1%20%EA%B0%80%EB%8A%A5%ED%95%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4.md)\n    4. [Microservice Chassis](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/11%20Production-Ready%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B0%9C%EB%B0%9C/04.%20Microservice%20chassis.md)\n\n12. **Microservice 배포**\n    1. [언어 특정 Packaging Format 패턴](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/01.%20%EC%96%B8%EC%96%B4%EC%97%90%20%ED%8A%B9%EC%A0%95%ED%95%9C%20packaging%20format.md)\n    2. [Virtual Machine 패턴](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/02.%20Virtual%20Machine%20%ED%8C%A8%ED%84%B4.md)\n    3. [Container 패턴](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/03.%20Container%20%ED%8C%A8%ED%84%B4.md)\n    4. [K8S](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/04.%20Kubernetes.md)\n    5. [Serverless](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/05.%20serverless.md)\n    6. [AWS Lambda와 API Gateway로 서비스 배포](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/12%20microservice%20%EB%B0%B0%ED%8F%AC/06.%20AWS%20Lambda%EC%99%80%20API%20Gateway%EB%A1%9C%20RestAPI%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%B0%B0%ED%8F%AC.md)\n\n13. **마이크로서비스 리팩토링**\n    1. [개요](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/13%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81/13.1%20%EA%B0%9C%EC%9A%94.md)\n    2. [마이크로서비스 전환 전략](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/13%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81/13.2%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8A%A4%20-%3E%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%A0%84%ED%99%98%20%EC%A0%84%EB%9E%B5.md)\n    3. [Monolith와 서비스의 Communication](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/13%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81/13.3%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8A%A4%EC%99%80%20%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98%20%ED%98%91%EB%A0%A5.md)\n    4. [배달 실패 주문 처리](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/13%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81/13.4%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%83%9D%EC%84%B1:%20%EB%B0%B0%EB%8B%AC%20%EC%8B%A4%ED%8C%A8%20%EC%A3%BC%EB%AC%B8%20%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0.md)\n    5. [배달 관리 추출하기](https://github.com/jhhong0509/study-architecture/blob/main/msa/book/13%20%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81/13.5%20%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8A%A4%20%EB%B6%84%ED%95%B4:%20%EB%B0%B0%EB%8B%AC%20%EA%B4%80%EB%A6%AC%20%EC%B6%94%EC%B6%9C.md)\n\n\n---\n\n## 육각형 아키텍쳐\n\n1. [육각형 아키텍쳐란](https://github.com/jhhong0509/study-architecture/blob/main/hexagonal_architecture/01.%20%EC%9C%A1%EA%B0%81%ED%98%95%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90%EB%9E%80.md)\n2. [구현하기](https://github.com/jhhong0509/study-architecture/blob/main/hexagonal_architecture/02.%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0.md)\n3. [Spring Boot에서 구현하기](https://github.com/jhhong0509/study-architecture/blob/main/hexagonal_architecture/03.%20spring%20boot%EC%97%90%EC%84%9C%20%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0.md)\n\n---\n\n## 리팩토링\n\n- [리팩토링이란?](https://github.com/jhhong0509/study/blob/master/refactoring/1.what_is.md)\n- [언제 리팩토링 해야 하는가?](https://github.com/jhhong0509/study/blob/master/refactoring/2.when_we_should_do.md)\n- [어디를 리팩토링 해야 하는가](https://github.com/jhhong0509/study/blob/master/refactoring/3.where_we_should.md)\n- [어떻게 리팩토링 해야 하는가](https://github.com/jhhong0509/study/blob/master/refactoring/4.how_we_should.md)\n\n---\n\n## NGINX\n\n- [NGINX란?](https://github.com/jhhong0509/study/blob/master/nginx/basic.md)\n- [NGINX 사용하기](https://github.com/jhhong0509/study/blob/master/nginx/use_nginx.md)\n\n---\n\n## DOCKER\n\n- [도커란?](https://github.com/jhhong0509/study/blob/master/docker/what_is_docker.md)\n- [도커파일](https://github.com/jhhong0509/study/blob/master/docker/dockerfile.md)\n- [컨테이너 실행](https://github.com/jhhong0509/study/blob/master/docker/docker_run.md)\n- [기타 도커 명령어](https://github.com/jhhong0509/study/blob/master/docker/docker_commands_etc.md)\n- [도커 데이터베이스 연결](https://github.com/jhhong0509/study/blob/master/docker/docker_database.md)\n- [Docker-Compose](https://github.com/jhhong0509/study/blob/master/docker/docker_compose.md)\n\n---\n\n## SPRING 공부\n\n---\n\n### 디자인 패턴\n\n- [FACADE 패턴](https://github.com/jhhong0509/study/blob/master/stu_spring/design_pattern/facade.md)\n- [Factory 패턴](https://github.com/jhhong0509/study/blob/master/stu_spring/design_pattern/factory.md)\n- [Defensive Copy](https://github.com/jhhong0509/study/blob/master/stu_spring/design_pattern/defensive_copy.md)\n\n---\n\n### FILE SERVER\n\n- [SPRING 기본 파일 상식](https://github.com/jhhong0509/study/blob/master/stu_spring/file/information.md)\n- [SPRING 파일 업로드](https://github.com/jhhong0509/study/blob/master/stu_spring/file/file_upload.md)\n\n### 오류 해결\n\n- **JWT**\n    1. [다른 언어에서 발급된 토큰 검증](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/token_validate.md)\n    2. [필터에서 Exception처리](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/token_filter_exception.md)\n- **테스트코드**\n    1. [다른 테스트 간섭 문제](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/testcode_gradlew_not_work.md)\n- **Spring Data JPA**\n    1. [Spring Data JPA의 flush](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/spring_data_jpa_flush.md)\n- **영속성 전이**\n    1. [PERSIST 저장 안됨](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/cascade_persist.md)\n    2. [PESIST 중복저장](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/cascade.md)\n    3. [DETACHED 엔티티 저장](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/cascade_merge.md)\n- **MySQL**\n    1. [AUTO_INCREMENT 이상](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/mysql_generatedvalue.md)\n    2. [도커 MySQL 접속](https://github.com/jhhong0509/study/blob/master/stu_spring/fixing/mysql_connect.md)\n\n---\n\n### ETC\n\n- [객체지향](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/stu_object_oriented.md)\n- **Bean**\n  - [빈 이란](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/bean/what_is.md)\n  - [빈 등록 어노테이션](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/bean/bean_annotation.md)\n  - [Bean을 주입받을 때 Interface 타입을 사용해야 하는 이유](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/bean/why_use_interface.md)\n  - [SLSB](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/bean/slsb.md)\n- **Security**\n  - [CORS와 SOP](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/security/cors_and_sop.md)\n  - [CSRF](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/security/csrf.md)\n- [build.gradle 관련 설명](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/spring_basic/build.gradle.md)\n- [Business Exception](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/business_exception.md)\n- [커스텀 HEADER 네이밍 규칙](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/custom_header_naming.md)\n- [Exception Handler](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/coding_ways/exceptionhandler.md)\n- [Json Path 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/coding_ways/json_path.md) (비추)\n- [QueryParameter와 PathParameter 차이](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/coding_ways/query_vs_path.md)\n- [직렬화](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/serialization.md)\n- [서블릿](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/spring_basic/servlet.md)\n- [컨텍스트](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/spring_basic/context.md)\n- [var](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/var.md)\n- [트랜잭션](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/transaction.md)\n- [불변 객체](https://github.com/jhhong0509/study/blob/master/stu_spring/etc_information/immutable_object.md)\n\n---\n\n### Quartz\n\n1. [소개](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_quartz/01.introduce.md)\n2. [구조](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_quartz/02.quartz_components.md)\n3. [사용하기](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_quartz/03.simply_use.md)\n---\n\n### 기타 라이브러리\n\n- Lombok\n    - [@Builder](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/lombok/builder.md)\n- MapStruct\n    - [MapStruct란?](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/mapStruct/basic.md)\n    - [설정하기](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/mapStruct/setup.md)\n    - [시작하기](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/mapStruct/start.md)\n    - [만난 에러들](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/mapStruct/errors.md)\n- LOGBACK\n    - [LOGBACK](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/logback.md)\n- REST TEMPLATE\n    - [Rest Template](https://github.com/jhhong0509/study/blob/master/stu_spring/libraries/rest_template.md)\n\n---\n\n### ORM\n\n- [상식](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/orm_stu.md)\n- [Query DSL이란?](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/what_is_query_dsl.md)\n- [Query DSL 세팅하기](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/query_dsl_settings.md)\n- [JPQL이란](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/what_is_jpql.md)\n- [EntityManager 타입](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/type_of_entitymanager.md)\n- [Natural ID 예제](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/demo-natural-id)\n- [Entity Manager 종류](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/type_of_entitymanager.md)\n- [영속성 컨텍스트 팁](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/persistence_context_tip.md)\n- [LazyConnectionDataSourceProxy](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/LazyConnectionDataSourceProxy.md)\n\n---\n\n#### 자바 ORM 표준 JPA 프로그래밍\n\n1. [챕터1](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter01.md)\n2. [챕터2](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter02.md)\n3. [챕터3](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter03.md)\n4. [챕터4](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter04.md)\n5. [챕터5](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter05.md)\n6. [챕터6](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter06.md)\n7. [챕터7](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter07.md)\n8. [챕터8](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter08.md)\n9. [챕터9](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter09.md)\n10. [챕터10](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter10.md)\n11. [챕터11](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter11.md)\n12. [챕터12](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter12.md)\n13. [챕터13](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter13.md)\n14. [챕터14](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter14.md)\n15. [챕터15](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter15.md)\n16. [챕터16](https://github.com/jhhong0509/study/blob/master/stu_spring/orm/jpa_basic_orm/chapter16.md)\n\n---\n\n#### REDIS\n\n- [Spring Data Redis](https://github.com/jhhong0509/study/blob/master/stu_spring/redis/redis.md)\n\n---\n\n#### REFLECTION\n\n- [Reflection 이란](https://github.com/jhhong0509/study/blob/master/stu_spring/reflection_and_aop/what_is_reflection.md)\n\n---\n\n#### AOP\n\n- [AOP란](https://github.com/jhhong0509/study/blob/master/stu_spring/reflection_and_aop/what_is_aop.md)\n- [AOP 용어](https://github.com/jhhong0509/study/blob/master/stu_spring/reflection_and_aop/aop_words.md)\n- [AOP 표현식](https://github.com/jhhong0509/study/blob/master/stu_spring/reflection_and_aop/aop_expression.md)\n- [AOP 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/reflection_and_aop/aop_code.md)\n\n---\n\n#### 소켓\n\n- [WebSocket 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/socket/01.websocket.md)\n- STOMP\n  - [소개](https://github.com/jhhong0509/study/blob/master/stu_spring/socket/stomp/01.introduce.md)\n  - [설정](https://github.com/jhhong0509/study/blob/master/stu_spring/socket/stomp/02.basic_config.md)\n  - [사용하기](https://github.com/jhhong0509/study/blob/master/stu_spring/socket/stomp/03.using.md)\n\n---\n\n### 스프링 부트와 AWS로 혼자 구현하는 웹 서비스\n\n- [기타 정보](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/information.md)\n- [프로젝트 생성](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/create_project.md)\n- [웹 서버란](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/web_server.md)\n- [테스트 코드에 대해](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/testcode.md)\n- CODE\n    - [컨트롤러](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/controller.md)\n    - [DTO와 Entity](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/DTOs_and_Entity.md)\n    - [JPA](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/jpa.md)\n    - [서비스 레이어](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/service.md)\n    - [템플릿(mustache)](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/template.md)\n    - [OAUTH](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/oauth.md)\n    - [테스트코드](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/codes/test_code.md)\n- AWS\n    - [RDS](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/rds.md)\n    - [EC2](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/ec2.md)\n    - [배포](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/publish.md)\n    - [배포 자동화](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/auto_publish.md)\n    - [무중단 배포](https://github.com/jhhong0509/study/blob/master/stu_spring/spring_boot_sole_web/no_stop_publish.md)\n\n---\n\n### WebFlux\n\n- **개인 공부**\n\n  1. [팁](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/00.tips.md)\n\n  2. [Reactive Stream 기초](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/01.reactive_basic.md)\n\n  3. [Observer Pattern](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/02.observer_pattern.md)\n\n  4. [Observer Pattern과 Reactive Programming](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/03.reactive_with_observer.md)\n\n  5. [Non Block \u0026 Block \u0026 Async \u0026 Sync](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/04.non_block_block.md)\n\n  6. [함수형 프로그래밍](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/05.functional_programming.md)\n\n  7. [Stream API](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/06.stream_api.md)\n\n  8. [동시성 프로그래밍](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/07.concurrent_programming.md)\n\n  9. [Future Pattern](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/08.future.md)\n\n  10. [Reactor](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/09.reactor.md)\n\n  11. [webflux 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/10.use_webflux.md)\n\n  12. [Backpressure 심화](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/11.dipper_backpressure.md)\n\n  13. [Webflux Jackson](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/12.jackson.md)\n\n  14. [RSocket](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/13.rsocket.md)\n\n      \u003e [Reactor Pattern](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/ex.reactor_pattern.md)\n\n- [간단한 블로그 예제코드](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/test/auth)\n\n\u003cbr\u003e\n\n- [GURU Webflux 강의](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru)\n\n  \u003e 예제 코드 포함\n\n  1. [Reactive Programming](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-01)\n     - [Reactive Programming 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-01/reactive_prgramming.md)\n  2. [Webflux 주요 키워드 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-02)\n     - [Mono 연산자](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-02/docs/01.Mono_Operations.md)\n     - [Flux 연산자](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-02/docs/02.Flux_Operations.md)\n     - [Filtering 방법](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-02/docs/03.Filtering.md)\n     - [Step Verifier](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-02/docs/04.StepVerifier.md)\n  3. [Reactive MongoDB](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03)\n     - [Reactive MongoDB](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03/docs/01.start_mongo.md)\n     - [CommandLinerRunner](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03/docs/02.command_line_runner.md)\n     - [Service 계층](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03/docs/03.service_layer.md)\n     - [MVC 방식 Controller](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03/docs/04.mvc_controller.md)\n     - [Event Streaming](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-03/docs/05.streaming_event.md)\n  4. [Webclient](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04)\n     - [RestTemplate](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/01.introduction.md)\n     - [함수형 프로그래밍](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/02.functional_programming.md)\n     - [RestTemplate vs Webclient](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/03.resttemplate_vs_webclient.md)\n     - [토이프로젝트 Overview](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/04.overview_of_toyproject.md)\n     - [Webclient 시작하기](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/05.start_webclient.md)\n     - [Webclient로 요청 보내기](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/06.webclient_request.md)\n     - [로깅](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/07.logging.md)\n     - [Path Parameter 처리](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/08.path_parameter.md)\n     - [Exception Handling](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/09.exception_handling.md)\n     - [Reactive 스타일로 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-04/docs/02.functional_programming.md)\n\n  6. [R2DBC 사용하기](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06)\n     - [섹션 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/01.introduce.md)\n     - [R2DBC 소개](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/02/introduce.md)\n     - [DB 초기화](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/03.init_database.md)\n     - [findById 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/04.refactoring_findById.md)\n     - [getList는 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/05.refactoring_getlist.md)\n     - [save 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/06.refactoring_save.md)\n     - [update 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/07.refactoring_update.md)\n     - [update 예외처리 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/08.refactoring_update_exception.md)\n     - [delete 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-06/docs/09.refactoring_delete.md)\n  7. [함수형 프로그래밍으로 리팩토링](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-07)\n     - [함수형 엔드포인트 사용 방법](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-07/docs/02.functional_endpoint.md)\n     - [함수형 엔드포인트 예제](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-07/docs/03.getBeerById.md)\n     - [함수형 엔드포인트에서 Validation 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-07/docs/04.body_validation.md)\n  8. [데이터 스트리밍](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-08)\n     - [Service](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-08/docs/01.service.md)\n     - [테스트코드](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-08/docs/02.test.md)\n     - [Handler](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-08/docs/03.handler.md)\n\n  10. [Rabbit MQ](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10)\n      - [소개](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10/docs/01.overview.md)\n      - [시작하기](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10/docs/02.setup.md)\n      - [설정하기](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10/docs/03.config.md)\n      - [메세지 전송](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10/docs/04.message_sender.md)\n      - [메세지 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/webflux/Reactive-Programming-Guru/sec-10/docs/05.use.md)\n\n---\n\n### AWS\n\n- Secret Manager\n\n  \u003e [예제코드](https://github.com/jhhong0509/study/tree/master/mentoring/secretmanager)\n\n  - [소개](https://github.com/jhhong0509/study/blob/master/mentoring/aws_secrets.md)\n  - [aws-secretsmanager-jdbc](https://github.com/jhhong0509/study/blob/master/mentoring/spring_aws_secret_manager.md)\n\n---\n\n### 배포 자동화\n\n0. [유의사항](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/README.md)\n1. [S3 세팅](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/01.s3_setting.md)\n2. [IAM 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/02.IAM_setting.md)\n3. [CodeCommit 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/03.code_commit.md)\n4. [CodeBuild 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/04.code_build.md)\n5. [CodeDeploy를 위한 IAM 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/05.IAM_for_code_deploy.md)\n6. [EC2 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/06.EC2_setting.md)\n7. [CodeDeploy 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/07.code_deploy_setting.md)\n8. [CodePipeline 설정](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/08.code_pipeline_setting.md)\n9. [Docker 사용](https://github.com/jhhong0509/study/blob/master/stu_spring/auto_deployment/09.change_to_docker.md)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhhong0509%2Fstudy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhhong0509%2Fstudy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhhong0509%2Fstudy/lists"}