์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- hikari cp ์ค์
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- ์๋ฐ
- effectiveJava
- mysql์ํคํ ์ฒ
- InnoDB์ํคํ ์ฒ
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- Hikari Connection Pool
- index skip scan
- index full scan
- ์ดํํฐ๋ธ์๋ฐ
- SVN
- mysql
- Item6
- ์ธ๋ฑ์คํ์ค์บ
- item15
- ์์
- ์ธ๋ฑ์ค์คํต์ค์บ
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- ๋น์ผ๊ฐ์ฒด์์ฑ
- builder null
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์๋ฐ์์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- ์๋ฐ์ฐ๋ ๋
- assert.notnull
- ์์ดํ 15
- Today
- Total
๋ชฉ๋กํ๋ก์ ํธ/Heeverse (4)
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cTuO5E/btsARVDz2Va/mnjwD6eXY8MMfbdLw4SSK0/img.png)
vuser 200์ผ๋ก 5๋ถ๊ฐ ์ฑ๋ฅํ ์คํธ ์ 25๋ฒ์ HikariPool-1 - Connection is not available, request timed out after 30000ms. SQLTransientConnectionException์ ๋ง์ฃผํ์ต๋๋ค. ์ Exception์ด ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์์๋ด ์๋ค. ์ด ๊ธ์ ์๋ ๋ชฉ์ฐจ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. Hikari Connection Pool ๋์ ๋ฐฉ์ Hikari CP Connection ํ๋ ๊ณผ์ Hikari CP Connection ๋ฐ๋ฉ ๊ณผ์ ๋ฌธ์ ์์ธ ๋ถ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์์ธ ๋ถ์ ์ ์ Hikari Connection pool ํ๋ ๋ฐ ๋ฐํ ๊ณผ์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. Hikari Connection Pool ๋์ ๋ฐฉ์ ์์์ Hi..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bBtRgo/btszhtUamP6/ucRvk3gk4KadQ1SZqQzjr0/img.png)
์ฑ๋ฅ ํ ์คํธ ์ vuser ์๊ณ์น๋ฅผ ์ค์ ํ๊ณ , Scouter๋ฅผ ํตํ ๋ณ๋ชฉ๊ตฌ๊ฐ ๋ถ์ํ์ฌ TPS๋ฅผ ๊ฐ์ ํ ๊ฒฝํ์ ๊ณต์ ํฉ๋๋ค. Scouter์ XLog ๋ถ์ํ๊ธฐ Scouter์ xLog๋ฅผ ๋๋๊ทธํ๋ฉด ๊ฐ ์๋ต๋ง๋ค ์๋์ ๊ฐ์ ํญ๋ชฉ๋ค์ ๋ณผ ์ ์์ต๋๋ค. Elasped Time CPU SQL Count SQL Time API Count API Time ์์ ํญ๋ชฉ ์ค ์๋ต์๋ ๊ธฐ์ค(Elasped Time)์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฐ ์ ์ผ ์ค๋ ๊ฑธ๋ฆฐ ๊ตฌ๊ฐ์ ํ์ธํ์ต๋๋ค. ๋์ ๋๋ ๊ตฌ๊ฐ์ ๋ ๊ตฌ๊ฐ์ด ์์์ต๋๋ค. (1) ๊ตฌ๊ฐ - Ngrinder์ RampUp ์ค์ ์ผ๋ก ์ธํ ์ด๊ธฐ ์๋ต์๋ ์ง์ฐ๊ตฌ๊ฐ์ผ๋ก ์ถ์ธกํ์ต๋๋ค. (2) ๊ตฌ๊ฐ - API Time์ด ์ฌ๋ผ๊ฐ์ฌ ์์ธ ํธ์ถ ๋ฉ์๋๋ฅผ ํ์ธํ์์ต๋๋ค. ํด๋น ๋ฉ์๋๋ ngrinder ํ ์คํธ A..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/OG8ud/btszfMAgeiV/Y2pKxUxpGFKEkwMSJGDSWK/img.png)
์ฑ๋ฅํ ์คํธ ์ค๋นํญ๋ชฉ๋ค์ ๊ณต์ ํฉ๋๋ค. ํ๋ ์ง์ ๊ณผ ๊ณ ์ ๋ณ์๋ฅผ ์ง์ ํ์ฌ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์งํํ์์ต๋๋ค. ์ฑ๋ฅ ํ ์คํธ ์ ๊ทผ ๋ฐฉ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ์ ๋ ์ ์ฒด ์๋ต ์๊ฐ์์ ์ฐจ์งํ๋ ๋น์ค์ ๋ถ์ํ์ฌ ๊ฐ์ฅ ์ํฅ๋๊ฐ ๋์ ๋ถ๋ถ๋ถํฐ ์ง์ค ๋ถ์ ๋์์ผ๋ก ์ ํํ์ต๋๋ค. ์์คํ ์ค์ ์์์ ์ฌ์ฉ๋ ํ์ธ, ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์์ ์์ ์ฌ์ฉ๋ ๋ฐ ์๋ต ์๊ฐ, ์ ๊ด ์๋ฒ์์ ํต์ , ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ฑ๋ฅ ๋น์ค๋ฑ์ ๋ถ์์ํ์์ต๋๋ค. ์ฑ๋ฅ ํ ์คํธ ๋จ๊ณ ์๋ 5๋จ๊ณ๋ก ๊ตฌ์ฑํ์์ผ๋ฉฐ, ์ฒซ ํ ์คํธ ์ดํ์๋ ์๋๋ฆฌ์ค ๊ตฌ์ฑ์ ์ ์ธํ 4๋จ๊ณ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ฑ๋ฅํ ์คํธ ์๋๋ฆฌ์ค ๊ตฌ์ ์์คํ ์ ์ด๋ ๋ถ๋ถ์ ์ด๋ป๊ฒ ๋ถํ๋ฅผ ์ค๊ฒ์ธ์ง ๊ฒฐ์ ๋ถํ ์ํฉ์์ ์์คํ ์ ๋์ ์์ธก ํ์ํ ๋ฐ์ดํฐ ์ค๋น ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ ์๋ฒ ์, ์๋ฒ ์คํ ๊ฒฐ์ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cPB3dG/btsovrGYBEo/PYMgjKj15yfPXnef8gxjE0/img.png)
๋ฌธ์ ์ํฉ member ๊ฐ์ฒด ์์ฑ ์ ํธํ ๋ฐฉ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด lombok์ @Builder์ ์ฌ์ฉํ์๋ค. member ํด๋์ค์ ํ์ํ ํ๋๋ฅผ ๋์์ผ๋ก ์์ฑ์ ์์ฑ ํ @Builder์ ๋ถ์ฌ builder ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฒ ํ์๋ค. @Builder public Member(String id, String password, String userName, String email) { this.id = id; this.password = password; this.userName = userName; this.email = email; } ํ์ง๋ง ํ๋์ null์ด ๋ค์ด์์ ๊ฒฝ์ฐ๊ฐ ๊ณ ๋ ค๋์ง ์์๋ค. @Builder์ ์ํด ์ปดํ์ผ ์ ์์ฑ๋ ์ด๋ ธํ ์ด์ ํ๋ก์ธ์ฑ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด ๋ณด์ public static ..