[๐Ÿ”ฅTroubleShooting - MoodBuddy๐Ÿ”ฅ] ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ 2๋ฒˆ -> 1๋ฒˆ, ์–ผ๋งˆ๋‚˜ ๋‹ฌ๋ผ์ง„๋‹ค๊ณ ?!

._mungยท2025๋…„ 3์›” 13์ผ
0

MoodBuddy

๋ชฉ๋ก ๋ณด๊ธฐ
5/8

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

ํŒ€์› : PM(1) / Design(1) / Frontend(2) / Backend(3)
๊ธฐ๊ฐ„ : 2024.03 ~ 2025.03
๋งํฌ : https://github.com/M-ung/MoodBuddy_Server
์„œ๋น„์Šค ๋‚ด์šฉ : ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ผ๊ธฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ์ • ๋ถ„์„ํ•˜๋Š” ์›น ์„œ๋น„์Šค
์†Œํ†ต : GitHub, Slack, Notion, Discord


๐Ÿ”ฅTroubleShooting๐Ÿ”ฅ

Problems

์šฐ๋ฆฌ ๋ฌด๋“œ๋ฒ„๋”” ์„œ๋น„์Šค์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ์กฐํšŒ ์ฒ˜๋ฆฌ๋Š” ํŽ˜์ด์ง•์„ ํ™œ์šฉํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ํŽ˜์ด์ง• ์กฐํšŒ์˜ ๋ฌธ์ œ๋Š” ์กฐํšŒ ์ฟผ๋ฆฌ์™€ Count ์ฟผ๋ฆฌ ์ด 2๋ฒˆ ๋‚ ์•„๊ฐ„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“DiaryQueryRepositoryImpl - findDiariesWithPageable

ํ•˜์ง€๋งŒ ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๋Š˜์–ด๋‚ ์ˆ˜๋ก, ์ผ๊ธฐ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๋น„ํšจ์œจ์ ์ด๊ณ  ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚จ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฅผ ๊ฐœ์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.


How

์ฒ˜์Œ ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ•  ๋• ์ผ๊ธฐ์™€ Count๋ฅผ ์ด 2๋ฒˆ ์กฐํšŒ๋ฅผ ํ•˜๊ณ , ์ด ์ดํ›„ ํŽ˜์ด์ง€ ์กฐํšŒ๋ฅผ ํ•  ๋•Œ์—๋Š” ์ผ๊ธฐ๋งŒ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์•ˆ์„ ์ƒ๊ฐํ–ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๋ณดํ†ต ์›น ํŽ˜์ด์ง€๋ฅผ ๋“ค์–ด๊ฐ€๋ฉด ํŽ˜์ด์ง€๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€๊ฐ€ 1์ผ ๊ฒฝ์šฐ๋Š” Count๋ฅผ ์กฐํšŒํ•˜๊ณ , ์ด ์กฐํšŒ๋œ ๊ฐœ์ˆ˜๋ฅผ ํ”„๋ก ํŠธ ์ธก์—์„œ ์ €์žฅํ•œ ํ›„ ํŽ˜์ด์ง€ 2, 3, 4... ์ผ ๋•Œ๋Š” ์ €์žฅ๋œ Count๋ฅผ ํ”„๋ก ํŠธ ์ธก์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.


Process

๐Ÿ“DiaryQueryRepositoryImpl - findDiariesWithPageable

์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ํŽ˜์ด์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ์—๋Š” Count ์กฐํšŒ๋ฅผ ํ•˜๊ณ , ๊ทธ๊ฒŒ ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” -1๋กœ ๋ฐ˜ํ™˜์„ ํ•˜์—ฌ ์กฐํšŒ๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ 0์ผ ๋•Œ๋งŒ Count ์กฐํšŒ๊ฐ€ ์ด๋ค„์ง€๊ณ , 0์ด ์•„๋‹ˆ๋ผ๋ฉด Count ์กฐํšŒ๊ฐ€ ์ด๋ค„์ง€์ง€ ์•Š๋Š”๋‹ค.


Result

๋งŒ์•ฝ ํŽ˜์—์ง€๊ฐ€ 10๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด 10 2 = 20๋ฒˆ ์กฐํšŒ๊ฐ€ ๋‚ ์•„๊ฐ„๋‹ค.
ํ•˜์ง€๋งŒ ๋ฆฌํŒฉํ† ๋ง ํ•œ ๊ฒฐ๊ณผ, (1
2) + 9 = 11๋ฒˆ ์กฐํšŒ๊ฐ€ ๋‚ ์•„๊ฐ„๋‹ค.

์ฆ‰ 20 - 11 = 9, 9ํšŒ ์กฐํšŒ๋ฅผ ๊ฐ์†Œ์‹œ์ผฐ๋‹ค.

์—ฌ๊ธฐ์„œ ์ถ”๊ฐ€๋กœ ์ฒซ ํŽ˜์ด์ง€ Count ์กฐํšŒ๋ฅผ ์ฒ˜์Œ์—๋งŒ ํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ๋ถ€ํ„ฐ๋Š” ์บ์‹œ์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค๋ฉด?

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ–ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜๋ฉด 9ํšŒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์กฐํšŒ๋ฅผ ๊ฐ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.


Thoughts

"์ฟผ๋ฆฌ๊ฐ€ 2๋ฒˆ์—์„œ 1๋ฒˆ์œผ๋กœ ๊ฐ์†Œํ•œ๋‹ค ํ•ด์„œ ์–ผ๋งˆ๋‚˜ ์„ฑ๋Šฅ์ด ๋†’์•„์ง€๊ฒ ์–ด?" ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„ Result์—์„œ ์ž‘์„ฑํ•œ ๋Œ€๋กœ 10๊ฐœ๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ 9ํšŒ๋‚˜ ๊ฐ์†Œํ•  ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ๋ฅผ ์–ป์—ˆ๋‹ค. ์ด๊ฒŒ 10๋ช…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด 90ํšŒ๋ฅผ ๊ฐ์†Œํ•œ ๊ฒƒ์ด๋‹ค.

Redis ์บ์‹ฑ์„ ๋ถ™์—ฌ์•ผ๋งŒ ์กฐํšŒ ์†๋„๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ์‚ฌ์†Œํ•œ ๊ณ ๋ ค๊ฐ€ ์กฐํšŒ ์†๋„์— ํฐ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ๋‹ค.


profile
๐Ÿ’ป ๐Ÿ’ป ๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด