ํ์ : PM(1) / Design(1) / Frontend(2) / Backend(3)
๊ธฐ๊ฐ : 2024.03 ~ 2025.03
๋งํฌ : https://github.com/M-ung/MoodBuddy_Server
์๋น์ค ๋ด์ฉ : ์ฌ์ฉ์๊ฐ ์์ฑํ ์ผ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ๋ถ์ํ๋ ์น ์๋น์ค
์ํต : GitHub, Slack, Notion, Discord
์ฐ๋ฆฌ ๋ฌด๋๋ฒ๋ ์๋น์ค์์ ๋๋ถ๋ถ์ ์กฐํ ์ฒ๋ฆฌ๋ ํ์ด์ง์ ํ์ฉํ๋ค.
ํ์ง๋ง ํ์ด์ง ์กฐํ์ ๋ฌธ์ ๋ ์กฐํ ์ฟผ๋ฆฌ์ Count ์ฟผ๋ฆฌ ์ด 2๋ฒ ๋ ์๊ฐ๋ค๋ ๊ฒ์ด๋ค.
๐DiaryQueryRepositoryImpl - findDiariesWithPageable
ํ์ง๋ง ์ด๋ ์ฌ์ฉ์๊ฐ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก, ์ผ๊ธฐ ๊ฐ์๊ฐ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก ๋นํจ์จ์ ์ด๊ณ ์ฑ๋ฅ์ ์ ํ์ํจ๋ค.
๊ทธ๋์ ์ด๋ฅผ ๊ฐ์ ํ ํ์๊ฐ ์๋ค.
์ฒ์ ํ์ด์ง๋ฅผ ์กฐํํ ๋ ์ผ๊ธฐ์ Count๋ฅผ ์ด 2๋ฒ ์กฐํ๋ฅผ ํ๊ณ , ์ด ์ดํ ํ์ด์ง ์กฐํ๋ฅผ ํ ๋์๋ ์ผ๊ธฐ๋ง ์กฐํํ๋ ๋ฐฉ์์ ์๊ฐํ๋ค.
๊ทธ ์ด์ ๋ ์๋์ ๊ฐ๋ค.
๋ณดํต ์น ํ์ด์ง๋ฅผ ๋ค์ด๊ฐ๋ฉด ํ์ด์ง๊ฐ 0๋ถํฐ ์์๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์ด์ง๊ฐ 1์ผ ๊ฒฝ์ฐ๋ Count๋ฅผ ์กฐํํ๊ณ , ์ด ์กฐํ๋ ๊ฐ์๋ฅผ ํ๋ก ํธ ์ธก์์ ์ ์ฅํ ํ ํ์ด์ง 2, 3, 4... ์ผ ๋๋ ์ ์ฅ๋ Count๋ฅผ ํ๋ก ํธ ์ธก์์ ์ฌ์ฉํ๋ฉด ์ฟผ๋ฆฌ ์๋ฅผ ์ค์ด๊ณ ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ค๊ณ ์๊ฐํ๋ค.
๐DiaryQueryRepositoryImpl - findDiariesWithPageable
์ ์ฝ๋์ ๊ฐ์ด ํ์ด์ง๊ฐ 0์ผ ๊ฒฝ์ฐ์๋ Count ์กฐํ๋ฅผ ํ๊ณ , ๊ทธ๊ฒ ์๋ ๊ฒฝ์ฐ์๋ -1๋ก ๋ฐํ์ ํ์ฌ ์กฐํ๋ฅผ ํ์ง ์๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ์ด์ง๊ฐ 0์ผ ๋๋ง Count ์กฐํ๊ฐ ์ด๋ค์ง๊ณ , 0์ด ์๋๋ผ๋ฉด Count ์กฐํ๊ฐ ์ด๋ค์ง์ง ์๋๋ค.
๋ง์ฝ ํ์์ง๊ฐ 10๊ฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค๋ฉด 10 2 = 20๋ฒ ์กฐํ๊ฐ ๋ ์๊ฐ๋ค.
ํ์ง๋ง ๋ฆฌํฉํ ๋ง ํ ๊ฒฐ๊ณผ, (1 2) + 9 = 11๋ฒ ์กฐํ๊ฐ ๋ ์๊ฐ๋ค.
์ฆ 20 - 11 = 9, 9ํ ์กฐํ๋ฅผ ๊ฐ์์์ผฐ๋ค.
์ฌ๊ธฐ์ ์ถ๊ฐ๋ก ์ฒซ ํ์ด์ง Count ์กฐํ๋ฅผ ์ฒ์์๋ง ํ๊ณ , ๋ ๋ฒ์งธ๋ถํฐ๋ ์บ์์ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค๋ฉด?
์๋์ ๊ฐ์ด ๊ตฌํํ๋ค.
์๋์ ๊ฐ์ด ๊ตฌํํ๋ฉด 9ํ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์กฐํ๋ฅผ ๊ฐ์ํ ์ ์๋ค.
"์ฟผ๋ฆฌ๊ฐ 2๋ฒ์์ 1๋ฒ์ผ๋ก ๊ฐ์ํ๋ค ํด์ ์ผ๋ง๋ ์ฑ๋ฅ์ด ๋์์ง๊ฒ ์ด?" ๋ผ๋ ์๊ฐ์ ํ์๋ค. ํ์ง๋ง ์ Result์์ ์์ฑํ ๋๋ก 10๊ฐ๋ผ๊ณ ๊ฐ์ ํ์ ๋ 9ํ๋ ๊ฐ์ํ ์ ์๋ ํจ๊ณผ๋ฅผ ์ป์๋ค. ์ด๊ฒ 10๋ช ์ด๋ผ๊ณ ์๊ฐํ๋ฉด 90ํ๋ฅผ ๊ฐ์ํ ๊ฒ์ด๋ค.
Redis ์บ์ฑ์ ๋ถ์ฌ์ผ๋ง ์กฐํ ์๋๋ฅผ ์ฌ๋ฆด ์ ์๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ด๋ ๊ฒ ์ฌ์ํ ๊ณ ๋ ค๊ฐ ์กฐํ ์๋์ ํฐ ์ํฅ์ ์ค ์ ์๋ค๋ ๊ฑธ ๋ฐฐ์ฐ๊ฒ ๋์๋ค.