Server๐งค/QueryDsl
Offset Offset์ ๋ฌธ์ ์ ์) offset์ด 50000, limit 20 20์ offset๊ฐ ์๋ค๋ฉด, 50020 rows๋ฅผ ์์ฒญํด์ค๊ณ , ๋๋จธ์ง 50000๊ฐ์ row๋ฅผ ๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ๋๋ฆฐ offset ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ Offset์ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ Offset์ ์ฌ์ฉํ์ง ์๊ณ , Unique ํ ๊ฐ์ bookmark ์ฒ๋ผ ์ฌ์ฉํ์ฌ, ๋ง์ง๋ง์ fetch ๋ค์ row๋ก ์์ํ ์ ์๋๋ก where clause๋ก ์ ์ ์ ์๋ค. ์์๊ฐ ํ์ด์ง ๊ฐ์ ํญ์ ๋์ผํ๊ฒ ์ ์ง๋๋๋ก, ๊ณ ์ ํ ์ด์ ๊ธฐ์ค์ผ๋ก ์์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. https://www.eversql.com/faster-pagination-in-mysql-why-order-by-with-limit-and-offset-is-slow/
Server๐งค/JPA
์ํฉ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์, ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ฃ์ด์ผํ๋ ์ํฉ์ด ์๊ฒผ๋ค. History์ ์๋ ์ ์ ์ ๋ณด๋ฅผ ํ๋์ ๋ณด์ ํด๋น id๋ฅผ ๊ฐ์ง ์ ์ ์๊ฒ ํ๊บผ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์
์ด์๋ค. ์ฒ์์ ์์ฑํ ์ฟผ๋ฆฌ๋ forEach๋ฌธ์ผ๋ก ๊ฐ๊ฐ save๋ฅผ ๋๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด์๋ค. ํด๋น ์์
์ ์ฝ๋๋ฆฌ๋ทฐ๋ก save์ saveAll ์ ๋ํ ๊ฒ์ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋ค. ์ด๋ฒ๊ธฐํ์ ํด๋น ์ฟผ๋ฆฌ๋ค์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์๋ณด๋ ค๊ณ ํ๋ค. ์ฒ์์ ์์ฑํ save() ๋ฉ์๋์ด๋ค. memberHistories.forEach(memberHistory -> memberActivityRepository.save( memberActivityRepository.save( MemberActivity.builder() .memb..
Server๐งค/QueryDsl
๋ฌธ์ ์ํฉ 1000๋ช
์ ๋ ๋๋ ์ ์ ์ ๋ฉค๋ฒ ๋ฆฌ์คํธ ์กฐํํ๋ ๊ณผ์ ์์ ์ฟผ๋ฆฌ๊ฐ ์ด 2๋ฒ ๋๊ฐ์ผํ๋ ์ํฉ์ด ๋ฐ์ํ์ด์. 1. ๋ฉค๋ฒ ์ ๋ณด๋ฅผ ์ ์ฒด ์กฐํํ๋ ์ฟผ๋ฆฌ + ํํฐ๋ง ํฌํจ 2. ํํฐ๋ง์ ํฌํจ๋๋ ๋ฉค๋ฒ๋ฅผ countํ๋ ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๊ฐ ๋์ด๋จ์ ๋ฐ๋ผ์, ์ฟผ๋ฆฌ ์๋๊ฐ ๋์ด๋๋ ๊ฒ์ ๋ถ๋ด์ ๋๋ผ๊ฒ ๋์ด์ jMeter๋ก ๊ฒ์ ์๋ ํ
์คํธ๋ฅผ ์งํํ๊ธฐ๋ก ํ์์ต๋๋ค. jMeter ์ฌ์ฉ๋ฐฉ๋ฒ ๋ค์ด https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must ver..
Server๐งค/Spring
Servlet Filter์ ํ์์ฑ - ์๋น์ค ๋ก์ง์ ๋ก๊ทธ์ธ ํ์ธ ์ฌ๋ถ ์ฝ๋๊ฐ ๋ค์ด๊ฐ! - ์ค๋ณต๋๋ ์ฝ๋๋ค public void addCart(final Long productId, final String token) { final boolean isValid = jwtTokenProvider.valdiateToken(token); if(!isValid) { throw new UnauthroizedTokenException(); } final String email = jwtTokenProvider.getPayload(token); --- ์๋น์ค ๋ก์ง--- } public List getCart(final String token) { final boolean isValid = jwtTokenProvide..