-
Intellij IDE : JetBrains์์ ๊ฐ๋ฐํ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก, ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ์์๊ณผ ํ๋ถํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋๊ตฌ์ด๋ค. ์ฃผ๋ก Java๋ฅผ ์ด์ฉํ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ค. ํ์๋ Ultimate ๋ฒ์ ์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์์ด ํ์ํ ์ฌ๋์ Community ๋ฒ์ ์ ์ค์นํ๋ฉด ๋๊ฒ ๋ค.
-
MySQL DB : ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ผ๋ก ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ธ๊ธฐ ์๋ ์์คํ ์ด๋ค. ์ฃผ๋ก ์ ๋ขฐ์ฑ, ์ฑ๋ฅ, ์ ์ฐ์ฑ ๋ฐ ์ฌ์ฉ์ด ๊ฐํธํด ์์ฃผ ์ฌ์ฉํ๋ค.
-
Java : ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฒ์์๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ ์ธ์ด์์ผ๋ ์ต๊ทผ์๋ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉ๋๋ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
-
Spring : ์๋ฐ ๊ธฐ๋ฐ์ ์คํ์์ค ํ๋ ์์ํฌ๋ก, ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ๋ค์ํ ๊ธฐ๋ฅ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ๋ง๋ค๋ฉฐ, ๋ชจ๋, ์ ์ฐ์ฑ, ํ์ฅ์ฑ์ ํฅ์์ํจ๋ค.
Redis
Redis๋ Remote Dictionary Server์ ์ฝ์๋ก, ์ธ๋ฉ๋ชจ๋ฆฌ(In-memory) ๊ธฐ๋ฐ์ ๊ณ ์ฑ๋ฅ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์ฅ์์ด๋ค. ์ฃผ๋ก ์บ์ฑ, ์ธ์ ๊ด๋ฆฌ, ์ค์๊ฐ ๋ถ์ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ, ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น๊ด๊ณํ(NoSQL) ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)์ด๋ค.
๊ธฐ๋ณธ์ ์ธ flow
-
Redis ์ฐ๊ฒฐ ์ ๋ณด ์ฝ์
-
RedisTemplate์ ๋น์ผ๋ก ๋ฑ๋กํ์ฌ Redis์ ์ํธ์์ฉํ ์ ์๊ฒ ํ๋ค.
-
Spring Boot ์๋น์ค์ RedisTemplate์ ์ฃผ์ ํ์ฌ Redis๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
@Cacheable ๋ฉ์๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅํ์ฌ, ๋์ผ ์์ฒญ์ด ๋ค์ด์์ ๋ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋๋ก ํ๋ค.๏ปฟ
- ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ ์ ์บ์๋ฅผ ๋จผ์ ํ์ธํ๋ค.
- ์บ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๋ฉ์๋๋ฅผ ์คํํ์ง ์๊ณ ์บ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค.
- ์บ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๋ฉ์๋๋ฅผ ์คํํ ํ ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅํ๋ค.
@CacheEvict
๋ฉ์๋ ํธ์ถ ์ ํน์ ํค๋ ์ ์ฒด ์บ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ค.
- ๋ฉ์๋ ์คํ ์ ๋๋ ํ์ ์บ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ค.
- ๋ฐ์ดํฐ ์ฝ์ , ์์ , ์ญ์ ๋ฑ์ ์์ ํ ๊ธฐ์กด์ ์๋ชป๋ ์บ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉํ๋ค.