์น ์์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ARCUS Cache๋ฅผ ์ ์ฉํ์ ๋์ ์ฑ๋ฅ ๊ฐ์ ํจ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํ ์น ๊ฒ์ํ์ ๋๋ค.
- Branches
- main : MySQL DB๋ง์ ์ฌ์ฉํด์ ๊ตฌํํ ์น ๊ฒ์ํ
- cache_[name] : ARCUS Cache๋ฅผ ์ ์ฉํ์ฌ ๊ตฌํํ ์น ๊ฒ์ํ
๊ฒ์ํ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฒ์ํ ์กฐํ (๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ)
- ๊ฒ์๊ธ ์กฐํ, ์์ฑ, ์์ , ์ญ์ , ์ถ์ฒ ์ฆ๊ฐ, ํ์ด์ง
- ๋๊ธ ์กฐํ, ์์ฑ, ์์ , ์ญ์ , ํ์ด์ง
- ํ - ๋ฆฌ๋๋ณด๋
- ์ธ๊ธฐ ๊ฒ์ํ ๋ญํน ๋ฆฌ๋๋ณด๋ (๊ฐ ๊ฒ์ํ ๋ณ ๊ฒ์๊ธ ๋ฐ ๋๊ธ CRUD ์์ฒญ๋ ๊ณ์ฐ)
- ์กฐํ์/์ถ์ฒ์ ๋ง์ ๊ธ ๋ญํน ๋ฆฌ๋๋ณด๋
- ์ต๊ทผ ๊ณต์ง์ฌํญ ๋ฆฌ๋๋ณด๋
ํ๋ก์ ํธ ์คํ์ ์ํด properties ํ์ผ์ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค.
spring.datasource.url = jdbc:mysql://[IP:PORT]/[SCHEMA]?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&allowLoadLocalInfile=true
spring.datasource.username = USER_NAME
spring.datasource.password = PASSWORD[IP:PORT] - ip : database ์ฐ๊ฒฐ ์ฃผ์, port : ํฌํธ ๋ฒํธ
[SCHEMA] - ์ฌ์ฉํ database schema์ ์ด๋ฆ
USER_NAME - MySQL ์ ์ ๊ณ์ ์ด๋ฆ
PASSWORD - MySQL ๋น๋ฐ๋ฒํธ
์์ ๋ถ๋ถ์ ํด๋นํ๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ฌ ๊ฐ์ ์ค์ ํด์ค๋๋ค.
arcus.address = ADDRESS
arcus.serviceCode = SERVICE_CODE
arcus.poolSize = POOL_SIZEADDRESS - arcus admin address
SERVICE_CODE - arcus service code
POOL_SIZE - arcus client pool size
ARCUS ์บ์ ์ ์ฉ ์์๋ง ์ค์ ํ๋ properties ํ์ผ์ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์์ ๋ถ๋ถ์ ํด๋นํ๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ฌ ๊ฐ์ ์ค์ ํด์ค๋๋ค.
๋จผ์ , DB์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- data csv ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์์ฉ ์๋ฒ์ ๊ฐ์ ์์น์ ์ ์ฅํฉ๋๋ค.
- resetTestData.sql ์
[csv file path]๋ถ๋ถ์ ์ ์ฅํ csv ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ด ๋ณ๊ฒฝํฉ๋๋ค.
LOAD DATA LOCAL INFILE '[csv file path]' INTO TABLE ...
- ํ
์คํธ ์์ ์ , ์น ์์ฉ ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ณ
/test/reseturl์ ์คํํ์ฌ DB์ ์ด๊ธฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ํญ์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ ์คํธ๋ฅผ ์งํํด์ผ ํ๊ธฐ๋๋ฌธ์, ์ด ๊ณผ์ ์ ๋งค๋ฒ ํ ์คํธ ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ์ฌ์ผ ํฉ๋๋ค.
์ฑ๋ฅํ ์คํธ์ Client ๋ถํ๋ JMeter๋ฅผ ์ด์ฉํฉ๋๋ค. Client์์ JMeter Test Plan ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์คํํฉ๋๋ค.
- ํ ์กฐํ
- ๊ฒ์ํ ์กฐํ (๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ)
- ๊ฒ์๊ธ ์กฐํ
์์ 3๊ฐ์ง ์กฐํ ์์ฒญ์ ๋ํ TPS, Response Time๋ฅผ ํ์ธํ์ฌ ์ฑ๋ฅ์ ์ธก์ ํฉ๋๋ค.