๊ธฐ์ด CS ๊ด๋ จํด์ ๊ณต๋ถํ ์์ ์ด๋ค. ๋ค์์ ๋ด์ฉ์ ์ ๋ฆฌํ ์์ ์ด๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์น ๊ธฐ์
- ์ด์ ์ฒด์
- ๋คํธ์ํฌ
- ๋ณด์
- ํด๋ผ์ฐ๋ ์ปดํจํ
- ๋ฒ์ ๊ด๋ฆฌ ์์คํ
- ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
- ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง
- ํ ์คํธ ๋ฐ ๋๋ฒ๊ฒ
- ์๋ํ ๋ฐฐํฌ
- ์ปจํ ์ด๋ ๋ฐ ์ค์ผ์คํธ๋ ์ด์
- ์ฑ๋ฅ ์ต์ ํ
CI/CD
Continuous Integration + Continuous Delivery ์ ์ฝ์ด๋ก, ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๊ณ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
CI ๋ ๋ค์์ ๋จ๊ณ๋ฅผ ๊ฐ์ง๋ค.
- ์ฝ๋ ์์ฑ
- ์๋ ๋น๋
- ์๋ ํ ์คํธ
- ์๋ํ๋ ํตํฉ
CD๋ ๋ค์์ ๋จ๊ณ๋ฅผ ๊ฐ์ง๋ค.
- CI๋ฅผ ํตํ ์๋ํ
- ์๋ ๋ฐฐํฌ ์ค๋น
- ์๋ ์น์ธ
- ์๋ ๋ฐฐํฌ
์ฑ๋ฅ ํ ์คํธ ์ข ๋ฅ
- ์คํธ๋ ์ค ํ ์คํธ : ์คํธ๋ ์ค ํ ์คํธ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ต๋ ๋ถํ์์ ํ ์คํธํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค. ์ด ํ ์คํธ์์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ํ๊ณ๋ฅผ ํ์ธํ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ถํ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ค. ๋๋์ ๋์ ์ฌ์ฉ์ ๋๋ ํธ๋์ญ์ ์ ์์ฑํ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ต ์๊ฐ๊ณผ ์์ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ์คํ์ดํฌ ํ ์คํธ : ์คํ์ดํฌ ํ ์คํธ๋ ๊ฐ์์ค๋ฌ์ด ๋ถํ ์ฆ๊ฐ์ ๋ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์ ๋ฅ๋ ฅ์ ํ ์คํธํ๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์ด๋ฒคํธ๋ ๊ด๊ณ ์บ ํ์ธ์ผ๋ก ์ธํด ๊ฐ์๊ธฐ ๋ง์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์์ธ์คํ๋ ์๋๋ฆฌ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ค.
- ์ธ๋๋ฐ์ค ํ ์คํธ : ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฅ๊ธฐ๊ฐ ์คํํ๋ ํ ์คํธ๋ก, ์ง์์ ์ผ๋ก ๋ถํ๋ฅผ ๊ฐํ๊ฑฐ๋ ํน์ ๋ถํ๋ฅผ ์ ์งํ๋ ์๋๋ฆฌ์ค์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์์ ์ฑ์ ํ์ธํ๋ค. ์ด ํ ์คํธ๋ฅผ ํตํด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฅ๊ธฐ์ ์ธ ์์ ์ฑ, ๋ฉ๋ชจ๋ฆฌ ๋์, ์์ ๋์ ๋ฑ์ ๊ฒ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ธ๋๋ฐ์ค ํ ์คํธ๋ฅผ ํตํด ์ฅ์๊ฐ ์คํ ์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ฑ๋ฅ ์ ํ๋ ์์คํ ์ฅ์ ๋ฅผ ๊ฒฝํํ์ง ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ํ ์คํธ ๋ฆฌํฉํ ๋ง
์ค์ผ์ผ ์์
AWS ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ด์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐํ์ฌ ํธ๋ํฝใน์ ๊ท ํ์๊ฒ ๋ถ๋ฐฐ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ ์ ๊ณต
๋ถ์ฐ ์์คํ ์ํคํ ์ฒ
MSA๋ฅผ ๊ณ ๋ คํด ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ผ ์์ ๋ฐ ํ์ฅ์ฑ ์ ๊ณต
์บ์ฑ ํ์ฉ
๊ฒ์๋ฌผ ๋ชฉ๋ก, ์ฌ์ฉ์ ํ๋กํ, ์ด๋ฏธ์ง ๋ฑ ์์ฃผ ์ ๊ทผํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๋ค. ์ด ๋, Ehcache, Redis, ๋๋ ๊ธฐํ ์บ์ฑ ์๋ฃจ์ ์ ์ฌ์ฉํด ์ฑ๋ฅ ํฅ์
๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ
SPring์์ ๋น๋๊ธฐ ์๋น์ค ๋ฐ ๋ฉ์์ง์ ์ด์ฉํด ์์ฒญ๊ณผ ์๋ต์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌ ๋ฐ ๋ณ๋ชฉ ํ์์ ์ค์
์๊ณ ๋ฆฌ์ฆ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง ์ต์ ํ
๋น์ฆ๋์ค ๋ก์ง์์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ถ๋ถ์ ๊ฐ์ ํ๊ณ , ๋ถํ์ ์์ ์ ๋ฐ๋ณต ์ต์ํ
์๋
์๋์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ด๋ฒคํธ, ๊ฒฝ๊ณ , ์๋ฌ์ ์ํฉ์ ๊ฐ์งํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์๋ฆฌ๋ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค. ์ด๋ ๋ค์์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋๋ฐ์ ์ค์ํ ์ญํ ์ ์ํํ๋ค.
- ์ฅ์ ๊ฐ์ง์ ๋์
- ์๋น์ค ๊ฐ์ฉ์ฑ ์ ์ง
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
- ๋น์ฉ ์ ๊ฐ
- UX ํฅ์
AWS SNS ์ฐ๋
Amazon Simpel Notification Service๋ก AWS์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฉ์์ง ์๋น์ค์ด๋ค. ์ด๋ฅผ ํตํด ์๋น์ค, ์์คํ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์์ ํ๊ฒ ์ ์ก์ด ๊ฐ๋ฅํ๋ค. ์ฆ, ๋ค์์ ์ข ๋ฅ๋ค์ด ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ํธ์ ์๋
- ๋ค์ค ํ๋กํ ์ฝ ์ง์
- ์ด๋ฒคํธ๊ธฐ๋ฐ ์ํคํ ์ฒ
- ํ์ฅ์ฑ๊ณผ ์ ๋ขฐ์ฑ
- ๋ฏธ๋ฆฌ ์๋ฆผ ๋ฐ ๋ชจ๋ํฐ๋ง
๋๊ท๋ชจ ํธ๋ํฝ์ ๊ณ ๋ คํ ์ค๋ฌด ๊ฒ์ํ ํ๋ก์ ํธ์ ๋์๋ฝ์ด๋ค. ๊ฑฐ์ ๋ง์ง๋ง ์ฑํฐ์ธ 13์์ ํ๋ก์ ํธ๋ฅผ ์ ๋ฆฌํ๋๋ฐ ์ด๋ฒ์๋ ์์ธ์ฒ๋ฆฌ ๋ฐ ๋ก๊น ๊ด์ ์ ๋ฆฌ, ๋ชจ๋ํธ์ด ๋ฐ ์๋ ๊ด์ ์ ๋ฆฌ, ๋ฐฐํฌ ์๋ํ ์ ๋ฆฌ ๋ฑ์ ์ ๋ฆฌํด์ฃผ์๋ค. ์์์๊น์ง์ ๋ด์ฉ์ ์ ๋ฆฌํด์ฃผ๋๋ฐ ์ฌ์ค ์ง๊ธ๊น์ง ๋ด๊ฐ ์ ์ ๋ฆฌํ๋์ง ์ดํด๋ฅผ ์๋ฃํ์๋์ง ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ๋ค์ด ํด๋น ์ฑํฐ๋ค์ ์กด์ฌํ์๋ค. ๊ทธ๋ฌ๋ ํด๋น ๊ณผ์ ์์ ์ ๋ฆฌ๋์ง ์์ ๋ด์ฉ๋ค์ ์ ๋ฆฌํ๋ฉด์ ๋ด ๋จธ๋ฆฟ์์ ๊ฐ๋ ๋ค์ด ์ข ๋ ๊น๋ํด์ง๋ ๊ฒ ๊ฐ์๋ค. ํนํ, ํด, ๊ธฐ์ ๋ณ๋ก ๋ค์ํ๊ฒ ์ ๋ฆฌ๋ฅผ ํด์ฃผ๋๋ฐ ์ด๊ฒ์ด ๋๋ฌด ๋ง์์ ๋ค์๋ค. Docker, Github CI ๋ฑ๊ณผ ๊ฐ์ด ๊ธฐ์ ๋ค์ ๊ฐ๋จ ๋ช ๋ฃํ๊ฒ ์์ ์๋ฃ์ ๋ช ์ํด์ฃผ๊ณ ์ด๋ฅผ ๊ฐ์์์ ์ ๋ฆฌํด์ฃผ๋ ์ด๋งํผ ๊น๋ํ ๊ฒ์ด ์์๋ค.
๋๊ท๋ชจ ํธ๋ํฝ์ ๊ณ ๋ คํ ์ค๋ฌด ๊ฒ์ํ ํ๋ก์ ํธ์ ๋์๋ฝ์ด๋ค. ๋ง์ง๋ง ์ฑํฐ์ธ 13์์ ๊ทธ๋์์ ๊ณผ์ ๋ค์ ์ ๋ฆฌํ๋๋ฐ ๊ธ์ผ ์งํํ ์ฑํฐ์์๋ ์์ธ ์ฒ๋ฆฌ์ ๋ก๊น , ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ, ๋ฐฐํฌ ์๋ํ ๊ฐ์ ์ค๋ฌด์ ์ธ ๊ด์ ์ ์ค์ฌ์ผ๋ก ๊ฐ์๊ฐ ์งํ๋์๋ค. ๊ทธ๋์ ๋ฐฐ์ ๋ ๋ด์ฉ์ ์ฒด๊ณ์ ์ผ๋ก ๋ณต์ตํ๋ฉด์ ์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ ๋ค์ ์ ๋ฆฌํ ์ ์์๋ค. ์ฌ์ค ์ด์ ์ ํ์ตํ๋ ๋ด์ฉ ์ค ์ดํด๊ฐ ์๋ฒฝํ์ง ์๊ฑฐ๋ ์ ๋ฆฌ๊ฐ ๋ฏธํกํ๋ ๋ถ๋ถ๋ค์ด ์์๋๋ฐ, ์ด๋ฒ ์ฑํฐ์์ ์ด๋ฐ ๋ถ๋ถ๋ค์ ๋ณด์ํ๋ฉด์ ๊ฐ๋ ์ด ํ์คํ ์กํ๋ ๋๋์ ๋ฐ์๋ค.
ํนํ ์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ๊ณผ์ ์ ๋์๋ณด๋ฉด์ ๋ค์ํ ํด๊ณผ ๊ธฐ์ ์ ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์ด ์ข์๋ค. ์๋ฅผ ๋ค์ด Docker์ Github Actions๋ฅผ ํ์ฉํ CI/CD ๊ตฌํ ๊ณผ์ ์ ์ค๋ฌด์์ ๊ผญ ์์์ผ ํ ์ค์ํ ์ฃผ์ ์ธ๋ฐ, ๊ธฐ์ ์ ๊ธฐ๋ฅ์ ์ธ ๋ฉด๋ฟ๋ง ์๋๋ผ ์ค๋ฌด์ ์ธ ๋ฐฐ๊ฒฝ๊น์ง ํจ๊ป ์ค๋ช ํด ์ฃผ์ด ํ์ต ํจ๊ณผ๊ฐ ์ปธ๋ค. ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ์ ๋๋ก ์ ๋ฆฌํ์ง ๋ชปํ ๋ถ๋ถ์ ChatGPT๋ฅผ ํ์ฉํด์ ๋ฐ๋ก ์ ๋ฆฌํ๊ธฐ๋ ํ๋๋ฐ, ์ด๋ฅผ ํตํด ๋ถ์กฑํ๋ ๋ถ๋ถ๋ค์ ๋น ๋ฅด๊ฒ ์ฑ์ธ ์ ์์๋ค.
๊ฐ์ย ๋ง์ง๋ง์ย ์ ๊ณต๋ย ๋ถ๋ก,ย โ๊ฐ๋ฐ์๊ฐย ๋๋ย ๋ฐฉํฅ์ฑโ์ย ๋ํย ๋ด์ฉ์ย ํนํย ์ธ์ย ๊น์๋ค.ย ๋จ์ํย ๊ธฐ์ ์ย ๋ฐฐ์ฐ๋ย ๊ฒ์ย ๋์ด์,ย ๊ฐ๋ฐ์๋ก์ย ์ด๋คย ๋ฐฉํฅ์ผ๋กย ์ปค๋ฆฌ์ด๋ฅผย ์ค๊ณํด์ผย ํ๋์ง์ย ๋ํย ๊ตฌ์ฒด์ ์ธย ๊ฐ์ด๋๋ฅผย ์ ์ํดย ์คย ๋๋ถ์ย ์์ผ๋กย ์ด๋คย ๊ธธ์ย ๊ฑธ์ด๊ฐ์งย ๊ณ ๋ฏผํดย ๋ณผย ์ย ์์๋ค.ย
์์ ๊ณผ์ ๊ธฐ์ ์ ์ธ ๋ด์ฉ๋ค๊ณผ ๋ถ๋ก๋ค์๋ด๊ฐ ์ด์ํ ๊ธฐ์ ๋ธ๋ก๊ทธ์ ๋ฐฉํฅ์ฑ์ ์ํฅ์ ์ฃผ์๋ค. ๋จ์ํ ๊ธฐ์ ์ ๋์ดํ๋ ๋ฐฉ์์ด ์๋๋ผ ํ์ต ๊ณผ์ ์ ๊ธฐ๋กํ๊ณ , ์ฑ์ฅ์ ํ์ ์ ๋จ๊ธฐ๋ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์ด์ผ๊ฒ ๋ค๊ณ ๋ค์งํ๋ค.
์์ง ๋ถ๋ก์ ๊ฐ๋ฐ์ ํ์ด ์กฐ๊ธ ๋จ์์ง๋ง ์ด๋ฒ ํจ์คํธ์บ ํผ์ค ๋์ฉ๋ ํธ๋ํฝ ๊ฐ์ ์ฒซ๋ฒ์งธ ํ๋ก์ ํธ๋ ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด ์ค๋ฌด์ ์ธ ์คํฌ๊ณผ ๊ฐ๋ฐ์๋ก์์ ์ฑ์ฅ ๋ฐฉํฅ์ ๊น์ด ๊ณ ๋ฏผํ๊ฒ ๋ง๋ค์ด ์ค ๊ฐ์ง ์๊ฐ์ด์๋ค. ๋ด์ผ์ ๋จ์ ๋ถ๋ก๋ค์ ์ ๋ฆฌํด์ ์ฒดํ์ํค๊ณ ๋ค์ ํ๋ก์ ํธ๋ก ๋์ด๊ฐ ์ ์๋๋ก ํด์ผ๊ฒ ๋ค.
Redis
Remote DIctonary Server์ ์ค์๋ง๋ก In-memory database์ด๋ฉฐ Key ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ์ฅํ๋ค.
์ด๋ฌํ Redis๋ ๋ค์์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
- Cache
- Session Store
- Pub/Sub
- LeaderBOard
- ใ ๋๋ด์ค๋ฏธ
์ฃผ์ ๋ช ๋ น์ด
TTL
- EXPIRE key second
- TTL key
Queue
- LPUSH
- RPUSH
- LPOP
- RPOP
- LLEN
- LRANGE
Sorted Sets
- ZADD
- ZREM
- ZRANGE
- ZCARD
- ZRANK
- ZINCRY