๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ ์๋์ ์ฉ๋์ ๋ฐ๋น๋ก
- ๋น ๋ฅผ์๋ก ๊ฐ๊ฒฉ์ด ์ฌ๋ผ๊ฐ๋ค.
- ์ฉ๋์ด ํฐ ์ ์ฅ์ฅ์น๋ ์๋๊ฐ ๋๋ฆผ
- ๋ ๋ค ์ก๊ธฐ์ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ฆ
ํ๋ ํ ์ ๋ฒ์น
- ์์ธ ์ค ์์ 20%๊ฐ ์ ์ฒด ๊ฒฐ๊ณผ์ 80%๋ฅผ ๋ง๋ ๋ค.
- ๋ง์ด ์ฐ๋ 20%๊ฐ 80%์ ํจ์จ์ ์ฐจ์งํ๋ค.
๋ฐ์ดํฐ ์ง์ญ์ฑ์ ์๋ฆฌ
- ์์ฃผ ์ฐ๋ ๋ฐ์ดํฐ๋ ์๊ฐ์ ํน์ ๊ณต๊ฐ์ ์ผ๋ก ํ ๊ณณ์ ๋ชฐ๋ ค์์ ๊ฐ๋ฅ์ฑ์ด ๋์
- ์๊ฐ ์ง์ญ์ฑ
- for๋ฌธ์ ์กฐ๊ฑด ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ํด๋น ๋ณ์๋ for๋ฌธ์ด ๋๋๊ธฐ ์ ๊น์ง ๊ณ์ ์ฐ์ผ ํ๋ฅ ์ด ๋์
- ๊ณต๊ฐ ์ง์ญ์ฑ
- for๋ฌธ์์ ์ด๋ค ๋ฐฐ์ด์ ์ ๊ทผํ์ ๋ ํด๋น ๋ฐฐ์ด์ด ์์นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ด์ฉ์ for๋ฌธ์ด ๋๋๊ธฐ ์ ๊น์ง ๊ณ์ ์ฐ์ผ ํ๋ฅ ์ด ๋์
- ์์ฐจ ์ง์ญ์ฑ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ(arr[0], arr[1] ๋ค์์๋ arr[3]์ ์ ๊ทผํ ํ๋ฅ ์ด ๋์ ๊ฒ์ ๋ฐ๋ก ๋ถ๋ฅํ๊ธฐ๋ ํจ)
- ex) ์ฐฝ๊ณ ์ ๋ชจ๋ ์ข ์ด๋ฅผ ํ๋ฒ์ ๋ฏธ๋ฆฌ ์ฑ ์์๋ก ๊ฐ์ ธ์ค๋ฉด ํจ์จ์ด ์ข๋ค.
Cache
- ๋์ค์ ํ์ํ ์ ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ฅํ๋ค๊ฐ ์ ์ํ๊ฒ ํ์ํ ์ ์๋ ๋ณด๊ด
- ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค.
- ๋ฎ์ ์๊ฐ ๋ณต์ก๋๋ก ์ ๊ทผ ๊ฐ๋ฅํ ๊ณณ์ ์ฃผ๋ก ์ ์ฅํ๋ค.
- ex) ์๋ฐ์ HashMap
- ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์๊ฑฐ๋ ์ต์ ์ฑ์ ์์ ๊ฒฝ์ฐ ๊ทธ๋์์ผ ์๋ณธ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ณณ์ ์ ๊ทผํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ์ต์ ์ฑ์ ์์๋ค๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ํด์ฃผ๋ ๊ฒ
- ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์บ์์์ ๋ฐ๋ก ํด๋น ๋ฐ์ด์ฒ๋ฅผ ์ ๊ณตํ๋ค. (Cache Hit)
- ์บ์ ๊ณต๊ฐ์ ์์ผ๋ ์์ฐ๋ ๋ฐ์ดํฐ๋ถํฐ ์ญ์ ํ๋ค.
Example
CPU
- 1์ด์ ์ต๊ณ ์์ญ์ต๋ฒ ์๋ ๊ฐ๋ฅ
- ์๋ฌด๋ฆฌ ๋น ๋ฅธ ์ฃผ๊ธฐ์ต์ฅ์น๋ผ๋ CPU๋ฅผ ๋ฐ๋ผ๊ฐ๊ธฐ ์ด๋ ค์
- ๊ทธ๋์ SRAM์ด๋ผ๋ ํน์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ CPU์ ๋ฃ์ด ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฌ์ฉ
ํ๋ ๋์คํฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ๋๋์คํฌ๋ ์ฃผ๊ธฐ์ต์ฅ์น์ ๋นํด 10๋ง๋ฐฐ ๋๋ฆผ
- ์ฒ๋ฆฌ ํจ์จ์ ์ฌ๋ฆฌ๋ ค๋ฉด ์์ฃผ ์ฐ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๊ฒ์ด ์ข๋ค.
- JPA์ ์์์ฑ ์ปจํ ์คํธ
Youtube
- ๋ฏธ๊ตญ์ ์๋ฒ๊ฐ ์์ผ๋ Google Global Cache๋ฅผ ๋์ด ์ธ๊ธฐ ๋์์ฌ๋ ๊ตญ๋ด ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๋๋ก ํจ
- ์ด์ฒ๋ผ ์ธ๊ณ ๊ฐ์ง์ ์บ์ ์๋ฒ๋ฅผ ๋๋ ๊ฒ์ด CDN
์น ์บ์
- ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ํ๋ ๋์คํฌ๋ณด๋ค ๋๋ฆด ๋๋ ๋ง๋ค.
- ์น ๋ธ๋ผ์ฐ์ ์์๋ ์ ์ ํ์ผ์ ํ๋๋์คํฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํด๋๋ค๊ฐ ๋ค์๋ฒ์ ์ด๋ฅผ ์ฌํ์ฉํ๋ค.
- ๋์ ํ์ด์ง ๊ฒฝ์ฐ ๋งค๋ฒ ๋ด์ฉ์ด ๋ฐ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง์ผ๋ฏ๋ก ์๋ฒ์์ ์์ฑํ HTML์ ์บ์ฑํ๋ค.
- ํด๋ผ์ด์ธํธ์์ ์์ฃผ ์์ฒญํ๋ ๋ด์ฉ์ ์น ์๋ฒ๋ก ์ ๋ฌํ์ง ์๊ณ ์น ์๋ฒ ์๋จ ํ๋ก์ ์๋ฒ์์ ์บ์ฑํด๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ ๊ณตํ๋ค. (ํ๋ก์ ์บ์)
๋ธ๋ผ์ฐ์ ์บ์
- ์น ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ HTTP ํค๋์ ์บ์ ์ง์์ฌ๋ฅผ ์ฝ์ ํด ๋ธ๋ผ์ฐ์ ์์ ์ด์ ๋ฐ๋ฅธ ์บ์ฑ ์ ์ฑ ์ ์ค์ํ๋ค.
- ์บ์ ์ ํจ์๊ฐ (max-age)๊ฐ ์ง๋๋ ์บ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ง ์์ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๊ธฐ ์ํด ETag๋ผ๋ ์ ํจ์ฑ ๊ฒ์ฌ ํ ํฐ์ ์ฌ์ฉํ๋ค.
- ์บ์ฑ ์ ์ฑ
์ ์นํ์ด์ง ์ ๋ฐ์ ์ํฉ์ ๋ฐ๋ผ ๊ฐ ํ์ผ๋ง๋ค ๋ค๋ฅด๊ฒ ์ ์ฉ๋์ผ ํจ
- ์ ์ ํ์ผ๊ณผ ๋์ ๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์บ์ฑ ์ ์ฑ ์ ๋ฌ๋ผ์ผํจ
Redis(Remote Dictionary Server)
- ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ NoSQL DBMS์ ์ผ์ข ์ผ๋ก ์น ์๋น์ค์์ ์บ์ฑ์ ์ํด ๋ง์ด ์
- Dictionary Server๋ ์๋ฐ์ HashMap๊ณผ ์ ์ฌํ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ
- ์ฌ๋ถํ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ๋ฐ๋์ง ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ํ๋๋์คํฌ์ ๊ธฐ๋กํ ์ ์์
- DBMS ์ผ์ข ์ด๋ฏ๋ก ๋ช ์์ ์ญ์ ํ์ง ์๋ ํ ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์ ํ์ง ์์
EHcache
- ์๋ฐ ํ์ค ์บ์ฑ API ๋ช ์ธ์ธ JSR-107์ ๋ฐ๋ฅด๋ ์คํ์์ค ์บ์ ๊ตฌํ์ฒด
- Spring ํ๋ ์์ํฌ๋ Hibernate ORM ๋ฑ์์ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ์บ์ ์ ์ฅ ๊ณต๊ฐ์ ์๋์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ฑ๊ธ์ผ๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ ์ ์ฉ ๊ฐ๋ฅ
- ํ๋๋์คํฌ์ ๊ธฐ๋ก ๊ฐ๋ฅ