-
Notifications
You must be signed in to change notification settings - Fork 0
[25.03.16 / TASK-146] Refactor - post service #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Caution Review failedThe pull request is closed. Walkthroughμ΄ PRμ CI μν¬νλ‘μ°μ μ½λλ² μ΄μ€ μ λ°μ κ±Έμ³ μΌκ΄μ± μλ λ©μλ λͺ
μΉ λ³κ²½ λ° SQL 쿼리 κ°μ μμ
μ ν¬ν¨ν©λλ€. Changes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip β‘π§ͺ Multi-step agentic review comment chat (experimental)
π Recent review detailsConfiguration used: CodeRabbit UI π Files selected for processing (2)
πͺ§ TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
π Outside diff range comments (2)
src/services/__test__/post.service.test.ts (1)
21-87
:β οΈ Potential issueν μ€νΈ λ° λ©μλ μ΄λ¦ λΆμΌμΉκ° μμ΅λλ€.
getAllposts
ν μ€νΈ μΉμ (21-87μ€)μμλpostService.getAllposts()
λ₯Ό νΈμΆνκ³ μμ§λ§, λ€λ₯Έ νμΌμ λ³κ²½μ¬νμ 보면 μ΄ λ©μλλͺ λgetAllPosts
λ‘ νμ€νλμ΄μΌ ν©λλ€. ν μ€νΈ μ½λμ λ©μλ νΈμΆ(53, 86μ€)λ μ΄μ λ§κ² μ λ°μ΄νΈν΄μΌ ν©λλ€.μ΄ λΆλΆμ λ€μκ³Ό κ°μ΄ μμ νμΈμ:
- describe('getAllposts', () => { + describe('getAllPosts', () => { // ... - const result = await postService.getAllposts(1); + const result = await postService.getAllPosts(1); // ... - await expect(postService.getAllposts(1)).rejects.toThrow(errorMessage); + await expect(postService.getAllPosts(1)).rejects.toThrow(errorMessage);src/controllers/post.controller.ts (1)
25-25
:β οΈ Potential issueλ©μλ νΈμΆ λΆμΌμΉ λ¬Έμ κ° μμ΅λλ€.
컨νΈλ‘€λ¬ λ©μλλͺ μ΄
getAllPosts
λ‘ λ³κ²½λμμ§λ§, λ΄λΆμμλ μ¬μ νthis.postService.getAllposts
λ₯Ό νΈμΆνκ³ μμ΅λλ€. μ΄λ μλΉμ€ λ©μλλͺ κ³Ό μΌμΉνμ§ μλ λ¬Έμ κ° μμ΅λλ€. μλΉμ€μ λ©μλλͺ λ μΌκ΄λκ²getAllPosts
λ‘ λ³κ²½λμ΄μΌ ν©λλ€.λ€μκ³Ό κ°μ΄ μμ νμΈμ:
- const result = await this.postService.getAllposts(id, cursor, sort, asc); + const result = await this.postService.getAllPosts(id, cursor, sort, asc);
π§Ή Nitpick comments (1)
src/repositories/__test__/post.repo.integration.test.ts (1)
431-448
: findPostByPostUUID λ©μλ ν μ€νΈκ° μ μ νκ² κ΅¬νλμμ΅λλ€.UUIDλ₯Ό μ¬μ©ν κ²μλ¬Ό μ‘°ν κΈ°λ₯μ κ²μ¦νλ ν μ€νΈκ° ν΅μ¬ κΈ°λ₯μ μ κ²μ¦νκ³ μμ΅λλ€:
- κ²μλ¬Ό UUIDλ‘ ν΅κ³ λ°μ΄ν° μ‘°ν κΈ°λ₯ νμΈ
- λ μ§ νν°λ§ μ μ© κ²μ¦
- κ²°κ³Ό κ°μ²΄μ ꡬ쑰 κ²μ¦
λ€λ§, λ€λ₯Έ λ©μλ ν μ€νΈμ λΉκ΅νλ©΄ ν μ€νΈ μΌμ΄μ€ μκ° μ μ νΈμ λλ€. νμνλ€λ©΄ μΆκ° μλ리μ€(μ‘΄μ¬νμ§ μλ UUID, λ€μν λ μ§ λ²μ λ±)μ λν ν μ€νΈλ₯Ό μΆκ°νλ κ²μ κ³ λ €ν΄λ³Ό μ μμ΅λλ€.
π Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
π Files selected for processing (7)
.github/workflows/test-ci.yaml
(2 hunks)src/controllers/post.controller.ts
(2 hunks)src/repositories/__test__/post.repo.integration.test.ts
(1 hunks)src/repositories/post.repository.ts
(3 hunks)src/routes/post.router.ts
(2 hunks)src/services/__test__/post.service.test.ts
(3 hunks)src/services/post.service.ts
(5 hunks)
π Additional comments (24)
.github/workflows/test-ci.yaml (1)
53-59
: νκ²½ λ³μ μ€μ μΆκ°, μ’μ κ°μ μ λλ€!GitHub secretsμμ λ°μ΄ν°λ² μ΄μ€ μ°κ²° μ 보λ₯Ό κ°μ Έμ
.env
νμΌλ‘ μ€μ νλ μ€ν μ μΆκ°ν κ²μ CI νκ²½μμ λ§€μ° μ€μν κ°μ μ¬νμ λλ€. μ΄λ₯Ό ν΅ν΄ ν μ€νΈ λ° λΉλ νλ‘μΈμ€κ° νμν νκ²½ λ³μμ μ κ·Όν μ μκ² λμμ΅λλ€.src/services/__test__/post.service.test.ts (3)
15-15
: ESLint κ·μΉ λΉνμ±νμ λν λͺ μμ μ£Όμ μΆκ°, μ’μ΅λλ€.νμ λ¨μΈ(type assertion)μ λν ESLint κ·μΉμ λͺ μμ μΌλ‘ λΉνμ±ννλ μ£Όμμ μΆκ°ν κ²μ μ½λμ μλλ₯Ό λͺ νν νλ μ’μ λ°©λ²μ λλ€.
102-102
: λ©μλλͺ νμ€ν, μΌκ΄μ± ν₯μμ λλ€.
getAllPostStatistics
μμgetAllPostsStatistics
λ‘ λ©μλλͺ μ λ³κ²½νμ¬ λ³΅μνμ μ¬μ©ν¨μΌλ‘μ¨ μ΄λ¦ κ·μΉμ μΌκ΄μ±μ κ°μ νμ΅λλ€. μ΄λ μ½λ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ ν₯μμν΅λλ€.
117-117
: λ©μλλͺ νμ€ν, μΌκ΄μ± ν₯μμ λλ€.μ¬κΈ°μλ
getAllPostStatistics
μμgetAllPostsStatistics
λ‘ λ©μλλͺ μ λ³κ²½νμ¬ νμ€νλ λ€μ΄λ° 컨벀μ μ μ μ©νμ΅λλ€.src/routes/post.router.ts (2)
52-52
: λ©μλλͺ νμ€ν, λΌμ°ν° μ°κ²° μ λ°μ΄νΈμ»¨νΈλ‘€λ¬μ λ©μλλͺ μ΄
getAllPost
μμgetAllPosts
λ‘ λ³κ²½λ¨μ λ°λΌ λΌμ°ν°μ μ°κ²°λ μ μ ν μ λ°μ΄νΈλμμ΅λλ€. μ΄λ¬ν μΌκ΄λ λ³κ²½μ μ½λλ² μ΄μ€ μ 체μ μΌκ΄μ±μ μ μ§νλ λ° μ€μν©λλ€.
72-72
: λ©μλλͺ νμ€ν, λΌμ°ν° μ°κ²° μ λ°μ΄νΈμ»¨νΈλ‘€λ¬μ λ©μλλͺ μ΄
getAllPostStatistics
μμgetAllPostsStatistics
λ‘ λ³κ²½λ¨μ λ°λΌ λΌμ°ν° μ°κ²°λ μ μ ν μ λ°μ΄νΈλμμ΅λλ€. μ΄λ νμ€νλ λ€μ΄λ° 컨벀μ μ μ μ§νλ λ° νμν λ³κ²½μ¬νμ λλ€.src/controllers/post.controller.ts (3)
16-16
: λ©μλλͺ νμ€ν, μΌκ΄μ± ν₯μ
getAllPost
μμgetAllPosts
λ‘ λ©μλλͺ μ λ³κ²½νμ¬ λ³΅μνμ μ¬μ©ν¨μΌλ‘μ¨ μ΄λ¦ κ·μΉμ μΌκ΄μ±μ κ°μ νμ΅λλ€. μ΄λ μ½λ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ ν₯μμν΅λλ€.
41-41
: λ©μλλͺ νμ€ν, μΌκ΄μ± ν₯μ
getAllPostStatistics
μμgetAllPostsStatistics
λ‘ λ©μλλͺ μ λ³κ²½νμ¬ λ³΅μνμ μ¬μ©ν¨μΌλ‘μ¨ μ΄λ¦ κ·μΉμ μΌκ΄μ±μ κ°μ νμ΅λλ€. μ΄λ μ½λ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ ν₯μμν΅λλ€.
49-49
: μλΉμ€ λ©μλ νΈμΆ μ λ°μ΄νΈ, μΌκ΄μ± ν₯μμλΉμ€ λ©μλ νΈμΆμ
this.postService.getAllPostStatistics
μμthis.postService.getAllPostsStatistics
λ‘ λ³κ²½νμ¬ λ€μ΄λ° 컨벀μ μ μΌκ΄μ±μ μ μ§νμ΅λλ€. μ΄λ λ©μλλͺ λ³κ²½μ λ°λ₯Έ νμμ μΈ μ λ°μ΄νΈμ λλ€.src/repositories/__test__/post.repo.integration.test.ts (5)
17-106
: ν΅ν© ν μ€νΈ μ€μ μ΄ μ ꡬνλμμ΅λλ€.ν μ€νΈ νκ²½ μ€μ μ΄ λ§€μ° μ²΄κ³μ μΌλ‘ ꡬνλμμ΅λλ€. μ€μ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°νμ¬ ν μ€νΈνλ μ κ·Ό λ°©μμ΄ μ’μΌλ©°, λ€μκ³Ό κ°μ μ μ΄ μΈμμ μ λλ€:
- ν μ€νΈ λ°μ΄ν° ID μ μ
- SSL μ€μ μ‘°κ±΄λΆ μ μ©
- ν μ€νΈ λ°μ΄ν° μ‘΄μ¬ μ¬λΆ νμΈ λ° κ²½κ³ λ‘κΉ
- μ μ ν μλ¬ μ²λ¦¬ λ° μ°κ²° μ’ λ£ λ‘μ§
ν μ€νΈ λ°μ΄ν°κ° μμ κ²½μ°μλ ν μ€νΈκ° μ€ν¨νμ§ μλλ‘ κ²½κ³ λ‘κΉ μ μΆκ°ν λΆλΆμ΄ νΉν μ’μ΅λλ€.
111-262
: findPostsByUserId λ©μλμ λν ν¬κ΄μ μΈ ν μ€νΈ μΌμ΄μ€κ° μ ꡬνλμμ΅λλ€.λ€μν μλ리μ€λ₯Ό ν μ€νΈνλ 체κ³μ μΈ μ κ·Ό λ°©μμ΄ μ’μ΅λλ€:
- κΈ°λ³Έ μ‘°ν κΈ°λ₯ κ²μ¦
- νμ΄μ§λ€μ΄μ λ©μ»€λμ¦ κ²μ¦
- λ€μν μ λ ¬ μ΅μ ν μ€νΈ
- μ€λ¦μ°¨μ/λ΄λ¦Όμ°¨μ μ λ ¬ κ²μ¦
- limit νλΌλ―Έν° κΈ°λ₯ κ²μ¦
- 컀μ κΈ°λ° νμ΄μ§λ€μ΄μ μ μΌκ΄μ± κ²μ¦
νΉν μΆ©λΆν λ°μ΄ν°κ° μλ κ²½μ°λ₯Ό κ³ λ €νμ¬ μ‘°κ±΄λΆ ν μ€νΈλ₯Ό ꡬνν λΆλΆμ΄ μ€λ¬΄μ μΈ μ κ·ΌμΌλ‘ μ’μ΅λλ€.
269-276
: getTotalPostCounts ν μ€νΈκ° κ°κ²°νκ³ λͺ νν©λλ€.κ°λ¨νμ§λ§ νμμ μΈ κ²μ¦μ μννκ³ μμ΅λλ€:
- λ°ν κ°μ΄ μ«μ νμ μΈμ§ νμΈ
- λ°ν κ°μ΄ 0 μ΄μμΈμ§ νμΈ
μ΄ ν μ€νΈλ κ°κ²°νλ©΄μλ λ©μλμ ν΅μ¬ κΈ°λ₯μ μ κ²μ¦νκ³ μμ΅λλ€.
281-321
: getYesterdayAndTodayViewLikeStats λ©μλμ λν ν μ€νΈκ° 체κ³μ μ λλ€.λ€μκ³Ό κ°μ λ€μν κ²μ¦ ν¬μΈνΈλ₯Ό ν¬ν¨νκ³ μμ΄ μ’μ΅λλ€:
- λ°ν κ°μ²΄μ ꡬ쑰 κ²μ¦
- ν΅κ³ κ°μ΄ μμκ° μλμ§ νμΈ
- κ°λ€μ΄ μ«μλ‘ λ³ν κ°λ₯νμ§ νμΈ
- μ‘΄μ¬νμ§ μλ μ¬μ©μ IDμ λν κΈ°λ³Έκ° μ²λ¦¬ κ²μ¦
νΉν μ£μ§ μΌμ΄μ€(μ‘΄μ¬νμ§ μλ μ¬μ©μ)λ₯Ό ν μ€νΈνλ λΆλΆμ΄ μ κ³ λ €λμμ΅λλ€.
327-425
: findPostByPostId λ©μλ ν μ€νΈκ° λ€μν μλ리μ€λ₯Ό ν¬ν¨νκ³ μμ΅λλ€.μ¬λ¬ μλ리μ€μ μ£μ§ μΌμ΄μ€μ λν ν μ€νΈκ° ν¬ν¨λμ΄ μμ΄ μ’μ΅λλ€:
- κΈ°λ³Έ μ‘°ν κΈ°λ₯ κ²μ¦
- λ μ§ λ²μ νν°λ§ κ²μ¦
- λ μ§ μ€λ¦μ°¨μ μ λ ¬ κ²μ¦
- μ‘΄μ¬νμ§ μλ κ²μλ¬Ό IDμ λν μ²λ¦¬ κ²μ¦
- λ μ§ νμ λ³ν κ²μ¦
- ν΅κ³ κ°μ νμ κ²μ¦
λ°μ΄ν°κ° μλ κ²½μ°λ₯Ό κ³ λ €νμ¬ μ‘°κ±΄λΆ ν μ€νΈλ₯Ό ꡬνν μ κ·Όλ μ’μ΅λλ€.
src/services/post.service.ts (5)
6-6
: μμ±μ νμμ΄ κ°μ λμμ΅λλ€.μ½λ ν¬λ§·ν μ΄ μΌκ΄λκ² μ μ©λμμ΅λλ€.
34-34
: λ©μλλͺ μ΄ μΌκ΄μ± μκ² λ³κ²½λμμ΅λλ€.
getAllPostStatistics
μμgetAllPostsStatistics
λ‘ λ©μλλͺ μ΄ λ³κ²½λμ΄ λ³΅μνμ μ¬μ©ν λͺ λͺ κ·μΉμ΄ μΌκ΄λκ² μ μ©λμμ΅λλ€. μ΄λ μ½λ μ 체μ μΌκ΄μ±μ ν₯μμν΅λλ€.
48-48
: μλ¬ λ‘κ·Έ λ©μμ§κ° λ©μλλͺ κ³Ό μΌμΉνλλ‘ μ λ°μ΄νΈλμμ΅λλ€.λ©μλλͺ λ³κ²½μ λ§μΆ° μλ¬ λ‘κ·Έ λ©μμ§λ μ λ°μ΄νΈλ μ μ΄ μ’μ΅λλ€.
70-70
: λ§€κ°λ³μλͺ μ΄ λ λͺ ννκ² λ³κ²½λμμ΅λλ€.
postId
μμpostUUUID
λ‘ λ§€κ°λ³μλͺ μ΄ λ³κ²½λμ΄ μ€μ λ°μ΄ν° νμ μ λ μ λ°μνκ² λμμ΅λλ€. μ΄λ μ½λμ μκΈ° λ¬Έμν νΉμ±μ ν₯μμν΅λλ€.
79-79
: 리ν¬μ§ν 리 λ©μλ νΈμΆμ΄ μ λ°μ΄νΈλ λ§€κ°λ³μλͺ κ³Ό μΌμΉνλλ‘ μμ λμμ΅λλ€.λ§€κ°λ³μλͺ λ³κ²½μ λ§μΆ° 리ν¬μ§ν 리 λ©μλ νΈμΆλ μ μ ν μ λ°μ΄νΈλμμ΅λλ€.
src/repositories/post.repository.ts (5)
6-6
: μμ±μ νμμ΄ κ°μ λμμ΅λλ€.μ½λ ν¬λ§·ν μ΄ μΌκ΄λκ² μ μ©λμμ΅λλ€.
165-194
: 쿼리 κ΅¬μ± λ‘μ§μ΄ λͺ¨λνλμ΄ κ°μ λμμ΅λλ€.
findPostByPostId
λ©μλμ SQL 쿼리 ꡬμ±μ΄ λ€μκ³Ό κ°μ΄ ν¬κ² κ°μ λμμ΅λλ€:
- κΈ°λ³Έ 쿼리, λ μ§ νν°λ§, μ λ ¬ λΆλΆμ΄ λͺ ννκ² λΆλ¦¬λ¨
- λ μ§ νν°λ§ μ‘°κ±΄μ΄ μ‘΄μ¬ν λλ§ μ μ©λλ λ‘μ§μ΄ λͺ νν΄μ§
- μ΅μ’ 쿼리λ₯Ό κ° λΆλΆμ μ‘°ν©νμ¬ κ΅¬μ±νλ λ°©μμΌλ‘ κ°λ μ± ν₯μ
- λ§€κ°λ³μ λ°°μ΄μ 쑰건μ λ°λΌ ꡬμ±νλ λ°©μμΌλ‘ κ°μ λ¨
μ΄λ¬ν κ°μ μ μ½λμ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ ν¬κ² ν₯μμν΅λλ€. νΉν μ‘°κ±΄λΆ μΏΌλ¦¬ ꡬμ±μ΄ λͺ νν΄μ Έ μ€λ₯ λ°μ κ°λ₯μ±μ΄ μ€μ΄λ€μμ΅λλ€.
197-197
: μλ¬ λ‘κ·Έ λ©μμ§ νμμ΄ κ°μ λμμ΅λλ€.λ‘κ·Έ λ©μμ§μ νμμ΄ λ μΌκ΄λκ² μμ λμμ΅λλ€. μ½λ‘ λ€μ κ³΅λ°±μ΄ μ κ±°λμ΄ λ€λ₯Έ λ‘κ·Έ λ©μμ§μ μΌκ΄λ νμμ μ μ§νκ² λμμ΅λλ€.
202-202
: λ§€κ°λ³μλͺ μ΄ λ λͺ ννκ² λ³κ²½λμμ΅λλ€.
postId
μμpostUUUID
λ‘ λ§€κ°λ³μλͺ μ΄ λ³κ²½λμ΄ μ€μ λ°μ΄ν° νμ μ λ μ λ°μνκ² λμμ΅λλ€. μ΄λ μ½λμ μκΈ° λ¬Έμν νΉμ±μ ν₯μμν΅λλ€.
217-217
: values λ°°μ΄μ΄ μ λ°μ΄νΈλ λ§€κ°λ³μλͺ κ³Ό μΌμΉνλλ‘ μμ λμμ΅λλ€.λ§€κ°λ³μλͺ λ³κ²½μ λ§μΆ° values λ°°μ΄λ μ μ ν μ λ°μ΄νΈλμμ΅λλ€.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
π§Ή Nitpick comments (1)
README.md (1)
33-37
: λ‘컬 ν μ€ν κ°μ΄λλΌμΈ μΆκ° κ²ν
λΌμΈ 33λΆν° 37κΉμ§ λ‘컬 νκ²½μμ DBMS μ°κ²° μ ν μ€νΈ μΌμ΄μ€ κ° λ³κ²½μ κ΄ν μ£Όμλ₯Ό μΆκ°ν μ μ λ§€μ° μ μ©ν©λλ€. ν΄λΉ μλ΄ λ¬Έκ΅¬κ° ν μ€νΈ μν μ λ°μν μ μλ λ¬Έμ λ₯Ό λ―Έμ°μ λ°©μ§ν μ μλλ‘ λκ³ μμ΅λλ€. λ€λ§, ν₯ν μ¬μ©μ νΌλμ μ€μ΄κΈ° μν΄ μμλ₯Ό μΆκ°νκ±°λ λ¬Έμ₯μ μ‘°κΈ λ κ°κ²°νκ² λ€λ¬λ κ²μ κ³ λ €ν΄λ³Ό μ μμ΅λλ€.
π Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
π Files selected for processing (1)
README.md
(3 hunks)
π Additional comments (2)
README.md (2)
4-4
: Node.js λ²μ νκΈ° ν¬λ§· λ³κ²½ νμΈ
README νμΌμμ νμ Node.js λ²μ μnode 20+
νμμΌλ‘ μ¬ν¬λ§·ν μ μ κ°λ μ±μ λμ΄λ λ° λμμ΄ λ©λλ€. λ³κ²½μ¬νμ΄ λͺ νν΄ λ³΄μ΄λ©°, κΈ°μ‘΄ μ€νμΌ κ°μ΄λμλ λΆν©νλ κ² κ°μ΅λλ€.
55-67
: νλ‘μ νΈ κ΅¬μ‘° μ¬μ λ ¬ λ° μ€λͺ κ°ν κ²ν
νλ‘μ νΈ κ΅¬μ‘° μΉμ μμ λλ ν°λ¦¬ νΈλ¦¬μ λ€μ¬μ°κΈ°μ μ£Όμ μμ μ΄ κ°λ μ±κ³Ό μ΄ν΄λλ₯Ό λμ΄λλ° κΈ°μ¬νκ³ μμ΅λλ€. κ° λλ ν°λ¦¬μ μν μ΄ λͺ νν λλ¬λλ©°, ꡬ쑰μ μΈ μΌκ΄μ± λν μ μ§λκ³ μλ κ²μΌλ‘ 보μ λλ€.
π₯ λ³κ²½ μ¬ν
κ²μκΈ λν μΌ μ λ ¬ μ΄μ λ°°ν¬ μ΄ν ν«ν½μ€ / ν μ€νΈ μ½λ κ°ν
μμΌλ‘ api λ‘컬 ν μ€ν μ μν΄μ
post.repo.integration.test
λ₯Ό νμ μ°Έμ‘°ν΄μ£ΌμΈμ!!! (readme μ μΆκ°ν¨)π· κ΄λ ¨ μ΄μ
πΈ μ€ν¬λ¦°μ· (UI λ³κ²½ μ νμ)
μμ΅λλ€!
π 체ν¬λ¦¬μ€νΈ
Summary by CodeRabbit
Chores
Refactor
Tests
Documentation