์๋ ํ์ธ์. ์ ๋ Jayce์ ๋๋ค. ํ์ฌ ์ ๋์ฝ ์คํํธ์ ์ ํ๋ซํผ ์์ง๋์ด๋ก ์ผํ๊ณ ์์ต๋๋ค.
์ ๋ ์ฐฝ์ ๋ ํ๊ณ ๋๊ท๋ชจ ์๋น์ค๋ฅผ ์ํ ๊ฐ๋ฐ๋ ํ๊ณ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋ซํผ์ ๋ง๋ค๊ธฐ๋ ํ๋ฉด์ ์งง์ ์๊ฐ ๋์ ์๋น์ค ๊ฐ๋ฐ์๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ญํ ๋ ์ํํด๋ณด๊ณ ํ๋ซํผ ์์ง๋์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ญํ ๋ ์ํํ์ต๋๋ค. ๊ทธ ๊ณผ์ ์์ "์ํ๋ Software Engineer๋ ์ด๋ค ํน์ง์ด ์๊ณ ์ด๋ป๊ฒ ํด์ผ ๊ทธ๋ฐ ์ฌ๋์ด ๋ ์ ์๊ตฌ๋"๋ฅผ ๋๋ฆ๋๋ก ์ ๋ฆฝํ ์ ์์์ต๋๋ค.
์ ๋ ์งง๊ฒ ๋งํด์ Deep Dive ํ๋ ์ฌ๋๋ค์ ํจ๊ป ์ผํ๋ ์์ง๋์ด๋ก์ ๋งค๋ ฅ์ ์ด๋ผ๊ณ ๋๋๋๋ค. ๋จ์ํ ์ฃผ์ด์ง ์ผ์ ๊ธฐ๊ณ์ฒ๋ผ ์ณ๋ด๋ ์ฌ๋์ ์ด๋ค ์ํฉ์ ๋ํ ์ต์ ์ ์ ํ์ ๋ด๋ฆฌ๊ธฐ๊น์ง ๋น๊ต์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์์. ๋ฐ๋ฉด ์ ์ด๋ฐ ๊ฒฐ์ ์ ํด์ผํ๋์ง ๊ธฐ์ ๋ด๋ฉด์ ๊ณตํ์ ์ธ ์ด์ ๋ฅผ ํ๊ณ ๋ค๋ฉฐ ์ดํดํ๋ ์ฌ๋๋ค์ ๊ธ๋ฐฉ ๋ค๋ฅธ ์์ฌ ๊ฒฐ์ ์์๋ ๊ณตํ์ ์ผ๋ก ์ค๋๋ ฅ ๊ฐํ ์ฃผ์ฅ์ ํ ์ ์๋ ์ฌ๋์ด ๋ฉ๋๋ค.
์ ๊ฐ ๋ง๋๋ ๊ฐ์๋ ์๋ก์ด ๊ธฐ์ ์ ์๊ฒ ์ตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ง ์์ต๋๋ค. ์ ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ค์ด ํ๋ฅญํ ํ ๋๋ฃ, ๋งค๋ ฅ์ ์ธ ๊ฐ๋ฐ์, ๋จ๋จํ ๊ธฐ์ ์๊ฐ ๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๊ณ ์ถ์ต๋๋ค. ๋์ฑ ๋งค๋ ฅ์๋ ์์ง๋์ด๊ฐ ๋๊ธฐ ์ํด ์กฐ๊ธ ๋ ๊น์ ๋ด์ฉ์ ๊ณต๋ถํด๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ์ ํฉํ ๊ฐ์๋ฅผ ์ ์ต์ ์ ๋ ธ๋ ฅ์ผ๋ก ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๐
Courses
Reviews
- Learn Git Internals by Building It Yourself
- Large-Scale Systems Design Part 1
- Large-Scale Systems Design Part 1
- Large-Scale Systems Design Part 1
- Large-Scale Systems Design Part 1
Posts
Q&A
๋ ๋์ค(์ค์ ์ํ ๊ด๋ฆฌ ์๋ฒ)์์ ๋์์ฑ ์ฒ๋ฆฌ ํ๋ ๋ฐฉ์
์์ฐ... ์ธํ๋ฐ์ด AI๋ฅผ ์ ๋ง ์ ์ฐ๋๊ตฐ์. ๋ต๋ณ์ด ์กฐ๊ธ ๋์ ๋ถ๋ถ์ด ์์ผ์ค๊น์?1. ์ผ๋จ ์ง๊ธ RateLimit ๊ฐ์์ ๋ํ ์ง๋ฌธ์ด ๋ง๋์ง ์ฌ์ญค๋ณด๊ณ ์ถ์ด์. ์ ๊ฐ ์ ํํ ์ด๋ค ๋ถ๋ถ์์ ๋ง์ ๋๋ ธ๋ ๊ฑด์ง ์ฐพ๊ธฐ ์ด๋ ต๋ค์.2. ์ผ๋ฐ์ ์ธ ๋ด์ฉ์ผ๋ก ์ผ๋จ ์ง๋ฌธ ์ดํดํ ๋ฐ๋๋ก ๋ต๋ณ๋๋ ค๋ณด๊ฒ ์ต๋๋ค.Q. ์์์ ์ฐ์ฐ๊ณผ ๋ถ์ฐ๋ฝ์ผ๋ก ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค? ๊ทผ๋ฐ ๋ถ์ฐ๋ฝ์ด ์์์ ์ฐ์ฐ์ ๋ง๋๋ ๊ฑฐ ์๋๊ฐ? ๊ทธ๋ผ ๋์ ๊ฐ์ ๊ฑด๊ฐ?์ด๋ฐ ์ง๋ฌธ์ผ๋ก ์ดํดํ์ต๋๋ค.์ผ๋จ ๋์์ค๊ฐ ๋ง์๋ณด์ ๋๋ค. ์์์ ์ฐ์ฐ์ Redis ๊ฐ์ ์์คํ ์ด ์ด๋ค ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ ๋ ์ด ๋ช ๋ น์ด ์๋ฃ๋๊ธฐ ์ ๊น์ง๋ ๋ค๋ฅธ ๋ช ๋ น์ด๊ฐ ๋ผ์ด๋ค์ง ๋ชปํ๋๋ก, ๋ง ๊ทธ๋๋ก ์์์ ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ถ์ฐ๋ฝ์ ๊ทธ๋ ๊ฒ ๋ช ๋ น์ด(๋ณต์, ํน์ ๋จ์ผ)๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์์์ ์ฐ์ฐ์ ๋๊ตฌ, ๋ถ์ฐ๋ฝ์ ์์ ๋ ๋ฒจ์ ํจํด์ด๋ผ๊ณ ์๊ฐํด์ฃผ์ธ์.Q. ๊ทธ๋ฆฌ๊ณ Redis๋ฅผ ์์๋ก ๋ค์์๋, ๋ ๋์ค๋ ์ฑ๊ธ ์ค๋ ๋ ๋์ ๋ฐฉ์์ด๋ผ์, ๋์์ฑ ๋ฌธ์ ๊ฐ ์ ์ด ๋๋ค๊ณ ํ๋๋ฐ, ์ด ๋์์ฑ ๋ฌธ์ ๊ฐ ์ค์ ๋ก ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์ด๋ป๊ฒ ๋๋๊ฑด์ง, redis ์๋ฒ๊ฐ ๋ค์ค ๋ ธ๋์ผ ๋ ๋ฐ์ํ๋๊ฑด์ง ๊ถ๊ธํฉ๋๋ค.Redis ๋ฟ ์๋๋ผ ๋ณดํต ์ด๋ฐ ๋ถ์ฐ ์์คํ ์์ ์ ํฉ์ฑ์ด ๊นจ์ง๋ ์ํฉ์ Read-Modify-Write ์ํฉ์ด๊ฑฐ๋, Replication ์ค์ ๋ฐ์ํฉ๋๋ค.1. RMW: ๊ฐ์ฅ ๋จ์ํ๊ฒ ์๋ฅผ ๋ค์ด์ ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์ ์ ๊ฐ์ ์ฝ์ ๋ค์ ํด๋น ๊ฐ์์ 1์ ๋บ ๊ฐ์ ์ ์ฅํ๋ ์ผ์ด์ค๋ฅผ ์๊ฐํด๋ณด๋ฉด, ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋์์ ์ฝ๊ธฐ๋ฅผ ์ํํ๋ฉด ํ๋์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฌด์๋๋ ํจ๊ณผ๊ฐ ์๊น๋๋ค.2. Replication: Primary A๋ ธ๋๊ฐ ๋ช ๋ น์ด ์ฒ๋ฆฌํ๊ณ ๋ณต์ ๋ณธ์๊ฒ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ ์ ์ฃฝ์ผ๋ฉด, ๋ค๋ฅธ Primary B๊ฐ ์ ์ถ๋์์ ๋ ํด๋น ๋ช ๋ น์ด๋ ์ ์ค๋ ์ํ๊ฐ ๋ฉ๋๋ค.1๋ฒ์ Persistant Layer, Cache Layer์์ ํด๋ผ์ด์ธํธ์ ์ํธ์์ฉ์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ ๋ถ๋ถ์ด๊ณ , 2๋ฒ์ ๊ฒฝ์ฐ๋ ์์คํ ์ด ์ฌ์ฉ๋ ํธ๋ ์ด๋์คํ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. Primary Node์๋ง ์ฐ๊ธฐ์ ์ฑ๊ณตํ๋ฉด ์ฑ๊ณต ์๋ต์ ์ฃผ๋ ๊ฒฝ์ฐ๋ ์ด๋ฐ ์ฅ์ ์ ์ทจ์ฝํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฑ๋ฅ์ ๋น ๋ฅด๊ฒ ์ฃ ? ์ด๋ค ๊ฒฝ์ฐ๋ ํน์ ์(์ฟผ๋ผ)์ Replication์ ์ ํ๊ฐ ์ฑ๊ณตํด์ผ๋ง ํด๋ผ์ด์ธํธ์๊ฒ ์ฑ๊ณต ์๋ต์ ๋๊ธฐ๋๋ก ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฌ๋ฉด ์ฑ๋ฅ์ ๋๋ ค์ง์ง๋ง ์ผ๊ด์ฑ ์ ์ง๊ฐ ์ฌ์์ง๊ฒ ์ฃ ? CAP ์ด๋ก ๋๋ก์ ๐> ์ฒจ์ธ: ๋ค์ค๋ ธ๋(Redis Cluster)์ธ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํด ์ฑ๊ธ ์ค๋ ๋๊ฐ ๋์ ๊ฐ๋ฅํ ๊ฑด ์๋๋๋ค. ํ ๋ ธ๋๊ฐ ์ฒ๋ฆฌํ ์ ์๋ Key๋ฅผ ๋์์ผ๋ก ์์ฒญํด์ผ๋ง ์ฑ๊ธ ์ค๋ ๋๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Aํค๋ฅผ ๋ค๋ฃจ๋ A' ๋ ธ๋, Bํค๋ฅผ ๋ค๋ฃจ๋ B' ๋ ธ๋๊ฐ ์๋ค๋ฉด A, B์ ๋ํ ๋ฉํฐ ํค ์ฐ์ฐ์ ์๋ฌ๋ฅผ ๋ฐํํฉ๋๋ค.
- 0
- 3
- 77
Q&A
์์ค์ฝ๋ ์์ฒญ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์! ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค :)
- 0
- 1
- 67
Q&A
.single cluster ํฐ ์ฅ์ ๋ณต๊ตฌ
์๋ ํ์ธ์! ๋ง์ต๋๋ค. ์ฐ์ ์์ฐ์ค๋ฌ์ด ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์๋ฌธ์ ์์น๋ฅผ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ ผ๋ฌธ์ 3.3์ฅ์ ์ฒซ ๋ฌธ๋จ ๋ด์ฉ์ ํด๋นํฉ๋๋ค.ํ๋์ ํด๋ฌ์คํฐ๋ง ์ด์ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์กฐ๊ธ ๋ถ์์ฐ์ค๋ฌ์ด ๋๋์ด์ฃ . ์ ๊ฐ ์ดํดํ ๋ฐฉํฅ์ ๋ง์๋๋ฆฌ์๋ฉด, ์ฌ๊ธฐ์ ์ง์คํ ์๊ธฐ๋ "๋จ์ผ ํด๋ฌ์คํฐ๋ง ์ด์ํ๊ณ ์์ต๋๋ค"๊ฐ ์๋๋ผ, "๋จ์ผ ํด๋ฌ์คํฐ ๋ด์์์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋๋"์ ๋๋ค. ๋ค์ ์ฑํฐ๋ฅผ ๋ดค์ ๋ ์ง์คํ ๋ฌธ์ ๋ "์ฌ๋ฌ ํด๋ฌ์คํฐ ์ฌ์ด์ ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ๊ณ ์์ต๋๋ค"์ ํด๋นํ๋ ๊ฑฐ์ฃ . ์ฆ, ํ๋์ ํด๋ฌ์คํฐ๋ง ์ด์ํ๋ ์ํฉ์ ๊ฐ์ ํ๋ ๊ฒ ์๋๋ผ ํ๋์ ํด๋ฌ์คํฐ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ง์คํด์ ๋ค๋ฃจ๋ ์ฑํฐ๊ฐ 3์ฑํฐ๋ผ๊ณ ์ดํดํ๋ ๊ฒ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. ์ฆ ์ฌ๋ฌ ํด๋ฌ์คํฐ๋ฅผ ์ด์ํ๋ ์ํฉ์ด์ง๋ง, ํ๋์ ํด๋ฌ์คํฐ์์ ์๊ธฐ๋ ๋ฌธ์ ๋ค์ ๋ค๋ฃจ๋ ์๊ธฐ์ด๊ณ ํด๋ฌ์คํฐ๊ฐ ์ ์ฒด์ ์ผ๋ก Offline ์ํฉ์ด ๋ฅ์น๋ฉด ๋ค๋ฅธ ํด๋ฌ์คํฐ๋ก ์ฐํํ๋ค๋ ์ค๋ช ์ ๋๋ค.
- 0
- 1
- 390
Q&A
part 2 ๊ฐ์ ์คํ ๋ฌธ์
์๋ ํ์ธ์! ์ด ๊ฐ์๋ ์๋ ํํธ3 ๊น์ง๋ ๋ค๋ฃฐ ์์ ์ด์์ต๋๋ค. ์ฒซ ๊ฐ์๋ถํฐ ๊ฑฐ๋ํ ๊ฑธ ๋ง๋ค๊ธฐ ๋ณด๋จ ์ด๋ฐ ์ฃผ์ ๊ฐ ์ผ๋ง๋ ์์๊ฐ ์์์ง ํ์ธํ ๋ชฉ์ ์ผ๋ก ํํธ1์ ์งง๊ฒ ๋ง๋ค๊ณ , ์ ์กฐํ ๊ฒ์ผ๋ก ์์๋ ํ์ผ๋, ์์ํ ๋ฒ์๋ฅผ ๋ง์ด ๋ฐ๋๊ณ ์์ต๋๋ค. ๊ทธ๋์ ์ง๊ธ์ ์ค์ตํ ๊ฐ์๋ฅผ ์ค๋น ์ค์ ๋๋ค.Part2๋ ๋คํธ์ํฌ, ๋ฐ์ดํฐ ํ๋ฆ ๊ด๋ จ๋ ์ฃผ์ ๋ฅผ ๊ตฌ์ํ์๋๋ฐ์, HTTP1~3 internal, Proxy ๋ชจ๋ธ, PubSub, LB, Cache ๊ฐ์ ์ฃผ์ ๋ฅผ ์ค๋นํ์๋ค์.
- 0
- 1
- 538