๐ JSON ํฌ๋งท์ผ๋ก ์ง๋ ฌํ
{
"id": 1,
"name": "FutureMan"
}
- ๐น ์ฅ์
์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ (๋ฐ์ดํฐ ๊ฐ์์ฑ โ)
Redis ํด๋ผ์ด์ธํธ์์ ๊ฐ ํ์ธ ๊ฐ๋ฅ
๋ค์ํ ์ธ์ด ๊ฐ ํธํ์ฑ ์ข์ (Node.js, Python ๋ฑ์์๋ ํ์ฑ ๊ฐ๋ฅ)
DTO, Map, List ๋ฑ ๋ค์ํ ๊ตฌ์กฐ ์ง๋ ฌํ ์ฉ์ด
- ๐น ๋จ์
ํ๋ ์ด๋ฆ๊น์ง ์ ์ฅํ๋ฏ๋ก ์ฉ๋ ์ฝ๊ฐ ํผ
Jackson์ด ์ธ์ํ ์ ์๋ ํด๋์ค์ฌ์ผ ํจ (๊ธฐ๋ณธ ์์ฑ์ ๋ฑ ํ์)
@Cacheable(cacheNames = "UserList", key = "'all'")
public List<UserDto> getAllUsers() {
return userRepository.findAll();
}
ํ๋ก ํธ์์ JSON์ผ๋ก ๊ฐ์ ธ๋ค ์จ์ผ ํจ
API ์บ์๊ฐ Redis์ ์ ์ฅ๋จ
โ JSON ์ง๋ ฌํ๊ฐ ๊ฐ๋ ์ฑ๊ณผ ์ฐ๋์ฑ ์ธก๋ฉด์์ ์ต์
์: ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ Redis์์ ์ด ์บ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ์
โ Jackson ๊ธฐ๋ฐ JSON ์ง๋ ฌํ ํ์
Redis CLI๋ RedisInsight์์ ๋ฐ์ดํฐ ๋ด์ฉ ๋ฐ๋ก ๋ณด๊ณ ์ถ์ ๋
โ JSON ํ์์ด๋ฉด ์ฌ๋์ด ์ฝ์ ์ ์์ด ๋ฌธ์ ํ์ ์ฌ์
๐ Java์ ๊ธฐ๋ณธ ์ง๋ ฌํ ๋ฐฉ์ (Serializable ๊ธฐ๋ฐ)
xacEDx0005sr00... (๋ฐ์ด๋๋ฆฌ ํํ)
๐น ์ฅ์
์์ Java ๊ฐ์ฒด๋ง์ ์ํ ์์ ํ ์ง๋ ฌํ
ํด๋์ค ๊ณ์ธต์ด๋ ๋ณต์กํ ๋ด๋ถ ์ํ๊น์ง ๋ชจ๋ ์ ์ฅ ๊ฐ๋ฅ
๐น ๋จ์
์ฌ๋์ด ๋ณผ ์ ์์ (๋ฐ์ด๋๋ฆฌ ํํ)
Java์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ (ํ ์ธ์ด ํธํ ๋ถ๊ฐ)
์ฑ๋ฅ ๋๋ฆฌ๊ณ , Redis์์ ๋๋ฒ๊น ๋ถํธ
ํด๋์ค ๋ณ๊ฒฝ ์ ์ญ์ง๋ ฌํ ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ (๋ฒ์ ๋ฌธ์ )
@Cacheable(cacheNames = "AuthToken", key = "#userId")
public SessionToken generateToken(Long userId) {
return sessionTokenService.issue(userId);
}
์ด SessionToken์ Redis์ ์ ์ฅ๋์ง๋ง ์ ๋ ์ธ๋ถ ๋ ธ์ถ ์ ๋จ
์ฝ๋ ์ชฝ๋ ์ค์ง Java์์๋ง ์กด์ฌ
โ ๊ณ ์, ์์ ํ ์ ์ฅ์ด ์ฐ์ ์ด๋ผ๋ฉด JDK ์ง๋ ฌํ ์ ํฉ
JSON ์ง๋ ฌํํ๋ฉด ํ๋๋ช , ๊ฐ ์ ๋ถ ๋๋ฌ๋จ
JDK ์ง๋ ฌํํ๋ฉด ๋ฐ์ด๋๋ฆฌ ํํ๋ผ ์จ๊ธธ ์ ์์
(๋จ, ๋ณด์์ฑ ์์ฒด๊ฐ ๊ฐํด์ง๋ ๊ฑด ์๋)
์ํ ์ฐธ์กฐ (A โ B โ A)
๋นํ์ค getter/setter
Jackson์ด ์ ๋ชป ์ง๋ ฌํํ๋ ๊ตฌ์กฐ
โ JDK ์ง๋ ฌํ๋ ๊ทธ๋๋ก ์ง๋ ฌํํ๋ฏ๋ก ์์ ์ฑโ
| ์ฌ์ฉ ์ํฉ | ์ง๋ ฌํ ๋ฐฉ์ | ์ด์ |
|---|---|---|
ํ๋ก ํธ ์บ์ฑ (e.g. /products, /posts) | GenericJackson2Json | JSON์ผ๋ก ๊ทธ๋๋ก ์๋ต ๋ณด๋ผ ์ ์์ |
| ๊ด๋ฆฌ์ ๋์๋ณด๋ ์บ์ | GenericJackson2Json | RedisInsight๋ก ๋ด์ฉ ํ์ธ ์ฌ์ |
| ์ฌ์ฉ์ ์ธ์ ์ ๋ณด ์ ์ฅ | JdkSerialization | ์ธ๋ถ ๋ ธ์ถ ์์, Java์์๋ง ์ |
| ๋ด๋ถ ์ ์ฉ ์ธ์ฆ ํ ํฐ, ์ ํ ์ ๋ณด | JdkSerialization | ์ธ๋ถ์์ ์ธ ์ผ ์๊ณ ์ฑ๋ฅ ์ค์ฌ |
| ์ธ๋ถ ์ฐ๋ ๋ง์ดํฌ๋ก์๋น์ค (Kafka + Redis + Node.js) | GenericJackson2Json | ์ธ์ด ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ํ์ํจ |
| ํ๋จ ๊ธฐ์ค | ์ถ์ฒ ์ง๋ ฌํ ๋ฐฉ์ |
|---|---|
| ์ธ๋ถ์ ์ฐ๋ํ๊ฑฐ๋, ๊ฐ์์ฑ์ด ํ์ํจ | โ
GenericJackson2JsonRedisSerializer |
| ๋ด๋ถ Java ์์คํ ์์๋ง ์ฐ๊ณ ๋น ๋ฅธ ์ฒ๋ฆฌ ์ํจ | โ
JdkSerializationRedisSerializer |
| Redis ๋ด์ฉ ๋๋ฒ๊น ์์ฃผ ํจ | โ JSON |
| Jackson์ด ์ง๋ ฌํ ๋ชปํ๋ ๋ณต์ก ๊ฐ์ฒด | โ JDK |