Server๐Ÿงค

Server๐Ÿงค/QueryDsl

[QueryDsl] ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ฒ˜๋ฆฌ (Offset based, Cursor based)

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

[SpringDataJPA] save(), saveAll() ์ฐจ์ด

์ƒํ™ฉ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ฒผ๋‹ค. History์— ์žˆ๋Š” ์œ ์ € ์ •๋ณด๋ฅผ ํ™œ๋™์ •๋ณด์— ํ•ด๋‹น id๋ฅผ ๊ฐ€์ง„ ์œ ์ €์—๊ฒŒ ํ•œ๊บผ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž‘์—…์ด์˜€๋‹ค. ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ์ฟผ๋ฆฌ๋Š” forEach๋ฌธ์œผ๋กœ ๊ฐ๊ฐ save๋ฅผ ๋Œ๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด์˜€๋‹ค. ํ•ด๋‹น ์ž‘์—…์˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋กœ save์™€ saveAll ์— ๋Œ€ํ•œ ๊ฒƒ์„ ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค. ์ด๋ฒˆ๊ธฐํšŒ์— ํ•ด๋‹น ์ฟผ๋ฆฌ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ save() ๋ฉ”์†Œ๋“œ์ด๋‹ค. memberHistories.forEach(memberHistory -> memberActivityRepository.save( memberActivityRepository.save( MemberActivity.builder() .memb..

Server๐Ÿงค/QueryDsl

[Querydsl] Jmeter๋ฅผ์ด์šฉํ•œ ์†๋„ ํ…Œ์ŠคํŠธ / Entity ์กฐํšŒ์™€ id ์กฐํšŒ ์„ฑ๋Šฅ ์ฐจ์ด

๋ฌธ์ œ ์ƒํ™ฉ 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, Spring Interceptor

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..

yujindonut
'Server๐Ÿงค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (5 Page)