Skip to content
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

refact :: [#105] param 리팩토링 #120

Merged
merged 1 commit into from
Nov 11, 2024
Merged

Conversation

cyj513
Copy link
Collaborator

@cyj513 cyj513 commented Nov 11, 2024

개요

  • param 리팩토링

작업사항

  • param 리팩토링

UI

close #105

Summary by CodeRabbit

  • 새로운 기능

    • 로그인 요청, 버그 보고서, 교실 이동 신청, 조기 퇴근 신청, 알림 구독 등 다양한 API 요청에서 JSON 인코딩 방식으로 변경되어 요청 처리 방식이 개선되었습니다.
    • UI 요소의 가시성을 동적으로 관리하는 로직이 추가되어 사용자 경험이 향상되었습니다.
  • 버그 수정

    • 알림 및 주말 급식 API의 요청 매개변수 포맷이 개선되어 가독성이 향상되었습니다.
  • 문서화

    • 여러 요청 매개변수 구조체에 대한 CodingKeys 열거형이 추가되어 JSON 인코딩 호환성이 향상되었습니다.

@cyj513 cyj513 added the REFACT 리팩토링을 할 경우 label Nov 11, 2024
@cyj513 cyj513 self-assigned this Nov 11, 2024
Copy link

coderabbitai bot commented Nov 11, 2024

Walkthrough

이 변경 사항은 여러 API의 task 속성을 업데이트하여 요청 매개변수를 보다 구조화된 방식으로 인코딩하는 방식으로 전환했습니다. 구체적으로, .requestParameters를 사용하여 매개변수를 수동으로 전달하는 대신, .requestJSONEncodable(req)를 사용하여 요청 객체를 JSON 형식으로 직접 인코딩합니다. 또한, 일부 구조체에 CodingKeys 열거형을 추가하여 JSON 키와 Swift 속성 간의 매핑을 정의했습니다. 몇몇 파일은 삭제되었습니다.

Changes

파일 경로 변경 요약
Projects/Data/Sources/API/AuthAPI.swift .login 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경
Projects/Data/Sources/API/BugAPI.swift .bugReport 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경; 메서드 시그니처 업데이트
Projects/Data/Sources/API/ClassroomAPI.swift classroomMoveApply 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경
Projects/Data/Sources/API/EarlyLeaveAPI.swift earlyLeaveApply 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경
Projects/Data/Sources/API/NotificationAPI.swift subscribeNotification 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경
Projects/Data/Sources/API/OutingAPI.swift .outingApply 케이스에서 .requestParameters 대신 .requestJSONEncodable(req)로 변경
Projects/Data/Sources/API/SchoolMealAPI.swift fetchSchoolMeal 케이스에서 매개변수 형식 개선
Projects/Data/Sources/API/SelfStudyAPI.swift fetchSelfStudyTeacher 케이스에서 매개변수 형식 개선
Projects/Data/Sources/API/WeekendMealAPI.swift weekendMealApply 케이스에서 매개변수 형식 개선
Projects/Domain/Sources/Parameter/Auth/LoginRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/Bug/BugRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/ClassRoomMove/ClassRoomMoveRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/EarlyLeave/EarlyLeaveApplyRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/Notification/NotificationRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/Outing/OutingApplyRequestParams.swift CodingKeys 열거형 추가하여 JSON 키 매핑
Projects/Domain/Sources/Parameter/Profile/ProfileRequestParams.swift 파일 삭제
Projects/Domain/Sources/Parameter/SchoolMeal/SchoolMealRequestParams.swift 파일 삭제
Projects/Domain/Sources/Parameter/SelfStudy/SelfStudyRequestParams.swift 파일 삭제
Projects/Domain/Sources/Parameter/WeekendMeal/WeekendMealRequestParams.swift 파일 삭제
Projects/Presentation/Sources/Scene/Home/HomeViewController.swift 레이아웃 조정 및 바인딩 로직 수정

Assessment against linked issues

Objective Addressed Explanation
파라미터 리팩토링 (#105)
서버 통신 시 encodable 파라미터를 보내는 방식으로 변경 (#105)

🐇 변화의 바람이 불어와
요청이 JSON으로 변해가네,
코드가 더 깔끔해졌어요,
매개변수는 이제 더 똑똑해,
새로운 세상, 함께 뛰어보자! 🌟


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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

🧹 Outside diff range and nitpick comments (9)
Projects/Domain/Sources/Parameter/EarlyLeave/EarlyLeaveApplyRequestParams.swift (1)

15-18: CodingKeys 구현이 잘 되었습니다!

서버와의 통신을 위해 startTime"start"로 매핑하는 방식이 적절합니다. JSON 인코딩 방식으로의 전환이 잘 이루어졌습니다.

매핑된 키에 대한 설명을 문서화하면 좋을 것 같습니다:

 enum CodingKeys: String, CodingKey {
     case reason
+    /// 서버 API 스펙에 맞춰 'startTime'을 'start'로 매핑
     case startTime = "start"
 }
Projects/Domain/Sources/Parameter/Notification/NotificationRequestParams.swift (1)

17-20: JSON 인코딩 키 매핑이 적절하게 구현되었습니다.

CodingKeys 열거형을 통해 Swift의 camelCase 속성명을 API의 snake_case 형식으로 적절하게 매핑했습니다. 이는 일반적인 REST API 네이밍 컨벤션을 따르는 좋은 구현입니다.

다른 API 요청 파라미터들도 이와 같은 방식으로 일관성 있게 구현하는 것이 좋습니다.

Projects/Domain/Sources/Parameter/Bug/BugRequestParams.swift (1)

Line range hint 7-7: fileName 배열의 Optional 처리 개선이 필요합니다.

fileName 프로퍼티가 [String?]로 선언되어 있지만, 이니셜라이저에서는 [String]을 받고 있습니다. 이는 잠재적인 문제를 일으킬 수 있습니다.

다음과 같이 개선하는 것을 제안드립니다:

-    public let fileName: [String?]
+    public let fileName: [String]

     public init(
         title: String,
         content: String,
         fileName: [String]
     ) {

또는 정말로 Optional 값이 필요하다면:

     public init(
         title: String,
         content: String,
-        fileName: [String]
+        fileName: [String?]
     ) {

Also applies to: 16-16

Projects/Domain/Sources/Parameter/Auth/LoginRequestParams.swift (1)

Line range hint 1-23: 문서화 추가를 제안드립니다.

구조체와 프로퍼티에 대한 문서화 주석을 추가하면 코드의 가독성과 유지보수성이 향상될 것 같습니다.

다음과 같은 문서화를 추가하는 것을 고려해보세요:

 import Foundation

+/// 로그인 요청에 필요한 파라미터를 정의하는 구조체입니다.
 public struct LoginRequestParams: Encodable {
+    /// 사용자 계정 ID
     public let accountID: String
+    /// 사용자 비밀번호
     public let password: String
+    /// 디바이스 토큰
     public let deviceToken: String
Projects/Domain/Sources/Parameter/ClassRoomMove/ClassRoomMoveRequestParams.swift (1)

21-26: 매핑 규칙에 대한 문서화가 필요합니다.

서버와의 일관된 통신을 위해 매핑 규칙에 대한 문서화를 추가하는 것이 좋겠습니다.

다음과 같이 문서 주석을 추가하는 것을 제안합니다:

+    /// Defines the mapping between Swift property names and JSON keys for server communication.
+    /// - Properties:
+    ///   - floor: Maintains original key name
+    ///   - classroomName: Maps to "classroom_name" in snake_case
+    ///   - startPeriod: Maps to "start" for simplified key
+    ///   - endPeriod: Maps to "end" for simplified key
     enum CodingKeys: String, CodingKey {
Projects/Domain/Sources/Parameter/Outing/OutingApplyRequestParams.swift (1)

23-28: 키 매핑에 대한 문서화를 추가하면 좋을 것 같습니다.

다른 개발자들이 서버 API와의 매핑을 쉽게 이해할 수 있도록, CodingKeys enum 위에 매핑에 대한 간단한 문서 주석을 추가하는 것을 제안드립니다.

+    /// Defines the mapping between Swift property names and JSON keys for server communication:
+    /// - startTime -> "start"
+    /// - endTime -> "end"
+    /// - applicationType -> "application_type"
+    /// - reason remains as is
     enum CodingKeys: String, CodingKey {
Projects/Data/Sources/API/EarlyLeaveAPI.swift (1)

42-42: 매개변수 처리 방식의 개선이 잘 이루어졌습니다! 👍

.requestParameters에서 .requestJSONEncodable로의 전환은 다음과 같은 이점을 제공합니다:

  • 매개변수의 수동 매핑 제거
  • Swift의 Codable 프로토콜 활용
  • 코드 유지보수성 향상
  • 매개변수 매핑 오류 가능성 감소

이러한 접근 방식을 다른 API 엔드포인트에도 일관되게 적용하는 것이 좋습니다.

Projects/Data/Sources/API/BugAPI.swift (1)

55-56: 매개변수 처리 방식이 개선되었습니다!

.requestParameters에서 .requestJSONEncodable로의 전환은 다음과 같은 이점이 있습니다:

  • 타입 안정성 향상
  • 코드 가독성 개선
  • 유지보수성 향상
  • Swift의 Codable 프로토콜을 활용한 더 나은 구조화

이는 PR의 목표인 매개변수 리팩토링에 잘 부합합니다.

추가 제안: 다른 API 엔드포인트들도 이와 같은 방식으로 일관성 있게 리팩토링하는 것이 좋을 것 같습니다.

Projects/Presentation/Sources/Scene/Home/HomeViewController.swift (1)

258-260: 공지사항 뷰의 가시성 처리를 개선하면 좋겠습니다.

현재 구현은 높이가 0일 때만 뷰를 숨기는 로직을 가지고 있습니다. 다음과 같은 개선을 고려해보세요:

  1. 데이터 상태에 따른 명시적인 처리
  2. 로딩 상태 표시
  3. 에러 상태 처리

다음과 같이 개선할 수 있습니다:

 output.noticeViewHeight.asObservable()
     .withUnretained(self)
     .bind { owner, height in
-        if height == 0 {
-            owner.noticeStackView.isHidden = true
-        }
+        // 상태에 따른 UI 처리
+        switch height {
+        case 0:
+            owner.noticeStackView.isHidden = true
+            // 필요시 empty state 표시
+        case -1:
+            owner.noticeStackView.isHidden = true
+            // 에러 상태 표시
+        default:
+            owner.noticeStackView.isHidden = false
+        }
         owner.noticeCollectionView.snp.remakeConstraints {
             $0.height.equalTo(height)
         }
     }.disposed(by: disposeBag)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 1f166fe and 26b3d75.

📒 Files selected for processing (21)
  • Projects/Data/Sources/API/AuthAPI.swift (1 hunks)
  • Projects/Data/Sources/API/BugAPI.swift (1 hunks)
  • Projects/Data/Sources/API/ClassroomAPI.swift (1 hunks)
  • Projects/Data/Sources/API/EarlyLeaveAPI.swift (1 hunks)
  • Projects/Data/Sources/API/NotificationAPI.swift (1 hunks)
  • Projects/Data/Sources/API/OutingAPI.swift (1 hunks)
  • Projects/Data/Sources/API/SchoolMealAPI.swift (1 hunks)
  • Projects/Data/Sources/API/SelfStudyAPI.swift (1 hunks)
  • Projects/Data/Sources/API/WeekendMealAPI.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/Auth/LoginRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/Bug/BugRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/ClassRoomMove/ClassRoomMoveRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/EarlyLeave/EarlyLeaveApplyRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/Home/HomeEmpty.swift (0 hunks)
  • Projects/Domain/Sources/Parameter/Notification/NotificationRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/Outing/OutingApplyRequestParams.swift (1 hunks)
  • Projects/Domain/Sources/Parameter/Profile/ProfileRequestParams.swift (0 hunks)
  • Projects/Domain/Sources/Parameter/SchoolMeal/SchoolMealRequestParams.swift (0 hunks)
  • Projects/Domain/Sources/Parameter/SelfStudy/SelfStudyRequestParams.swift (0 hunks)
  • Projects/Domain/Sources/Parameter/WeekendMeal/WeekendMealRequestParams.swift (0 hunks)
  • Projects/Presentation/Sources/Scene/Home/HomeViewController.swift (2 hunks)
💤 Files with no reviewable changes (5)
  • Projects/Domain/Sources/Parameter/Home/HomeEmpty.swift
  • Projects/Domain/Sources/Parameter/Profile/ProfileRequestParams.swift
  • Projects/Domain/Sources/Parameter/SchoolMeal/SchoolMealRequestParams.swift
  • Projects/Domain/Sources/Parameter/SelfStudy/SelfStudyRequestParams.swift
  • Projects/Domain/Sources/Parameter/WeekendMeal/WeekendMealRequestParams.swift
✅ Files skipped from review due to trivial changes (3)
  • Projects/Data/Sources/API/SchoolMealAPI.swift
  • Projects/Data/Sources/API/SelfStudyAPI.swift
  • Projects/Data/Sources/API/WeekendMealAPI.swift
🔇 Additional comments (9)
Projects/Domain/Sources/Parameter/Bug/BugRequestParams.swift (1)

19-22: CodingKeys 구현이 적절합니다!

JSON 인코딩을 위한 CodingKeys 열거형이 잘 구현되었습니다. fileNamefile_name으로 매핑한 것은 서버 API의 snake_case 명명 규칙을 따르는 좋은 접근입니다.

Projects/Domain/Sources/Parameter/Auth/LoginRequestParams.swift (1)

18-22: CodingKeys 구현이 적절합니다!

JSON 키 매핑이 명확하게 정의되어 있으며, API 네이밍 컨벤션을 잘 따르고 있습니다. snake_case를 사용하는 서버 API와 camelCase를 사용하는 Swift 코드 간의 매핑이 올바르게 구현되었습니다.

Projects/Domain/Sources/Parameter/ClassRoomMove/ClassRoomMoveRequestParams.swift (1)

21-26: CodingKeys 구현이 적절합니다!

서버 통신을 위한 매개변수 인코딩이 올바르게 구현되었습니다. Swift의 camelCase 속성들이 서버의 snake_case 형식으로 잘 매핑되어 있습니다.

Projects/Domain/Sources/Parameter/Outing/OutingApplyRequestParams.swift (1)

23-28: CodingKeys 구현이 적절합니다!

서버 API와의 일관성을 위해 JSON 키를 적절하게 매핑했습니다. 특히 snake_case를 사용하는 서버 컨벤션과 잘 맞춰져 있습니다.

Projects/Data/Sources/API/OutingAPI.swift (1)

42-42: 매개변수 처리 방식이 개선되었습니다.

.requestParameters에서 .requestJSONEncodable로의 전환은 다음과 같은 이점이 있습니다:

  • 타입 안정성 향상
  • 컴파일 시점에서의 오류 검출
  • 코드 가독성 개선

API 계약과의 일치성을 확인하기 위해 다음 스크립트를 실행하세요:

✅ Verification successful

Let me gather more information about the API contract and the encoding.


매개변수 인코딩이 API 계약과 일치함을 확인했습니다.

OutingApplyRequestParams 구조체의 CodingKeys가 다음과 같이 적절하게 정의되어 있습니다:

  • reason"reason"
  • startTime"start"
  • endTime"end"
  • applicationType"application_type"

.requestJSONEncodable로의 전환이 안전하게 이루어졌습니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: OutingApplyRequestParams 구조체의 CodingKeys가 API 계약과 일치하는지 확인

# Test: OutingApplyRequestParams 구조체의 정의와 CodingKeys 검색
rg -A 10 "OutingApplyRequestParams"

Length of output: 4850


Script:

#!/bin/bash
# Check for any custom encoding logic or CodingKeys
rg -A 5 "CodingKeys" Projects/Domain/Sources/Parameter/Outing/OutingApplyRequestParams.swift

# Check the API endpoint and method
rg -A 10 "var path.*case .outingApply" Projects/Data/Sources/API/OutingAPI.swift
rg -A 10 "var method.*case .outingApply" Projects/Data/Sources/API/OutingAPI.swift

Length of output: 439

Projects/Data/Sources/API/ClassroomAPI.swift (1)

42-42: 매개변수 처리 방식이 개선되었습니다! 👍

.requestParameters에서 .requestJSONEncodable로의 전환은 다음과 같은 이점을 제공합니다:

  • 타입 안정성 향상
  • 런타임 오류 가능성 감소
  • 구조화된 데이터를 통한 유지보수성 개선

이는 PR의 목표인 매개변수 리팩토링에 잘 부합합니다.

Projects/Data/Sources/API/AuthAPI.swift (1)

42-42: 매개변수 처리 방식이 개선되었습니다.

.requestParameters 대신 .requestJSONEncodable(req)를 사용하도록 변경한 것은 다음과 같은 이점이 있습니다:

  • 타입 안정성 향상
  • 코드 가독성 개선
  • 매개변수 관리의 일관성 확보

LoginRequestParams 구조체의 구현을 확인하기 위해 다음 스크립트를 실행합니다:

✅ Verification successful

매개변수 리팩토링이 적절하게 구현되었습니다.

LoginRequestParams는 다음과 같이 올바르게 구현되어 있습니다:

  • Encodable 프로토콜을 준수하여 JSON 인코딩 가능
  • 필요한 모든 로그인 파라미터(accountID, password, deviceToken)가 포함
  • 적절한 접근 제어자와 초기화 구문 구현

따라서 .requestJSONEncodable(req) 사용은 안전하고 타입 안정성이 보장됩니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# LoginRequestParams 구조체 구현 확인

# LoginRequestParams 정의 검색
rg -t swift "struct LoginRequestParams"

# Codable 준수 여부 확인
ast-grep --pattern 'struct LoginRequestParams: Codable {
  $$$
}'

Length of output: 219


Script:

#!/bin/bash
# LoginRequestParams 구조체의 상세 구현 확인
rg -t swift -A 10 "struct LoginRequestParams"

# AuthAPI에서 LoginRequestParams 사용 패턴 확인
rg -t swift -A 5 "LoginRequestParams" "Projects/Data/Sources/API/AuthAPI.swift"

Length of output: 1254

Projects/Data/Sources/API/NotificationAPI.swift (1)

42-42: 매개변수 처리 방식의 개선이 확인되었습니다.

requestParameters 대신 requestJSONEncodable을 사용하는 것은 좋은 변경사항입니다. 이는:

  • 타입 안정성 향상
  • 런타임 오류 가능성 감소
  • 코드 유지보수성 개선
    등의 이점이 있습니다.

NotificationRequestParams의 인코딩 구현을 확인하기 위해 다음 스크립트를 실행하세요:

✅ Verification successful

The search results show that NotificationRequestParams is properly implemented as an Encodable struct with clear properties (topic and isSubscribed). Since no explicit CodingKeys enum is defined, the default encoding will use the property names as keys, which is sufficient for this case. Let me provide the final response in Korean:

매개변수 인코딩 구현이 적절하게 되어있음을 확인했습니다.

NotificationRequestParamsEncodable 프로토콜을 채택하고 있으며, 필요한 모든 속성들이 명확하게 정의되어 있습니다. 기본 인코딩 동작으로 충분하므로 별도의 CodingKeys 구현이 필요하지 않습니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# NotificationRequestParams의 CodingKeys 구현 확인
rg -A 10 "NotificationRequestParams"

Length of output: 4992

Projects/Presentation/Sources/Scene/Home/HomeViewController.swift (1)

39-45: 레이아웃 마진 설정이 적절합니다.

스택뷰의 레이아웃 마진이 잘 설정되어 있습니다. 하단 여백 16은 콘텐츠 간의 적절한 간격을 제공합니다.

@cyj513 cyj513 merged commit aec3c4d into develop Nov 11, 2024
@cyj513 cyj513 deleted the feature/#105-param_refactoring branch November 11, 2024 06:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
REFACT 리팩토링을 할 경우
Projects
None yet
Development

Successfully merging this pull request may close these issues.

request param 리팩토링
1 participant