25-03-19
๐ Daily Reportโ
๐ ํ๋ก์ ํธ ์ํฉโ
์ํ๊น๊ฒ๋ ๋ด ์ฒด๋ ฅ์ด ์์ง์ ์ ๋ฐ๋ผ์ฃผ๋ ๊ฒ ๊ฐ๋ค.
๋ชจ๋ํฐ๋ฅผ ๋ชป ์ณ๋ค๋ณด๊ฒ ์ ์ ๋๋ก ํธ๋ํต์ ์๊ตฌ๊ฑด์กฐ์ฆ์ ๋ฌต์งํ ํผ๋ก์ ๋ญ์ง ๋ชจ๋ฅผ ๋ถ ๋ฌ ๋๋๊น์ง ๋ค์ด์ ๊ฑฐ์ ๋ ๊ฐ์์ฑ๋ก ๋ณ์์ ๊ฐ๋ค.
ํ ์คํธ๋ง ๋ณด๋ฉด ๋ญ๊ฐ ์์๋ด๋๊ฑฐ ๊ฐ์๋ฐ ์ ๊ฒ ๋ค ์ข ํฉ์ธํธ๋ก ์ค๋๊น ์ต์ง๋ก ๋ชจ๋ํฐ ๋ณด๋ฉด์ ์์ ํด๋ ํ 70%๋ ๋ฉ๋๋ฆด ๊ฒ ๊ฐ์ ์ ๋๋ก ํ๋ค์๋ค.
๊ทธ๋์ ์์ก 2์ข ๋ฅ ์์ด ๋ง๊ณ ์งํต์ ๋ ์ฒ๋ฐฉ๋ฐ์๋๋ฐ, ์ข ๋น์ผ๊ฒ ํ ์ด์ง๋ง ๊ธฐ์ ๊ฐ์ด ์ง์ฅ์์ ์ด์๋์๋ค; ์์งํ ๊ธฐ๋ ์ํ๋๋ฐ ๋ฌด์จ ๋ฏธ๋ ์๋ช ๋ก๊ฒจ์จ์ค ใ ใ ใ
์ํ๊ฐ ํธ์ ๋ผ์ ๋คํ์ด์ง๋ง ๋ด์ฌ ์ง์ฆ์ด ๋๋ค.
์๋ ์ ์ฒด๋ ฅ์ด ํ์กฐ๋ฅผ ์ํด์ฃผ์ง?
๋ด๊ฐ ์ผ๋ง๋ ์์นจ์๋ ๋ฎ์๋ ์ ๋ ์๋ ์๋ฒฝ์๋ ๊ฐ๋ฐํ๊ณ ์ถ์๋ฐ? ์ง๊ธ ํ ๊ฒ ์ผ๋ง๋ ๋ง์๋ฐ?
๐ ๋ฌด์๋ฏธํ synchronized
โ
์์ฝ ๋์์ฑ TDD๊ฐ ๋๋์ด ๋ง๋ฌด๋ฆฌ ๋์๋ค. ํ ์คํธ๋ 10000๋ช ์ ์ ์์ ๊ฐ์ง ์ํธ๋ฆฌ์ ๋ํ์ฌ 50000๊ฐ์ ๋์ ์์ฝ ์๋๋ฅผ ๊ฑธ์๋๋ฐ, ๊ฐ์ด ํฌ๋ค๋ณด๋ ํ๊ฒฝ ์ธํ ๋ ๋ค์ด๊ฐ์ ์๊ฐ๋ณด๋ค ๊น๋ค๋กญ๋๋ผ. ์ผ๋จ ๋ค์์ ์ค์ ๋ค์ด ํ์ํ๋ค.
- MySQL์ max-connections ๋๋ฆฌ๊ธฐ (-> ํด๋ผ์ด์ธํธ ์ ์ํด์ ์ค์ )
- JVM heap memory ๋๋ฆฌ๊ธฐ (-> gradle ํ์ผ์์ ์ค์ [๋ ํผ๋ฐ์ค])
- hikari max-pool ๋ฐ timeout ๋๋ฆฌ๊ธฐ (-> yml์์ ์ค์ )
ํ๋จ์ ๋ณ๋ค๋ฅธ ์ฒ๋ฆฌ ์์ด ์๋น์ค์ @Transactional๋ง ๋ถ์ธ ํ ์คํธ์ ๊ฒฐ๊ณผ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฑด ์๋น์ค์ synchronized
ํค์๋๋ฅผ ์ถ๊ฐํ ํ
์คํธ์ ๊ฒฐ๊ณผ์ด๋ค.
๊ฒฐ๊ณผ๊ฐ ๋ ์์ข์ ใ ใ ใ ใ ใ ใ
synchronized์ ๋ํ ๋ณด์์ฑ ๊ณผ ๊ทธ ๋ณด์์ฑ ์ ํ๊ณ์ ์ ์ฌ๊ธฐ์ ์ ์ค๋ช ํด์ฃผ์๋ค.