websocket(์น์์ผ) ์๋ฐฉํฅ ํต์ ์ ์ง์ํ๋ ๋คํธ์ํฌ ํต์ ํ๋กํ ์ฝ HTTP ๊ธฐ๋ฐ์ด ์๋ TCP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ์๋ฐฉํฅ ํต์ ์ ์ ๊ณต ๐ค ์ ์น์์ผ์ HTTP ๊ธฐ๋ฐ์ด ์๋ TCP ๊ธฐ๋ฐ์ด๋ผ๊ณ ํ ๊น?
Spring Boot์ JPA๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๊ณผ์ ์์, Shop ์ํฐํฐ์ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.๋ถ๋ช ์ค๋ฅ๋ ๋์ง ์๋๋ฐ, DB์ ์์ ๋ ๊ฐ์ฒด๋ก ์ ์ฅ๋์ง ์์๋ค ๋ฌธ์ ์ ์ฝ๋์ฌ๊ธฐ์ dong ์ํฐํฐ๋ฅผ ์ง์ update ๊ฐ์ฒด๋ก ๋๊ฒจ์ ๋
์ข์์ ๊ธฐ๋ฅ ๊ตฌํ ๋ณดํต ์ข์์ ๊ธฐ๋ฅ์ ์ข์์๋ฅผ ๋๋ฅด๋ฉด ์ข์์ ๊ฐ์๊ฐ +1 ์ด๋๊ณ ,
์ผํ๋ชฐ ์ฃผ์ ๋ก ํํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ธ๋ฐ ๊ทธ ์ค ์ํ ๋ฑ๋ก, ์ํ ์กฐํ,์ํ ์์ ์ ๋งก์๋ค ์ํ๋ฑ๋ก ์ค ์ํ ์ด๋ฏธ์ง๋ฅผ s3๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ์ํค๊ณ , DB์๋ s3 ๊ฐ์ฒด url์ ๋จ๊ฒจ์ ์ํ ์กฐํํ ๋๋ ์ด๋ฏธ์ง ๊ฐ์ฒด url์ ํ๋ก ํธ์ชฝ์ผ๋ก ๋๊ธฐ๊ธฐ๋ก ํ๋ค ์ฒ์
์ผํ๋ชฐ ์ฃผ์ ๋ก ํํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ธ๋ฐ ๊ทธ ์ค ์ํ ๋ฑ๋ก, ์ํ ์กฐํ,์ํ ์์ ์ ๋งก์๋ค ์ํ๋ฑ๋ก ์ค ์ํ ์ด๋ฏธ์ง๋ฅผ s3๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ์ํค๊ณ , DB์๋ s3 ๊ฐ์ฒด url์ ๋จ๊ฒจ์ ์ํ ์กฐํํ ๋๋ ์ด๋ฏธ์ง ๊ฐ์ฒด url์ ํ๋ก ํธ์ชฝ์ผ๋ก ๋๊ธฐ๊ธฐ๋ก ํ๋ค ์ฒ์
ํด๋์ค : ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค๊ณ๋ ๋๋ ์ฒญ์ฌ์ง์ด๋ผ๊ณ ํ ์ ์๋ค ์ฆ ์๋ฃํ ์ธก๋ฉด์์ ๋ณด๋ฉด ์๋ก์ด ์๋ฃํ์ ๋ง๋๋ ๋๊ตฌ์ด๋ค ํด๋์ค๋ ๊ฐ์ฒด์ ๊ตฌ์กฐ์ ๋์ ๋ฐฉ์์ ์ ์ํ๊ณ , ์ด๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ๋์ผํ ์์ฑ๊ณผ ํ๋์ ๊ฐ์ง๋๋ก ํ๋ค์์ ์์ ์ฒ๋ผ ๊ฐ์ฒด(Obje
"Java Virtual Machine(JVM)์ Java ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ๊ฐ์ ๋จธ์ JVM์ Java ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํด์ํ์ฌ ์คํํ๋ฉฐ, ์ด ๊ณผ์ ์ ํตํด Java ํ๋ก๊ทธ๋จ์ด ๋ค์ํ ํ๋ซํผ์์ ๋์ผํ๊ฒ ์คํ๋ ์ ์๋๋ก ํ๋ค. ๊ทธ๋์ OS์
Redis(๋ ๋์ค)๋ Remote Dictionary Server์ ์ฝ์๋ก, ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์๋ฒ์ด๋ฉฐ, ๊ณ ์ฑ๋ฅ์ ํค-๊ฐ ์ ์ฅ์๋ก์ ์ฃผ๋ก ์บ์ฑ, ์ธ์ ๊ด๋ฆฌ, ์ค์๊ฐ ๋ถ์ ๋ฑ์ ์ฌ์ฉ๋๋ค๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅธ ์๋ต ์๋Redis๋ ๋ฐ
Redis๋ ์ฃผ๋ก ํค-๊ฐ(Key-Value) ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ฌ์ฉ๋๋ NoSQL ์ ํ๊ณผ ๋น์ทํ๋ค > key : binary / text ex) "name","123","#!:()" ๊ถ์ฅ๋๋ ์ต๋ ๊ธธ์ด๋ 512MB > value : ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ
e-commerce ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉฐ ๋์์ ๋ค์์ ์ฃผ๋ฌธ์ด ๋ค์ด์ฌ๋ 100๊ฐ์ ๋ฌธ์ ์ ํ๋ก์ ํธ์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋์ธ ์ฌ๊ณ ๊ด๋ฆฌ ์์คํ ์์ ๋์์ ๋ค์์ ์ฃผ๋ฌธ์ด ๋ค์ด์ฌ ๋ ์ฌ๊ณ ๊ฐ ์ ํํ ๊ฐ์ํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์. ์ด๊ธฐ ํ ์คํธ์์ 100๊ฐ์ ์ฌ๊ณ ์ ๋ํด 100๊ฑด์