-
Notifications
You must be signed in to change notification settings - Fork 1
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
[๐ Bug] ํ์๋ผ์ธ ์กฐํ API ๋ด ์ฝ๋ฉํธ ๊ฐ์ ์กฐํ ์ฟผ๋ฆฌ ์ค๋ฅ ์์ #254
Comments
egg528
added a commit
that referenced
this issue
Apr 11, 2024
ManHyuk
added a commit
that referenced
this issue
Apr 13, 2024
[๐ Bug] ํ์๋ผ์ธ ์กฐํ API ๋ด ์ฝ๋ฉํธ ๊ฐ์ ์กฐํ ์ฟผ๋ฆฌ ์ค๋ฅ ์์
egg528
added a commit
that referenced
this issue
Apr 26, 2024
* feat: remove forward header optiion * refactor : birth ๊ด๋ จ ์ ์ ์ ๋ณด ์ ๋ฐ์ดํธ API์ birth๋ฅผ nullable๋ก ๋ณ๊ฒฝ (#206) (#207) * feat(#209): spring security authorization_request_not_found ์์ (#210) * [๐ Feature] Goal ๋๊ธ API ๊ฐ๋ฐ (#208) * feat : ๋๊ธ ์ํฐํฐ์ repository ์์ฑ (#196) * feat : Goal ๋๊ธ ์ค๋ฆ์ฐจ์ ์ ์ฒด ์กฐํ ๋ฉ์๋ ๊ตฌํ (#196) * feat : Goal ๋๊ธ ์์ฑ ์ญ์ ๋ฉ์๋ ๊ตฌํ (#196) * feat : Goal์ ๋ง์ง๋ง ๋๊ธ Read ์๊ฐ์ ์ ์ฅํ๋ GoalCommentReadTime ๊ตฌํ (#196) * feat : Goal์ ์์ฑ์๊ฐ ์ฝ์ง ์์ ๋๊ธ์ด ์๋์ง ํ์ธํ๋ ๋ฉ์๋ ๊ตฌํ (#196) * feat : ๋น๋๊ธฐ์ ์ผ๋ก ๋ง์ง๋ง ๋๊ธ ํ์ธ ์๊ฐ์ updateํ๋ ๋ฉ์๋ ๊ตฌํ (#196) * ktlint formatting * refactor : ๋ง์ง๋ง ๋๊ธ Read ์๊ฐ์ ๋ถ๋ฆฌ๋ ํ ์ด๋ธ์ด ์๋ Goal์ด ๊ฐ๋๋ก ๋ณ๊ฒฝ (#196) * feat : ๋๊ธ ์กฐํ์ ์์ฒญ์๊ฐ Goal์ ์ฃผ์ธ์ด๋ผ๋ฉด comment read time์ updateํ๋ ์ด๋ฒคํธ ๋ฐํ (#196) * test : Goal ํ๋ ์ถ๊ฐ์ ๋ฐ๋ฅธ ํ ์คํธ ์ฝ๋ ๋ณ๊ฒฝ (#196) * refactor : CoreApiException์ด ์ง์ errorMessage๋ฅผ ์ ๋ ฅ ๋ฐ์ ์ ์๋๋ก ๋ณ๊ฒฝ (#196) * refactor : Comment๊ฐ ์ค์ค๋ก ์ ํ ์กฐ๊ฑด์ ๊ฒ์ฆํ๋๋ก ๋ณ๊ฒฝ (#196) * refactor : CommentService์ ํ๋๋ค์ private ์ ๊ทผ ์ ํ์ ์ถ๊ฐ (#196) * refactor : comment require ์กฐ๊ฑด ์ ์ (#196) * refactor : ๋ถํ์ํ ํธ๋์ญ์ ์ ํ ๋ฐ Transactional ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ ๊ฑฐ (#196) * refactor : ๋ถํ์ํ Goal ์กฐํ ์ฟผ๋ฆฌ ์ ๊ฑฐ (#196) * test : Comment ๊ด๋ จ ๊ธฐ๋ฅ ํตํฉ ํ ์คํธ ์ฝ๋ ์์ฑ (#196) * ktlint formatting * refactor : getAllByGoalId ๋ฉ์๋์ ์ด๋ฆ์ ์ญํ ์ ๋ง๊ฒ findAllByGoalId๋ก ๋ณ๊ฒฝ (#196) * feat : ๋๊ธ API ๊ตฌํ (#196) * chore : ์๋ชป ์์ฑ๋ ๋ฉ์๋ ์ด๋ฆ ๋ณ๊ฒฝ (#196) * refactor : DTO ํจํค์ง ๋ณ๊ฒฝ (#196) * refactor : comments์์ goal์ ๊บผ๋ผ ๋, first ๋ฉ์๋ ํ์ฉ (#196) * refactor : ๋ถํ์ํ @async ์ด๋ ธํ ์ด์ ์ ๊ฑฐ (#196) * refactor : findAllByGoalId ๊ฐ๋ ์ฑ ๊ฐ์ (#196) * refactor : Emoji API Restfulํ๊ฒ ๊ฐ์ (#196) (#215) * [๐ Issue ] Emoji Count ์์ ๋ฐ Count ๊ด๋ จ ๋ก์ง ๊ฐ์ (#213) * refactor(#211): count๊ด๋ จ eventListener ๋จ์ผ componentํ * feat(#211): emoji count ํ ์ด๋ธ ์ถ๊ฐ ๋ฐ count๊ด๋ จ event application lock ์ ์ฉ * feat(#211): add goal count event์ exclusive runner ์ ์ฉ * refactor: event ๊ฐ์ ํจํค์ง๋ก ์ด๋ * feat: lock ์ ์ฉ ์์ ๋น๋๊ธฐ ์ด๋ฒคํธ ์คํ Thread๋ก ๋ณ๊ฒฝ * refactor: event ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ฉ * fix: key์ ๋งคํ๋ lock ๋๊ธฐ thread๊ฐ ์๋ค๋ฉด map์์ ์ ๊ฑฐ * [๐ Issue] ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ ์ธํ (#220) * chore : ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ ์ธํ * chore : ๊ธฐํ-์ด์ ๊ธฐ๋ณธ ์์ฑ ์ ๋ชฉ์ ๋ถํ์ํ ๋์ด์ฐ๊ธฐ ์ ๊ฑฐ * [๐ ๏ธ Refactor] Goal Emoji API ์๋ต์ "์ด๋ชจ์ง๋ฅผ ๋๋ฅธ ์ฌ๋ ์" ์ถ๊ฐ (#221) * refactor : Goal์ ๋ฐ์ ์กฐํ API์ ๋ฐ์ํ ์ฌ๋ ์ ๊ฐ ์ถ๊ฐ (#218) * test : Goal ๋ฐ์ ์กฐํ API ๋ฐ์ํ ์ฌ๋ ์ ๊ฐ์ด ์ ํํ์ง ํ์ธํ๋ ํ ์คํธ ์์ฑ (#218) * [๐ ๏ธ Refactor] IsMyReaction์ ํ์ธํ ๋ Username์ด ์๋ id๋ก ํ์ธํ๊ธฐ (#219) * refactor : IsMyReaction์ ํ์ธํ ๋ Username์ด ์๋ id๋ก ํ์ธํ๋๋ก ๋ณ๊ฒฝ (#217) * merge with develop * [๐ Bug] authorization_request_not_found ์ค๋ฅ (#216) * feat(#209): spring security authorization_request_not_found ์์ * fix: AuthorizationRequestRepository cookie ๊ธฐ๋ฐ์์ state parameter ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝ * fix: AuthorizationRequestRepository remove ๋ฉ์๋์ ๋ช ์์ ์ธ ์ญ์ ์ถ๊ฐ * fix: AuthorizationRequestRepository oauthRequestStorage ๋ฐ์ดํฐ ๋ช ์์ ์ญ์ ๋ก์ง ์ ๊ฑฐ * refact(#171): add emoji count * feat(#171): ํผ๋์ ์ด๋ชจ์ง๋ฐ ๋ด๊ฐ ๋๋ฅธ ์ด๋ชจ์ง ์ถ๊ฐ * chore(#171): ktlint * chore(#171): ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ์ญ์ * chore(#171): ktlint * [๐ ๏ธ Refactor] ๋๊ธ ์๋ต์ ๋๊ธ ๊ฐฏ์ ์ถ๊ฐ (#225) * refactor : Goal์ ๋ฌ๋ฆฐ ๋๊ธ ์๋ต์ ๋๊ธ ๊ฐฏ์ ์ถ๊ฐ (#224) * test : Goal์ ๋ฌ๋ฆฐ ๋๊ธ ์๋ต์ด ๋๊ธ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ ๊ฒ์ ํ์ธํ๋ ํ ์คํธ ์ฝ๋ ์์ฑ (#224) * ktlint formatting * refact(#171): edit field name * [๐ ๏ธ Refactor] RunnerLock ํ๋ ๋ณ์๋ช ๋ณ๊ฒฝ ๏ฟฝ+ Security Uri ์์ํ + H2 ์น ์ฝ์์ฉ WebSecurityCustomizer ์ ๊ฑฐ (#226) * refactor: RunnerLock ๋ด๋ถ ํ๋ ๋ณ์๋ช ๋ณ๊ฒฝ * refactor: security permitall uri ์์ํ * [๐ ๏ธ Refactor] ๋๊ธ ์กฐํ API ์๋ต์ "๋ด ์ง๋ ํ์ธ" key-value ์ถ๊ฐ (#230) * refactor : CommentsResponse์ ์์ ์ ๋ชฉํ์ธ์ง ํ์ธํ๋ isMyGoal ํ๋ ์ถ๊ฐ (#229) * test : CommentsResponse๋ฅผ ํตํด ์์ ์ ๋ชฉํ์ธ์ง ํ์ธํ ์ ์๋์ง ๊ฒ์ฆํ๋ ํ ์คํธ ์ฝ๋ ์์ฑ (#229) * feat(#232): add title field * [๐ ๏ธ Refactor] ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ (1๋ฒ, 3๋ฒ ์ ์๋ง ๋ณ๊ฒฝ) (#234) * refactor(#235): pagination ๊ณตํตํ + cheering squad ๊ณตํต pagination ์ ์ฉ * [๐ ๏ธ Refactor] ์๋ชป ์์ฑ๋ ์ฝ์ง ์์ ๋๊ธ ์กฐํ ์ฟผ๋ฆฌ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ (#237) * refactor : CommentsResponse์ ์์ ์ ๋ชฉํ์ธ์ง ํ์ธํ๋ isMyGoal ํ๋ ์ถ๊ฐ (#229) * test : CommentsResponse๋ฅผ ํตํด ์์ ์ ๋ชฉํ์ธ์ง ํ์ธํ ์ ์๋์ง ๊ฒ์ฆํ๋ ํ ์คํธ ์ฝ๋ ์์ฑ (#229) * refactor : exist new comment ์ฟผ๋ฆฌ๋ฅผ id์ ์๊ฐ์ผ๋ก ๊ฒ์ํ๋๋ก ๋ณ๊ฒฝ (#236) * refactor : ์ฟผ๋ฆฌ๊ฐ Goal Id๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ (#236) * test : ๋ณธ์ธ์ Goal๋ง ์กฐํํ๋์ง ๊ฒ์ฆํ๋ ํ ์คํธ ์ถ๊ฐ ์์ฑ (#236) * feat: pagination ๊ณตํต response ์ถ๊ฐ + cheering squad ์กฐํ๋ฅผ ์ํ queryRepository ์ถ๊ฐ * feat(#235): comment count ์ํฐํฐ ์ถ๊ฐ + comment create/delete event ์์ฑ * feat(#235): ๋ชฉํ ํ์๋ผ์ธ ํ์ด์ง ์กฐํ API ์์ * fix: dev ํ๊ฒฝ ๋ก๊ทธ์ธ callback ์ redirect uri ๋ณ๊ฒฝ * chore: apply lint * refactor: CheererRepository ๋ฏธ์ฌ์ฉ ๋ฉ์๋ ์ ๊ฑฐ * refactor: TriFunction @FunctionalInterface ์ ์ฉ * refactor(#235): PR ์ฝ๋ฉํธ ๋ฐ์ * [๐ Feature] ํ์ ๋ผ์ธ์ฉ ๋ชฉํ ์กฐํ API ๊ฐ๋ฐ (#240) * refactor(#235): pagination ๊ณตํตํ + cheering squad ๊ณตํต pagination ์ ์ฉ * feat: pagination ๊ณตํต response ์ถ๊ฐ + cheering squad ์กฐํ๋ฅผ ์ํ queryRepository ์ถ๊ฐ * feat(#235): comment count ์ํฐํฐ ์ถ๊ฐ + comment create/delete event ์์ฑ * feat(#235): ๋ชฉํ ํ์๋ผ์ธ ํ์ด์ง ์กฐํ API ์์ * fix: dev ํ๊ฒฝ ๋ก๊ทธ์ธ callback ์ redirect uri ๋ณ๊ฒฝ * chore: apply lint * refactor: CheererRepository ๋ฏธ์ฌ์ฉ ๋ฉ์๋ ์ ๊ฑฐ * refactor: TriFunction @FunctionalInterface ์ ์ฉ * refactor(#235): PR ์ฝ๋ฉํธ ๋ฐ์ * hotfix(#235): ํ์ธ ํ์๋ผ์ธ ์กฐํ API ์ถ๊ฐ * chore: apply klint * [๐ ๏ธ Refactor] ํ์ ๋ผ์ธ API ์์ ๋ฆฌํฉํ ๋ง (#241) * delete: ์ ์ ์ ๋ณด๋ฅผ ํ์ฉํ ํ์๋ผ์ธ ์กฐํ API ์ญ์ * refactor: PaginationResult.transform() ์ฌ์ฉ ๋ฐฉ์ lamda ํํ๋ก ํต์ผ * refactor: ๋ฉ์๋ ๋ก์ง์ ๋ฐ๋ผ get, find ๋ช ์นญ ๊ตฌ๋ถ * refactor: lamda body ๋ด ์๋ต ๊ฐ๋ฅํ parameter ์๋ต * refactor: ๋ฉ์๋๋ช ๋ด ๋ถ์ ํํ ๋จ์ด ์ ๊ฑฐ(findGoalTimelineCountMap -> findGoalCountMap) * refactor: associateWith ๋ฉ์๋ ํ์ฉ * refactor: PaginationResult total๊ฐ Long์ผ๋ก ๋ค์ ๋ณ๊ฒฝ * hotfix: dev login redirect url ์์ * hotfix: login redirect url referer ๊ธฐ์ค ๋ถ๊ธฐ ์ฒ๋ฆฌ * hotfix: login redirect url referer ๊ธฐ์ค ๋ถ๊ธฐ ์ฒ๋ฆฌ ์กฐ๊ฑด ์ถ๊ฐ * hotfix: login redirect url referer ๊ธฐ์ค ๋ถ๊ธฐ ์ฒ๋ฆฌ ์ ๊ฑฐ * [๐ Feature] ํ์ ๋ผ์ธ์ฉ ๋ชฉํ ์กฐํ API ๊ฐ๋ฐ - Cursor Deadline์ผ๋ก ๋ณ๊ฒฝ (#242) * delete: ์ ์ ์ ๋ณด๋ฅผ ํ์ฉํ ํ์๋ผ์ธ ์กฐํ API ์ญ์ * refactor: PaginationResult.transform() ์ฌ์ฉ ๋ฐฉ์ lamda ํํ๋ก ํต์ผ * refactor: ๋ฉ์๋ ๋ก์ง์ ๋ฐ๋ผ get, find ๋ช ์นญ ๊ตฌ๋ถ * refactor: lamda body ๋ด ์๋ต ๊ฐ๋ฅํ parameter ์๋ต * refactor: ๋ฉ์๋๋ช ๋ด ๋ถ์ ํํ ๋จ์ด ์ ๊ฑฐ(findGoalTimelineCountMap -> findGoalCountMap) * refactor: associateWith ๋ฉ์๋ ํ์ฉ * refactor: PaginationResult total๊ฐ Long์ผ๋ก ๋ค์ ๋ณ๊ฒฝ * fix: ๋ชฉํ ํผ๋ ์กฐํ API deadline ์ญ์์ผ๋ก ์ ๋ ฌ ์กฐํ * chore: apply lint * fix: goals ํ ์ด๋ธ์ index ์์ * refactor: pagination cusorId type Any -> Generic์ผ๋ก ๋ณ๊ฒฝ * [๐ Feature] ํ์ ๋ผ์ธ์ฉ ๋ชฉํ ์กฐํ API ๊ฐ๋ฐ - Pagination ๋ฐฉ์ offset ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝ (#243) * delete: ์ ์ ์ ๋ณด๋ฅผ ํ์ฉํ ํ์๋ผ์ธ ์กฐํ API ์ญ์ * refactor: PaginationResult.transform() ์ฌ์ฉ ๋ฐฉ์ lamda ํํ๋ก ํต์ผ * refactor: ๋ฉ์๋ ๋ก์ง์ ๋ฐ๋ผ get, find ๋ช ์นญ ๊ตฌ๋ถ * refactor: lamda body ๋ด ์๋ต ๊ฐ๋ฅํ parameter ์๋ต * refactor: ๋ฉ์๋๋ช ๋ด ๋ถ์ ํํ ๋จ์ด ์ ๊ฑฐ(findGoalTimelineCountMap -> findGoalCountMap) * refactor: associateWith ๋ฉ์๋ ํ์ฉ * refactor: PaginationResult total๊ฐ Long์ผ๋ก ๋ค์ ๋ณ๊ฒฝ * fix: ๋ชฉํ ํผ๋ ์กฐํ API deadline ์ญ์์ผ๋ก ์ ๋ ฌ ์กฐํ * chore: apply lint * fix: goals ํ ์ด๋ธ์ index ์์ * refactor: pagination cusorId type Any -> Generic์ผ๋ก ๋ณ๊ฒฝ * fix: ํ์ ๋ผ์ธ ๋ชฉํ ์กฐํ API paging ์ฒ๋ฆฌ ๋ฐฉ์ offset์ผ๋ก ๋ณ๊ฒฝ * refactor: cursor ๊ธฐ๋ฐ pagination ๊ณตํต ๋ชจ๋ cursor type long์ผ๋ก ํต์ผ * refactor: pagination ๊ณตํต ๋ชจ๋ cursor์ offset ๊ตฌ๋ถ * refactor: ๋ฏธ์ฌ์ฉ ์ฝ๋ ๋ฐ ์๋ฏธ ์๋ ์ค๋ณต ์ฝ๋ ์ญ์ * hotfix: global exception config ๋ด NoSuchElementException ์ค์ ์์ * [๐ Issue] dev api ๋ก๊ทธ์ธ ์์ฒญ ์์น์ ๋ฐ๋ผ redirect url ๋ณํ (#245) * delete: ์ ์ ์ ๋ณด๋ฅผ ํ์ฉํ ํ์๋ผ์ธ ์กฐํ API ์ญ์ * refactor: PaginationResult.transform() ์ฌ์ฉ ๋ฐฉ์ lamda ํํ๋ก ํต์ผ * refactor: ๋ฉ์๋ ๋ก์ง์ ๋ฐ๋ผ get, find ๋ช ์นญ ๊ตฌ๋ถ * refactor: lamda body ๋ด ์๋ต ๊ฐ๋ฅํ parameter ์๋ต * refactor: ๋ฉ์๋๋ช ๋ด ๋ถ์ ํํ ๋จ์ด ์ ๊ฑฐ(findGoalTimelineCountMap -> findGoalCountMap) * refactor: associateWith ๋ฉ์๋ ํ์ฉ * refactor: PaginationResult total๊ฐ Long์ผ๋ก ๋ค์ ๋ณ๊ฒฝ * fix: ๋ชฉํ ํผ๋ ์กฐํ API deadline ์ญ์์ผ๋ก ์ ๋ ฌ ์กฐํ * chore: apply lint * fix: goals ํ ์ด๋ธ์ index ์์ * refactor: pagination cusorId type Any -> Generic์ผ๋ก ๋ณ๊ฒฝ * fix: ํ์ ๋ผ์ธ ๋ชฉํ ์กฐํ API paging ์ฒ๋ฆฌ ๋ฐฉ์ offset์ผ๋ก ๋ณ๊ฒฝ * refactor: cursor ๊ธฐ๋ฐ pagination ๊ณตํต ๋ชจ๋ cursor type long์ผ๋ก ํต์ผ * refactor: pagination ๊ณตํต ๋ชจ๋ cursor์ offset ๊ตฌ๋ถ * feat(#244): dev api ๋ก๊ทธ์ธ ์์ฒญ ์์น์ ๋ฐ๋ผ redirect url ๋ณํ * chore: apply lint * fix: @value(spring.profiles.active) default๊ฐ ์ถ๊ฐ * refactor: ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ์(#245) * chore: encryptํ๋ ๋ฐ์ดํฐ ์ญ์ * chore: encrypted test properties ์ญ์ * chore: referer ์ ์ฅ/์กฐํ logging ์ถ๊ฐ * chore: logging ์ ๊ฑฐ * fix: getReferer ๋ฉ์๋ referer๊ฐ null์ผ ๊ฒฝ์ฐ Empty String ๋ฐํ * [๐ Bug] ํ์๋ผ์ธ ๊ด๋ จ ๋ฒ๊ทธ ์์ (#248) * fix: timeline ์กฐํ ์ ๋ชฉํ ์์ผ๋ฉด early return * feat: ์ ์ ์ ๋ณด ๊ธฐ๋ฐ ํ์ ๋ผ์ธ ์กฐํ API ์์ * fix: ๋ชฉํ ์ญ์ ์ LifeMapCount goalCount ํ๋ -1 ์ฒ๋ฆฌ * refactor: timeline ์กฐํ api ๋ด ๋ชฉํ ๊ฐ์ ์กฐํ ์ฟผ๋ฆฌ ๋ณ๊ฒฝ * feat(#171): edit comment count * chore: ktlint * refactor : Comment์ Emoji์ Goal Delete Casacade ์์ฑ ์ถ๊ฐ (#246) (#249) * refactor : ์์ ์ Goal์ ๋ฌ๋ฆฐ Comment ์ญ์ ๋ฅผ ํ์ฉํ๋๋ก ๋ณ๊ฒฝ (#251) (#252) * bug(#254): ํ์๋ผ์ธ ์กฐํ API ๋ด ์ฝ๋ฉํธ ๊ฐ์ ์กฐํ ์ฟผ๋ฆฌ ์ค๋ฅ ์์ * feat : ์ด๋ชจ์ง ์ถ๊ฐ ์ ์ ๊ฐ์ ์ด๋ชจ์ง๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฉ์๋ ์์ฑ (#253) (#256) * refactor : ๋ชจ๋ Emoji ์กฐํ API์์ ์ผ๊ด๋๊ฒ Emoji id ์์๋ก ์ ๋ ฌํด ์๋ตํ๋๋ก ๋ณ๊ฒฝ (#257) * refactor : ๋ถํ์ํ ์ ๋ ฌ ์ ๊ฑฐ - MySQL Clustered Index๋ก ์ธํด ์ด๋ฏธ pk ์ ๋ ฌ ๋์ด ์๋ค (#257) * fix : ํผ๋ ์กฐํ (#259) * feat(#171): ๋ชฉํ ์์ฑ์ ๊ธฐ๋ณธ ๋๊ธ ๊ฐ์ ์ถ๊ฐ * chore(#171): ktlint * feat(#171): ๊ธฐ๋ณธ ์นด์ดํธ ์ถ๊ฐ * chore: ktlint * refact(#171): ๋ณ์ ์ญ์ --------- Co-authored-by: ManHyuk <[email protected]> Co-authored-by: binary_ho <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
๋ฒ๊ทธ ๋ช ์ธ
ํ ์ผ
์์ ์๋ฃ ์์ ์ผ
The text was updated successfully, but these errors were encountered: