์๋ ํ์ธ์. ์ง์๊ณต์ ์ ์ต์์ฉ์ ๋๋ค.
๋ง์ ์คํ์์ค์ ๊ธฐ์ฌํ ๊ฒฝํ์ด ์๋ ํ์ง ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ๋๋ค.
- Spring Data Mongo Contributor
- querydsl Contributor
- grpc-kotlin Contributor
- ksp Contributor
- mybatis Contributor
Courses
Reviews
- How to solve simultaneity issues through inventory system
- How to solve simultaneity issues through inventory system
- How to solve simultaneity issues through inventory system
- First-come, first-served event system that you learn through practice
- Distributed Transactions through an Order System
Posts
Q&A
ํ ์คํธ ์ฝ๋
ํจํจ๋ ์๋ ํ์ธ์.์ด๋ค๊ฒ์ ํ ์คํธํ๋๊ฒ์ด ๋ชฉ์ ์ธ๊ฐ? ๋ฅผ ์๊ฐํด๋ณด๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค.๋น์ฆ๋์ค๋ก์ง์ ๊ฒ์ฆํ ๋ ์ ๋ ์นดํ์นด ๋ฐํ์ ํ๋๊ฐ? ์ ๋๋ง ๊ฒ์ฆ์ ํ๋ํธ์ ๋๋ค.์ปจ์๋จธ์ชฝ์ ๋ก์ง์ ๋ํ ํ ์คํธ๋ฅผ ํ๋ํธ์ ๋๋ค.ํตํฉํ ์คํธ๋ ๋ณ๋๋ก ์งํํ์ง ์์๋๋ฐ ํ์ํ๋ค๋ฉด ์งํํ ์ ์์๊ฒ ๊ฐ์ต๋๋ค.๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ์นดํ์นด ๋ฉ์์ง ๋ฐํ์ฌ๋ถ์ ๋์ ์ค์ ๋ก ๋์ํ๋์ง ํ์ธํ๋์ ๋๋ก๋ง ํ๋๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 19
Q&A
๋๊ด์ ๋ฝ์ ์ฌ์ฉํ ๋ ์ฐจ์ด์
๋ฌธ์๋ ์๋ ํ์ธ์!๊ฐ์์์๋ ๋๊ด์ ๋ฝ์ ์ฌ์ฉํ๋ค๋๊ฒ์ ๋ช ์์ ์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด์ ์ฝ์ ํ์์ต๋๋ค!์ด๋ ธํ ์ด์ ์ ํ์์๋ฐ๋ผ ์ฌ์ฉํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค!๊ฐ์ฌํฉ๋๋ค
- 0
- 2
- 35
Q&A
๋์์ฑ ๊ฒ์ฆ ์ฝ๋์ ๊ดํ ๋ฌธ์
DevelopersNan ๋ ์๋ ํ์ธ์!์ข์์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.1์ฐจ์ ์ผ๋ก๋ ์ฝ๋๋ด์ Thread.sleep ๊ฐ์ ์ฝ๋๋ฅผ ์ผ์์ ์ผ๋ก ์ถ๊ฐํด์ ๊ฒฝํฉ์ด ๋ฐ์ํ ์ ์๋๋ก ์ฝ๋๋ฅผ ์ ์ดํ ์ ์์๋ฏํฉ๋๋ค.ํ์ง๋ง, ์ด๊ฒ๋ ์๋ฒฝํ ๋ฐฉ๋ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋ง์ ํ๊ฒฝ์์์ ์ผ์ด์ค๋ฅผ ํ ์คํธ ํ๊ณ ์ถ์ผ์๋ค๋ฉด ๋ถํํ ์คํธ ํด์ ํ์ฉํ ์ ์์ ๊ฒ๊ฐ์ต๋๋ค.๋ง์ ํธ๋ํฝ์ ๋ฐ์ ์ ์๋๋ก ์๋ฒ๋ฅผ ์ธํ ํด๋๊ณ ๋ถํํ ์คํธ ํด์ ํตํด ๋ง์ ํธ๋ํฝ์ ์ ๋ฐ์ํจ ํ, ๋ฐ์ดํฐ๊ฐ ์๋ํ ๋๋ก ์ ์ฅ์ด ๋์๋์ง ํ์ธํด๋ณผ ์ ์์๋ฏํฉ๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 29
Q&A
consumer๊ฐ topic์ ์ ๋ถ ์ฌ์ฉํ๊ธฐ ์ ์ ์ฌ์ฉ์์๊ฒ๋ ์ฟ ํฐ์ด ๋ฐ๊ธ๋๊ฒ์ผ๋ก ํ์ธํ๋ ๊ณผ์ ์์ ๋ฐ์๊ฐ๋ฅํ ๋ฌธ์ .
ํฉ์ค์ฑ๋ ์๋ ํ์ธ์.๋ง์ํด์ฃผ์ ๊ฒ๊ณผ ๊ฐ์ด kafka ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ ์๋์ ์ฟ ํฐ์ด ์์ฑ๋์ง ์๋ ์ผ์ด์ค๊ฐ ์์ ์ ์์ต๋๋ค.๋ง์ํด์ฃผ์ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์๋ ์๊ฒ ์ผ๋, ์ฌ๋ฌ๊ฐ์ง ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํด๋ณด์์๋ ๋ณต์ก๋๊ฐ ๋์์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์๋ฏํฉ๋๋ค. ์กฐ๊ธ์ ๋๋ ์ด๋ ํ์ฉ๋์ง ์๋ ์๋น์ค๋ผ๋ฉด ์์ ๋๊ธฐ์ด์ ๋ง๋ ํ ๋๋น๊ฐ ์ฒ๋ฆฌํ ์ ์์๋งํผ์ ํธ๋ํฝ๋ง ๋ฐ์ ์ ์๋๋ก ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 30
Q&A
Optimistic Lock ์ฌ์ฉ์ด์
๋ฐฑ์ข ์ธ๋ ์๋ ํ์ธ์.๊ฐ์์์ ์ฌ์ฉํ๋ ๋ถ์ฐ๋ฝ์ 1๊ฐ์ ์ฃผ๋ฌธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ์ฌ ์ฌ์ฉํ์์ต๋๋ค.A ์ํ์ ์ฌ๊ณ ๊ฐ 5๊ฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ณ 1๋ฒ ์ฃผ๋ฌธ์ด A ์ํ์ 4๊ฐ๊ตฌ๋งค, 2๋ฒ ์ฃผ๋ฌธ์ด B ์ํ์ 2๊ฐ๊ตฌ๋งค ํ๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋ถ์ฐ๋ฝ์ 1๋ฒ์ฃผ๋ฌธ๊ณผ 2๋ฒ์ฃผ๋ฌธ์ด ๊ฐ 1๋ฒ์ฉ ์ฃผ๋ฌธ๋๋๊ฒ์ ๋ณด์ฅํด์ค๋๋ค. ํ์ง๋ง A ์ํ์ ์ฌ๊ณ ๋ ๋ณด์ฅํด์ฃผ์ง ๋ชปํฉ๋๋ค. -> A ์ํ์ด๋ผ๋ ๋ฆฌ์์ค์ ์ฌ๋ฌ๊ฐ์ ์ ๊ทผ์ด '๋์์' ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. A์ํ์ด๋ผ๋ ๋ฆฌ์์ค์ ์ฌ๋ฌ๊ฐ์ ์ ๊ทผ์ด ๋์์ ๊ฐ๋ฅํ๊ฒ์ ๋ฐฉ์ดํ๊ธฐ ์ํ์ฌ optimistic lock ์ ํ์ฉํ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 37
Q&A
๋จ์ผ์ฐ์ฐ
ililil ๋ ์๋ ํ์ธ์.๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ง์ํด์ฃผ์ ๋๋ก ๋๋น์ ํธ๋์ญ์ ๊ณผ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ์ ์ด๋ฅผ ํ ์ ์์ต๋๋ค.๋ค๋ง, update stock quantity = quanity - ? where quantity - ? >= 0 ๊ณผ ๊ฐ์ด where ๋ฌธ์ด ์ถ๊ฐ๋์ด์ผ ํ ๊ฒ ๊ฐ๋ค์. ๊ฐ์์์๋ ๋์์ฑ์ ์ ์ดํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํ๊ธฐ ์ํด '์ฌ๊ณ ' ๋ผ๋ ์์ ๋ฅผ ์ ํํ๊ฒ์ด๊ณ ์ฌ๊ณ ๋ง์ ๊ด๋ฆฌํ๋ ๋ก์ง์ด๋ผ๋ฉด ๋ง์ํ์ ๋๋ก ํธ๋์ญ์ ๊ณผ ์ฟผ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ ์ด๋ฅผ ํ ์ ์์ต๋๋ค. ๋ค๋ง, ๋น์ฆ๋์ค ๋ก์ง์ด ๋ณต์กํด์ ธ์ ์ ๋ํฌํค๋ฅผ ์ฌ์ฉํ ์ ์๋์ํฉ์ด๊ฑฐ๋ ๋ค์์ ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๋๊ฒฝ์ฐ์ ๋ฝ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ์ดํดํด์ฃผ์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 30
Q&A
์ฟ ํฐ์ ๊ด๋ จ๋์ด์ ์ข ๋ ์ฐธ๊ณ ํ ๋งํ ์๋ฃ๊ฐ ์์๊น์?
๊น๋ฐฑ๊ณฐ๋ ์๋ ํ์ธ์.์ ๊ฐ ์ ๊น ๊ตฌ๊ธ๋ก ์ฐพ์๋ดค์๋ ์๋์ ๊ฐ์ ๊ฒ์๊ธ๋ค์ด ์๋ค์ฉhttps://oliveyoung.tech/2023-08-07/async-process-of-coupon-issuance-using-redis/https://oliveyoung.tech/2023-09-18/oliveyoung-coupon-rabbit/ํ๊ตญ์๋ฃ๋ ์์ ์๋ฃ๋ค์ด ์์๊ฒ๊ฐ๊ณ coupon system design ์ด๋ผ๊ณ ๊ฒ์์ ํ์๋ฉด ํด์ธ์ ๊ธ๋ค๋ ๋ณด์ค ์ ์์๋ฏํฉ๋๋ค!๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 35
Q&A
์์ ์ฝ๋ ์ง๋ฌธ ๋๋ฆฝ๋๋ค
ํ๊ฟ๋ ์๋ ํ์ธ์. ๋ฆ์ด์ ธ์ ์ฃ์กํฉ๋๋ค.์์ค์ฝ๋๋ฅผ git ์ ์ฌ๋ ค๋์์ต๋๋ค!https://github.com/sangyongchoi/distributed-transaction์น์ ๋ณ๋ก ๋ธ๋์น๋ก ๋๋์ด๋์์ต๋๋ค.
- 0
- 3
- 60
Q&A
๋ ธํธ์ ๋ ธ์ ํ์ด์ง ๊ณต์ ๊ฐ ์์ต๋๋ค.
์๋ผ๋ ๋ ์๋ ํ์ธ์.์ข์๋ง์ ๊ฐ์ฌํฉ๋๋ค. ๋ ธ์ ํ์ด์ง๋ฅผ ์ ๊ทผํ ์ ์๋๋ก ๋ ธํธ์ ๊ณต์ ํ์์ต๋๋ค!
- 0
- 2
- 40
Q&A
๋๊ด์ ๋ฝvs. ๋ ๋์ค๋ฝ
์ต์์ฐ๋ ์๋ ํ์ธ์.๋น์ฆ๋์ค๋ก์ง์ด ์ด๋ค์ง์ ๋ฐ๋ผ ์ฑ๋ฅ์ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก ์ ํํ๊ฐ์ ์๋น์ค๋ณ๋ก ์ฑ๋ฅํ ์คํธ๋ฅผ ํตํด ํ์ธ ํด์ผํ ๋ฏํฉ๋๋ค.์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํด์ผ ํ๋ค๋ฉด ๋ ๋์ค ๋ฝ์ด ์ข์๋ฏํ๊ณ , 1๊ฐ์ ๋ฐ์ดํฐ๋ง ์ ์ดํ๋ค๋ฉด ๋๊ด์ ๋ฝ + ์ฌ์๋๋ฅผ ํตํด ์ ์ดํด๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 44






