Skip to content

Conversation

@minor7295
Copy link
Owner

๐Ÿ“Œ Summary

๐Ÿ’ฌ Review Points

โœ… Checklist

๐Ÿ“Ž References

@minor7295 minor7295 merged commit 22bb0a9 into base-pr-round9 Dec 23, 2025
1 check passed
minor7295 added a commit that referenced this pull request Dec 28, 2025
* Feature/ranking (#37)

* feat: zset ๋ชจ๋“ˆ ์ถ”๊ฐ€

zset

* test: ๋žญํ‚น ๊ณ„์‚ฐ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ๊ณ„์‚ฐ ์„œ๋น„์Šค ๊ตฌํ˜„

* test: ๋žญํ‚น ์ด๋ฒคํŠธ ์ปจ์Šˆ๋จธ ํ…Œ์ŠคํŠธ ๋กœ์ง ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์ปจ์Šˆ๋จธ ๊ตฌํ˜„

* test: ๋žญํ‚น ์กฐํšŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* feat: ๋žญํ‚น ์กฐํšŒ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* test: ๋žญํ‚น ์ •๋ณด ํฌํ•จํ•˜์—ฌ ์ƒํ’ˆ ์กฐํšŒํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: ๋žญํ‚น ํฌํ•จํ•˜์—ฌ ์ƒํ’ˆ ์ •๋ณด ์กฐํšŒํ•˜๋„๋ก api ์ˆ˜์ •

---------

Co-authored-by: แ„‹แ…ตแ„€แ…ฅแ†ซแ„‹แ…งแ†ผ <>

* Feature/ranking event (#38)

* feat: zset ๋ชจ๋“ˆ์— zunionstore ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€

* test: ๋žญํ‚น ์ง‘๊ณ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ณผ ๋žญํ‚น ๊ณ„์‚ฐ ๋กœ์ง์„ application event ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: ๋žญํ‚น ์ง‘๊ณ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ณผ ๋žญํ‚น ๊ณ„์‚ฐ ๋กœ์ง์„ application event ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ•จ

* Feature/ranking exception (#39)

* test: ๋žญํ‚น ์กฐํšŒ ์‹คํŒจํ•  ๋•Œ์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์กฐํšŒ ์‹คํŒจ์‹œ ์ „๋‚  ํ˜น์€ ์ข‹์•„์š” ์ˆœ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•˜๋„๋ก ๋ณด์™„

* feat: ๋žญํ‚น fallback ์ „๋žต ๊ตฌํ˜„

* test: ๋žญํ‚น fallback ์ „๋žต์— ๋งž์ถฐ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ˆ˜์ •

* refactor: ์ผ์ž ๋‹จ์œ„ carry over ๋„์ž…์— ๋”ฐ๋ผ unionstore ์ œ๊ฑฐ

* chore: ํด๋ž˜์Šค๋ช…๊ณผ ๋™์ผํ•˜๊ฒŒ ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* refactor: ๋žญํ‚น ์ด๋ฒคํŠธ ์ปจ์Šˆ๋จธ์—์„œ ๋ฉฑ๋“ฑ์„ฑ ์ฒดํฌ ๋กœ์ง, ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋กœ์ง, ๋ฐฐ์น˜ ์ปค๋ฐ‹ ๋กœ์ง ๋ฐ˜๋ณต ์ œ๊ฑฐ

* refactor: ๋ถˆํ•„์š”ํ•œ stubbing ์ œ๊ฑฐ

* chore: ์‹œ๊ฐ„๋Œ€ ์„ค์ • ์ถ”๊ฐ€
minor7295 added a commit that referenced this pull request Jan 4, 2026
* [volume-1] ํšŒ์›๊ฐ€์ž…, ๋‚ด ์ •๋ณด ์กฐํšŒ, ํฌ์ธํŠธ ์กฐํšŒ, ํฌ์ธํŠธ ์ถฉ์ „ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#22)

* Feature/user (#1)

* test: User ๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: User ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: ํšŒ์› ๊ฐ€์ž… ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์›๊ฐ€์ž… E2E ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… API ๊ตฌํ˜„

* test: genderํ•„๋“œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* refactor: User๋„๋ฉ”์ธ์— ์„ฑ๋ณ„ ํ•„๋“œ ์ถ”๊ฐ€

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ API ์ถ”๊ฐ€

* Feature/point (#2)

* test: ํšŒ์›๊ฐ€์ž… ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ SignUpFacade๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์ˆ˜์ •

* refactor: ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” SignUpFacade ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ API ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ๋„๋ฉ”์ธ ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ API ์ถ”๊ฐ€

* docs: ํšŒ์›๊ฐ€์ž…, ๋‚ด ์ •๋ณด ์กฐํšŒ, ํฌ์ธํŠธ ์กฐํšŒ, ํฌ์ธํŠธ ์ถฉ์ „ ๊ธฐ๋Šฅ ๊ด€๋ จ docstring ์ถ”๊ฐ€ (#3)

* Base pr round1 (Loopers-dev-lab#50)

* Feature/user (#1)

* test: User ๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: User ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: ํšŒ์› ๊ฐ€์ž… ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์›๊ฐ€์ž… E2E ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… API ๊ตฌํ˜„

* test: genderํ•„๋“œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* refactor: User๋„๋ฉ”์ธ์— ์„ฑ๋ณ„ ํ•„๋“œ ์ถ”๊ฐ€

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ API ์ถ”๊ฐ€

* Feature/point (#2)

* test: ํšŒ์›๊ฐ€์ž… ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ SignUpFacade๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์ˆ˜์ •

* refactor: ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” SignUpFacade ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ API ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ๋„๋ฉ”์ธ ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ API ์ถ”๊ฐ€

* docs: ํšŒ์›๊ฐ€์ž…, ๋‚ด ์ •๋ณด ์กฐํšŒ, ํฌ์ธํŠธ ์กฐํšŒ, ํฌ์ธํŠธ ์ถฉ์ „ ๊ธฐ๋Šฅ ๊ด€๋ จ docstring ์ถ”๊ฐ€ (#3)

* Feature/software design (#6) (Loopers-dev-lab#51)

* [volume-1] ํšŒ์›๊ฐ€์ž…, ๋‚ด ์ •๋ณด ์กฐํšŒ, ํฌ์ธํŠธ ์กฐํšŒ, ํฌ์ธํŠธ ์ถฉ์ „ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#4)

* Feature/user (#1)

* test: User ๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: User ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: ํšŒ์› ๊ฐ€์ž… ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์›๊ฐ€์ž… E2E ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํšŒ์›๊ฐ€์ž… API ๊ตฌํ˜„

* test: genderํ•„๋“œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* refactor: User๋„๋ฉ”์ธ์— ์„ฑ๋ณ„ ํ•„๋“œ ์ถ”๊ฐ€

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํšŒ์› ์ •๋ณด ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

* feat: ํšŒ์› ์ •๋ณด ์กฐํšŒ API ์ถ”๊ฐ€

* Feature/point (#2)

* test: ํšŒ์›๊ฐ€์ž… ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ SignUpFacade๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์ˆ˜์ •

* refactor: ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” SignUpFacade ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ ํ†ตํ•ฉํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: ํฌ์ธํŠธ ์กฐํšŒ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์กฐํšŒ API ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ๋„๋ฉ”์ธ ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* test: ํฌ์ธํŠธ ์ถฉ์ „ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ํฌ์ธํŠธ ์ถฉ์ „ API ์ถ”๊ฐ€

* docs: ํšŒ์›๊ฐ€์ž…, ๋‚ด ์ •๋ณด ์กฐํšŒ, ํฌ์ธํŠธ ์กฐํšŒ, ํฌ์ธํŠธ ์ถฉ์ „ ๊ธฐ๋Šฅ ๊ด€๋ จ docstring ์ถ”๊ฐ€ (#3)

* docs: ์„ค๊ณ„ ๋ฌธ์„œ ์ถ”๊ฐ€

* [volume-3] ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง (Loopers-dev-lab#74)

* Feature/refactor user (#7)

* refactor: ์‚ฌ์šฉ์ž ๋ฐ ํฌ์ธํŠธ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ˆ˜์ •

* refactor: point๋„๋ฉ”์ธ์„ user ๋„๋ฉ”์ธ์œผ๋กœ ํ†ตํ•ฉ

* refactor: user ๋„๋ฉ”์ธ ๊ด€๋ จ ํ†ตํ•ฉํ…Œ์ŠคํŠธ ๋กœ์ง ์ˆ˜์ •

* refactor: user ๋„๋ฉ”์ธ ๊ด€๋ จ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* refactor: user ๋„๋ฉ”์ธ ๊ด€๋ จ E2E ํ…Œ์ŠคํŠธ ๋กœ์ง ์ˆ˜์ •

* refactor: user ๋„๋ฉ”์ธ ๊ด€๋ จ API ๊ตฌํ˜„

* Feature/brand product (#8)

* test: product ๋„๋ฉ”์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: product, brand ๋„๋ฉ”์ธ ๊ตฌํ˜„

* Feature/like (#9)

* feat: like ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: like์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: like์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* Feature/order (#10)

* Feature/like (#9)

* feat: like ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: like์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: like์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* test: order ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: order ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: ์ฃผ๋ฌธ์— ๋Œ€ํ•œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์ฃผ๋ฌธ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* Feature/product detail (#11)

* test: ์ƒํ’ˆ ์ •๋ณด์— ๋Œ€ํ•œ ๋„๋ฉ”์ธ ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์ƒํ’ˆ ์ •๋ณด ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๊ตฌํ˜„

* feat: ์ƒํ’ˆ ์ •๋ณด ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* feat: ํ…Œ์ด๋ธ”๋ช…์— `์ด ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ DatabaseCleanUp๋กœ์ง์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ˆ˜์ • (#12)

* refactor: ์„ค๊ณ„ ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ตฌํ˜„ ๋‚ด์šฉ ๋ฐ˜์˜ (#13)

* [volume-4] API ๊ตฌํ˜„ ๋ณด๊ฐ• ๋ฐ ํŠธ๋žœ์žญ์…˜์„ ํ™œ์šฉํ•œ ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ (Loopers-dev-lab#99)

* Add GitHub Actions workflow for PR Agent

* Feature/misc api (#15)

* refactor: product ๋„๋ฉ”์ธ์˜ likeCount ์ง‘๊ณ„ ๋ฐฉ์‹์„ ๋ฐฐ์น˜ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ

* refactor: CatalogProductFacade์—์„œ ๋ฐœ์ƒํ•˜๋Š” n+1 ์ฟผ๋ฆฌ ์ˆ˜์ •

* refactor: SignUpFacade์˜ NPE ๊ฐ€๋Šฅ์„ฑ ์ œ๊ฑฐ

* refactor: Brand ๋„๋ฉ”์ธ name ํ•„๋“œ์˜ ์ž…๋ ฅ ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€

* refactor: Order๋„๋ฉ”์ธ ๋‚ด์˜ OrderItem์„ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ์„ค์ •

* feat: ๋ธŒ๋žœ๋“œ ์ •๋ณด ์กฐํšŒ API ์ถ”๊ฐ€

* feat: ์ƒํ’ˆ ์กฐํšŒ API ์ถ”๊ฐ€

* feat: ์ข‹์•„์š” ์ˆ˜ ์ง‘๊ณ„ ๋กœ์ง ์ถ”๊ฐ€

* feat: ์ข‹์•„์š” API ์ถ”๊ฐ€

* feat: ๊ตฌ๋งค API ์ถ”๊ฐ€

* Feature/concurrency like (#16)

* test: ์ข‹์•„์š” ๋™์‹œ์„ฑ ํ…Œ์ŠคํŠธ ๋กœ์ง ์ถ”๊ฐ€

* feat: like์— unique constraint ์ ์šฉํ•ด์„œ ๋™์‹œ์„ฑ ์ด์Šˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•จ

* Feature/coupon (#17)

* test: ์ฟ ํฐ ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: coupon ๊ตฌํ˜„

* Feature/concurrency purchasing (#18)

* test: ์ฃผ๋ฌธ ๋™์‹œ์„ฑ ํ…Œ์ŠคํŠธ ๋กœ์ง ์ถ”๊ฐ€

* test: ์ฃผ๋ฌธ ํ๋ฆ„์˜ ์›์ž์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋น„๊ด€์  ๋ฝ ์ ์šฉํ•˜์—ฌ ์ฃผ๋ฌธ ๋™์‹œ์„ฑ ์ด์Šˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•จ

* refactor: deadlock ๋ฌธ์ œ ์ˆ˜์ •

---------

Co-authored-by: simplify-len <joenggyu0@gmail.com>

* [volume-5] ์ธ๋ฑ์Šค์™€ ์บ์‹ฑ์„ ํ†ตํ•œ ์ฝ๊ธฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” (Loopers-dev-lab#125)

* Feature/catalog caching (#20)

* feat: ์ƒํ’ˆ ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค ๋กœ์ง ์ถ”๊ฐ€

* feat: ์ƒํ’ˆ ์กฐํšŒํ•˜๋Š” ์„œ๋น„์Šค ๋กœ์ง์— Cache Aside ํŒจํ„ด ์ ์šฉ

* Feature/cache eviction (#21)

* feature: ์ƒํ’ˆ ์ข‹์•„์š” ์ˆ˜์— ๋กœ์ปฌ์บ์‹œ ์ ์šฉ (#21)

* test: LikeFacade ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: Product ์—”ํ‹ฐํ‹ฐ์— ์ธ๋ฑ์Šค ์ถ”๊ฐ€ (#22)

* [volume-6] ์™ธ๋ถ€ ์‹œ์Šคํ…œ ์žฅ์•  ๋ฐ ์ง€์—ฐ ๋Œ€์‘ (Loopers-dev-lab#152)

* feat: PG ๋ชจ๋“ˆ ์ถ”๊ฐ€ (#24)

* Feature/pg client (#27)

* test: PG ํ˜ธ์ถœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: PG ํ˜ธ์ถœ ๋กœ์ง ๊ตฌํ˜„

* test: PG CircuitBreaker ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: CircuitBreaker ๋กœ์ง ๊ตฌํ˜„

* [volume-7] Decoupling with Event (Loopers-dev-lab#171)

* Feature/refactor purchasing (#30)

* feat: PG ๋ชจ๋“ˆ ์ถ”๊ฐ€ (#24)

* Feature/pg client (#27)

* test: PG ํ˜ธ์ถœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: PG ํ˜ธ์ถœ ๋กœ์ง ๊ตฌํ˜„

* test: PG CircuitBreaker ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: CircuitBreaker ๋กœ์ง ๊ตฌํ˜„

* test: payment ๋„๋ฉ”์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: payment ๋„๋ฉ”์ธ ๊ตฌํ˜„

* test: PaymentService ๋„๋ฉ”์ธ ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: PaymentService ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๊ตฌํ˜„

* refactor: payment ๋„๋ฉ”์ธ์˜ ์ฑ…์ž„์ด์ง€๋งŒ order ๋„๋ฉ”์ธ์— ์žˆ๋˜ ๋กœ์ง๋“ค ์ด๋™

* test: Order ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๋กœ์ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* refactor: Order ๋„๋ฉ”์ธ์˜ ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๋กœ์ง ์žฌ๊ตฌ์„ฑ

* refactor: purchasing facade์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋˜ ๋‚ด์šฉ ์ค‘ ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋กœ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ๋“ค ์žฌ๋ฐฐ์น˜

* refactor: DIP ์›์น™์— ๋งž์ถฐ PG ๋กœ์ง์—์„œ infra ๋ ˆ์ด์–ด๊ฐ€ domain ๋ ˆ์ด์–ด๋ฅผ ์˜์กดํ•˜๋„๋ก ์žฌ๊ตฌ์„ฑ

* refactor: payment ๊ด€๋ จ ์Šค์ผ€์ค„๋ง ๋กœ์ง๋“ค์€ infra ๋ ˆ์ด์–ด๋กœ ์ด๋™

* refactor: PurchasingFacade๊ฐ€ repository๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๋กœ์ง ์žฌ๊ตฌ์„ฑ

* refactor: PuhrchasingFacade๊ฐ€ ๋„๋ฉ”์ธ ์„œ๋น„์Šค๋ฅผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์—ญํ• ๋งŒ ๋‹ด๋‹นํ•˜๋„๋ก ์žฌ๊ตฌ์„ฑ

* refactor: ์žฌ๊ตฌ์„ฑํ•œ ๋„๋ฉ”์ธ ์„œ๋น„์Šค ๋กœ์ง์— ๋งž์ถฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์žฌ๊ตฌ์„ฑ

* refactor: ์ฃผ๋ฌธ ๊ฒฐ์ œ์‹œ ํฌ์ธํŠธ ๋˜๋Š” ์นด๋“œ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ์ œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •

* refactor: ํฌ์ธํŠธ ๋˜๋Š” ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์žฌ๊ตฌ์„ฑ

* refactor: ๋‹ค๋ฅธ application๋ ˆ์ด์–ด์™€ ๋™์ผํ•˜๊ฒŒ command์˜ ์œ„์น˜๋ฅผ domain์—์„œ application์œผ๋กœ ์ด๋™

* refactor: Order๋„๋ฉ”์ธ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ค‘ application ๋ ˆ์ด์–ด์— ๋” ์ ํ•ฉํ•œ ๋ถ€๋ถ„ ๋ถ„๋ฆฌ

* refactor: Order ๋„๋ฉ”์ธ ์„œ๋น„์Šค์— ์žˆ๋˜ ๋‚ด์šฉ ์ค‘ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„๋“ค์€ application ๋ ˆ์ด์–ด๋กœ ์ด๋™์‹œํ‚ด

* refactor: infrastructure ๋ ˆ์ด์–ด์— domain๋ ˆ์ด์–ด์™€ ๋‹ฌ๋ฆฌ payment์™€ paymentgateway๊ฐ€ ๊ตฌ๋ถ„๋˜์–ด์žˆ์–ด ํ†ต์ผํ•จ

* chore: ์ค‘๋ณต๋˜๋Š” ๋กœ๊ทธ ์ •๋ฆฌ, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋†’์€ level์ธ ๋กœ๊ทธ๋Š” debug ๋กœ๊ทธ๋กœ ์ „ํ™˜

* Feature/refactor application (#31)

* refactor: application ๋ ˆ์ด์–ด๋ฅผ ๋„๋ฉ”์ธ๋ณ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์กฐํ•ฉ์ธ facade๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌ์„ฑ

* refactor: application๊ฐ€ ๋„๋ฉ”์ธ๋ณ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์™€ ํŒŒ์‚ฌ๋“œ๋กœ ๊ตฌ๋ถ„๋œ ๊ฒƒ์— ๋งž์ถฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* refactor: scheduler๋ฅผ infrastructure ๋ ˆ์ด์–ด๋กœ ์ด๋™

* refactor: ๋„๋ฉ”์ธ์˜ ์บก์Аํ™”๊ฐ€ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„ ๊ฐœ์„ 

* refactor: ์บ์‹œ ์‚ฌ์šฉํ•  ๋•Œ dip ์ ์šฉํ•˜์—ฌ application๋ ˆ์ด์–ด๊ฐ€ infrastructure ๋ ˆ์ด์–ด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋„๋ก ์ˆ˜์ • (#32)

* Feature/event (#34)

* feat: ๋„๋ฉ”์ธ๋ณ„ event ์ถ”๊ฐ€

* feat: DIP ์ ์šฉํ•˜์—ฌ event publisher ๊ตฌํ˜„

* refactor: ์ข‹์•„์š” ์ˆ˜ ์ง‘๊ณ„๋ฅผ ์Šค์ผ€์ค„ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝ

* feat: ์ฟ ํฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€

* feat: order ๋„๋ฉ”์ธ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* feat: payment ๋„๋ฉ”์ธ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* feat: point ๋„๋ฉ”์ธ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* feat: product ๋„๋ฉ”์ธ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

* ๋„๋ฉ”์ธ์ด๋ฒคํŠธ

* refactor: HeartFacade์—์„œ ์ข‹์•„์š” ์ฒ˜๋ฆฌ์‹œ Product ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ด๋ฒคํŠธ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์žฌ๊ตฌ์„ฑ

* refactor: PurchasingFacade์—์„œ ์ฃผ๋ฌธ ์ฒ˜๋ฆฌ์‹œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ด๋ฒคํŠธ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์žฌ๊ตฌ์„ฑ

* test: eventhandler์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* refactor: event handler ํ…Œ์ŠคํŠธ์— ๋งž์ถฐ ์ฝ”๋“œ ์ˆ˜์ •

* feat: ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์œผ๋กœ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€

* feat: event ๋ฐ command ์žฌ๊ตฌ์„ฑ (#35)

* feat: event ๋ฐ command ์žฌ๊ตฌ์„ฑ (#35)

event

* code rabbit

* Feature/kafka (#36) (Loopers-dev-lab#191)

* chore:kafka producer ์„ค์ •

* chore: kafka ํ† ํ”ฝ ์ž๋™ ์ƒ์„ฑ ์„ค์ • ์ถ”๊ฐ€

* feat: kafka event publisher, comsumer ์ถ”๊ฐ€

* test: ์ง‘๊ณ„ ๋„๋ฉ”์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ์ง‘๊ณ„ ๋„๋ฉ”์ธ domain ๋ ˆ์ด์–ด ๊ตฌํ˜„

* feat: ์ง‘๊ณ„ ๋„๋ฉ”์ธ infra ๋ ˆ์ด์–ด ๊ตฌํ˜„

* chore: kafka ํ† ํ”ฝ ์ž๋™ ์ƒ์„ฑ ์„ค์ • ์ถ”๊ฐ€

* chore: kafka ๋นŒ๋“œ ์˜์กด์„ฑ ์ถ”๊ฐ€

* test: ์ง‘๊ณ„ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: ์ง‘๊ณ„ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* test: kafka consumer ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: kafka comsumer ๊ตฌํ˜„

* outbox ํŒจํ„ด ์ ์šฉ์œ„ํ•ด ๊ธฐ์กด kafka ์„ค์ • ์‚ญ์ œ

* test: outboxevent ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

* feat: outbox ๋„๋ฉ”์ธ ๊ตฌํ˜„

* feat: outbox infrastructure repository๊ตฌํ˜„

* metric ์˜คํƒ€ ์ˆ˜์ •

* refactor: consumer ๊ด€๋ จ ๋กœ์ง๋“ค์€ commerce-streamer ๋ชจ๋“ˆ๋กœ ์ด๋™

* test: outbox ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* test: outbox ๊ตฌํ˜„

* outbox event listener ๊ตฌํ˜„

* feat: ์ƒํ’ˆ ์กฐํšŒ ์ด๋ฒคํŠธ ์ถ”๊ฐ€

* feat: ์ƒํ’ˆ ์กฐํšŒ์‹œ ์ด๋ฒคํŠธ ๋ฐœํ–‰

* chore: kafka ์„ค์ • ์ˆ˜์ •

* fix: outbox ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

* chore: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‹คํ–‰์‹œ kafka ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก test container ์„ค์ • ์ถ”๊ฐ€

* test: offset.reset: latest ์„ค์ •์ด ์ œ๋Œ€๋กœ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* test: kafka ํŒŒํ‹ฐ์…˜ ํ‚ค ์„ค์ •์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* chore: commerce-api ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์นดํ”„์นด ์‚ฌ์šฉํ•˜๋„๋ก ์„คใ„น์ •

* test: event id ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฒˆ๋งŒ publish, consumeํ•˜๋Š” ๊ฒƒ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* chore: ์ถฉ๋Œ ๋ฐœ์ƒํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: event id ๊ธฐ์ค€ 1ํšŒ ์ฒ˜๋ฆฌ๋˜๋„๋ก ๋กœ์ง ๊ตฌํ˜„

* test: ๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ ์ตœ์‹  ์ด๋ฒคํŠธ๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: version ๊ธฐ์ค€์œผ๋กœ ์ตœ์‹  ์ด๋ฒคํŠธ๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•จ

* test: ์ค‘๋ณต ๋ฉ”์‹œ์ง€ ์žฌ์ „์†ก ์‹œ ํ•œ ๋ฒˆ๋งŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: kafka ์ด๋ฒคํŠธ publish ํ•  ๋•Œ ์ฝœ๋ฐฑ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ์œ ์‹ค ๋ฐฉ์ง€

* feat: kafka๋ฉ”์‹œ์ง€ ํ—ค๋”์— event type ์ถ”๊ฐ€

* feat: ๋ฒ„์ „ ์กฐํšŒ์™€ ์ €์žฅ ์‚ฌ์ด์˜ ๊ฒฝ์Ÿ ์กฐ๊ฑด ๊ฐ€๋Šฅ์„ฑ ํ•ด๊ฒฐ

* feat: ์‹ ๊ทœ ์ƒํ’ˆ ๋“ฑ๋ก์‹œ event ๋ฐœํ–‰์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝํ•ฉ ๋ฌธ์ œ ์ˆ˜์ •

* [volume - 9] What is Popularity? (Loopers-dev-lab#210)

* Feature/ranking (#37)

* feat: zset ๋ชจ๋“ˆ ์ถ”๊ฐ€

zset

* test: ๋žญํ‚น ๊ณ„์‚ฐ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ๊ณ„์‚ฐ ์„œ๋น„์Šค ๊ตฌํ˜„

* test: ๋žญํ‚น ์ด๋ฒคํŠธ ์ปจ์Šˆ๋จธ ํ…Œ์ŠคํŠธ ๋กœ์ง ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์ปจ์Šˆ๋จธ ๊ตฌํ˜„

* test: ๋žญํ‚น ์กฐํšŒ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์กฐํšŒ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„

* feat: ๋žญํ‚น ์กฐํšŒ ์—”๋“œํฌ์ธํŠธ ์ถ”๊ฐ€

* test: ๋žญํ‚น ์ •๋ณด ํฌํ•จํ•˜์—ฌ ์ƒํ’ˆ ์กฐํšŒํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* feat: ๋žญํ‚น ํฌํ•จํ•˜์—ฌ ์ƒํ’ˆ ์ •๋ณด ์กฐํšŒํ•˜๋„๋ก api ์ˆ˜์ •

---------

Co-authored-by: แ„‹แ…ตแ„€แ…ฅแ†ซแ„‹แ…งแ†ผ <>

* Feature/ranking event (#38)

* feat: zset ๋ชจ๋“ˆ์— zunionstore ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€

* test: ๋žญํ‚น ์ง‘๊ณ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ณผ ๋žญํ‚น ๊ณ„์‚ฐ ๋กœ์ง์„ application event ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •

* feat: ๋žญํ‚น ์ง‘๊ณ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ณผ ๋žญํ‚น ๊ณ„์‚ฐ ๋กœ์ง์„ application event ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ•จ

* Feature/ranking exception (#39)

* test: ๋žญํ‚น ์กฐํšŒ ์‹คํŒจํ•  ๋•Œ์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ๋žญํ‚น ์กฐํšŒ ์‹คํŒจ์‹œ ์ „๋‚  ํ˜น์€ ์ข‹์•„์š” ์ˆœ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•˜๋„๋ก ๋ณด์™„

* feat: ๋žญํ‚น fallback ์ „๋žต ๊ตฌํ˜„

* test: ๋žญํ‚น fallback ์ „๋žต์— ๋งž์ถฐ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ˆ˜์ •

* refactor: ์ผ์ž ๋‹จ์œ„ carry over ๋„์ž…์— ๋”ฐ๋ผ unionstore ์ œ๊ฑฐ

* chore: ํด๋ž˜์Šค๋ช…๊ณผ ๋™์ผํ•˜๊ฒŒ ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* refactor: ๋žญํ‚น ์ด๋ฒคํŠธ ์ปจ์Šˆ๋จธ์—์„œ ๋ฉฑ๋“ฑ์„ฑ ์ฒดํฌ ๋กœ์ง, ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋กœ์ง, ๋ฐฐ์น˜ ์ปค๋ฐ‹ ๋กœ์ง ๋ฐ˜๋ณต ์ œ๊ฑฐ

* refactor: ๋ถˆํ•„์š”ํ•œ stubbing ์ œ๊ฑฐ

* chore: ์‹œ๊ฐ„๋Œ€ ์„ค์ • ์ถ”๊ฐ€

* Feature/batch (#40)

* feat: batch ์ฒ˜๋ฆฌ ๋ชจ๋“‡ ๋ถ„๋ฆฌ

* feat: batch ๋ชจ๋“ˆ์— ProductMetrics ๋„๋ฉ”์ธ ์ถ”๊ฐ€

* feat: ProudctMetrics์˜ Repository ์ถ”๊ฐ€

* test: Product Metrics ๋ฐฐ์น˜ ์ž‘์—…์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: ProductMetrics ๋ฐฐ์น˜ ์ž‘์—… ๊ตฌํ˜„

* test: Product Rank์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: Product Rank ๋„๋ฉ”์ธ ๊ตฌํ˜„

* feat: Product Rank Repository ์ถ”๊ฐ€

* test: Product Rank ๋ฐฐ์น˜์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* feat: Product Rank ๋ฐฐ์น˜ ์ž‘์—… ์ถ”๊ฐ€

* feat: ์ผ๊ฐ„, ์ฃผ๊ฐ„, ์›”๊ฐ„ ๋žญํ‚น์„ ์ œ๊ณตํ•˜๋Š” api ์ถ”๊ฐ€

* refractor: ๋žญํ‚น ์ง‘๊ณ„ ๋กœ์ง์„ ์—ฌ๋Ÿฌ step์œผ๋กœ ๋ถ„๋ฆฌํ•จ

* chore: db ์ดˆ๊ธฐํ™” ๋กœ์ง์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

* test: ๋žญํ‚น ์ง‘๊ณ„์˜ ๊ฐ step์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

* cdoerabbit ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜

* ํŠธ๋žœ์ ์…˜ ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€

* ๋žญํ‚น ๋Œ€์ƒ ํ•ญ๋ชฉ์ด 100๊ฐœ ๋ฏธ๋งŒ์ผ ๋•Œ์˜ ๋ฐฐ์น˜ ์—์™ธ ์ฒ˜๋ฆฌ

* @StepScope๋ฅผ ์ ์šฉํ•˜์—ฌ Step ์‹คํ–‰๋งˆ๋‹ค ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ

* ๋žญํฌ ๊ณ„์‚ฐ ํ›„ ์‹ฑ๊ธ€ํ†ค ์ธ์Šคํ„ด์Šค ๋‚ด์˜ ํ•„๋“œ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์˜ค์—ผ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฌธ์ œ ๋ฐฉ์ง€

* ๋ฐฐ์น˜ ์‹คํ–‰ ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” null pointer exeception ์ˆ˜์ •

* n+1 ์ฟผ๋ฆฌ ๊ฐœ์„ 

---------

Co-authored-by: simplify-len <joenggyu0@gmail.com>
Co-authored-by: แ„‹แ…ตแ„€แ…ฅแ†ซแ„‹แ…งแ†ผ <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants