Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [#35 #36] ์ ํํ Github ๋ ํฌ์งํ ๋ฆฌ์ ์ฌ์ฉ ์ธ์ด ํ๊ทธ ์ถ์ถ ๋ฐ ํ๊ทธ ์ ์ฅ/์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#52) * chore: ์ธ์ ํ ์คํธ๋ฅผ ์ํ RestAssured ์์กด์ฑ ์ถ๊ฐ ๋ฐ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ฑ (#35) * feat: GIthub ํน์ Repository์์ Language Tags ์ถ์ถ (#35) * feat: Github Tag ์ถ์ถ ์๋น์ค ๊ตฌํ (#35) * feat: Github Tag ์ถ์ถ ํํ ๊ณ์ธต ๊ตฌํ (#35) * refactor: ํ๊ทธ ์ถ์ถ ๊ธฐ๋ฅ ์ค Github API ํธ์ถ ๋ถ๋ถ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ (#35) * refactor: stub token์ผ๋ก ๋ณ๊ฒฝ * refactor: controlleradvice tag ํจํค์ง ๋ฒ์ ์ง์ * refactor: GithubTagExtractor ๊ตฌํ์ฒด ObjectMapper ์ฃผ์ (#35) * refactor: TagExtractor ํผ๋๋ฐฑ ๋ฐ์ ๋ฐ ์ปจํธ๋กค๋ฌ ์ฌ๋ผ์ด์ฑ ํ ์คํธ ์ถ๊ฐ (#35) * refactor: ํ๊ทธ ์ถ์ถ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ํฌํจ (#35) * feat: Post ์ ์ฅ์ ๋ฑ๋ก๋ Tag๋ ํจ๊ป ์ ์ฅ (#36) * feat: ์ด๋ฆ์ ํด๋นํ๋ Tag๊ฐ ์์๋๋ง Tag ์์ฑํ๋ ์๋น์ค ๊ตฌํ (#36) * refactor: ํ์ฌ ๊ธ์ ์กด์ฌํ๋ Tag์ ์ค๋ณต๋๋ ์ด๋ฆ์ ํ๊ทธ ์ถ๊ฐ์ ์์ธ ๋ฐ์ (#35) * refactor: Post์ Tag ์ ์ ๋ฑ๋กํ๋ ํ ์คํธ ์ถ๊ฐ (#36) * refactor: ํ๊ทธ unique ์ ์ฝ ์ถ๊ฐ ๋ฐ @Transactional ์ ์ฉ (#36) * refactor: ํ๊ทธ ๋๋ฉ์ธ ์์ฑ ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ (#36) * refactor: ํ๊ทธ ์ธ์ ํ ์คํธ ์ถ๊ฐ ๋ฐ ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#36) * chore: secret ์ญ์ * refactor: Rebase ์ดํ ์ธ์ ํ ์คํธ์ ๋ก๊ทธ์ธ ์์ฒญ ๋ชจ๋ ์ถ๊ฐ (#35) * refactor: ์๋ชป๋ ํ ํฐ์ผ๋ก ์์ฒญ์ ์์ธ ํ์ธ ์ธ์ ํ ์คํธ ์ถ๊ฐ (#35) * fix: rebase ์ดํ ์คํจํ๋ ํ ์คํธ ๋ณด์ * refactor: ํ๊ทธ ์ถ๊ฐ ์คํจ ์๋ฌ ๋ฐ ํ๋ซํผ ์๋ฌ๋ฅผ ์ปค์คํ ์์ธ๋ก ๋ณํ ๋ฐ TagController ๋ฐํํ์ ๋ณ๊ฒฝ (#35) * [#55 #57] ์ ์ ํ๋กํ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ํ๋ก์ฐ ํ๋ก์ ๊ธฐ๋ฅ ๊ตฌํ (#61) * feat: ์ ์ ํ๋กํ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#55) * feat: ์ ์ ํ๋กํ ์ ๋ณด์ github url ์ถ๊ฐ ๋ฐ ๋๋ฝ ํ์ผ ์ถ๊ฐ (#55) * feat: ์ ์ ํ๋ก์ฐ ํ๋ก์ ๊ธฐ๋ฅ ๊ตฌํ (#57) * test: ์ ์ ํ๋กํ ๋ฐ ํ๋ก์ฐ/ํ๋ก์ ํ ์คํธ ๊ตฌํ (#55 #57) * test: ์ ์ ํ๋กํ ๋ฐ ํ๋ก์ฐ/ํ๋ก์ ํ ์คํธ ๊ตฌํ(#55 #57) * refactor: ์ ์ ํ๋กํ ๋ฐ ํ๋ก์ฐ/ํ๋ก์ ํผ๋๋ฐฑ ๋ฐ์ (#55 #57) * test: verify() ์ถ๊ฐ (#55 #57) * [#88] LoginPage ๊ตฌํ (#98) * fix: ์คํ ์์ * chore: storybook ์ค์ ์ full screen ์ต์ ์ถ๊ฐ * feat: ์นํฐํธ ์ถ๊ฐ * feat: GithubIconLarge svg ์ถ๊ฐ * fix: button attribute type ์ค๋ฅ ํด๊ฒฐ * feat: github login mock api ์ถ๊ฐ * feat: user context ๊ตฌํ * fix: ProfileQuery accessToken type error ํด๊ฒฐ * feat: github login link ์กฐํ api ๊ตฌํ * feat: github login ํ์ด์ง ๊ตฌํ(#88) * fix: UserContextProvider Props ํ์ดํ ๊ฐ์ํ * feat: Provider ๋ถ๋ฆฌ ๋ฐ UserContextProvider ์ถ๊ฐ * feat: access token ์กฐํ api ๊ตฌํ(#88) * feat: github OAuth ๋ก๊ทธ์ธ์ ์ฒ๋ฆฌํ๋ ํ์ด์ง ๊ตฌํ * [#104] merge์ ๋๋ฝ๋ ์ฝ๋ ์ถ๊ฐ (#105) * fix: ๋๋ฝ๋ interface ์ ์ ์ถ๊ฐ * fix: ๋๋ฝ๋ prop ์ถ๊ฐ(commentId) * fix: ๋๋ฝ๋ url constants ์ถ๊ฐ * feat: ํ์ผ ์ ๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ (#100) * [#108] ์์ธ ์ฒ๋ฆฌ ์ ๋ต ๊ตฌํ (#112) * feat: ์์ธ ์ฒ๋ฆฌ ์ ๋ต ๊ตฌํ * refactor: GlobalExceptionHandler์์ ์ต์์ ์นดํ ๊ณ ๋ฆฌ์ธ ApplicationException๋ง ๋ฐ๋๋ก ์์ * refactor: RestControllerAdvice๋ก ์์ * refactor: ์์ธ ๋ก๊น ์ฉ ์์ธ message ์์ฑ์ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ * feat: Button ์ปดํฌ๋ํธ kind type ์ถ๊ฐ(#107) (#111) - SquaredBlock, RoundedInline์ถ๊ฐ * [#102] ๊ฒ์๋ฌผ์ Github Repository ์ฃผ์ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ (#109) * feat: post ์ ๋ก๋ ์ github repository ์ฃผ์ ํจ๊ป ์ ์ฅ (#102) * fix: ๋ถํ์ํ ํ์ผ ์ญ์ (#102) * refactor: ํผ๋๋ฐฑ ๋ฐ์ (#102) * [#34] ๋๊ธ ๊ธฐ๋ฅ ๊ตฌํ (#84) * feat: Comment ์ ํจ์ฑ ๊ฒ์ฆ ๋ก์ง ์ถ๊ฐ (#34) * feat: Post ์์์ Comment ํจ๊ป ์์ํํ๋ ๊ธฐ๋ฅ ์ถ๊ฐ (#34) * feat: User๊ฐ ํน์ Post์ Comment ์ถ๊ฐํ๋ ๊ธฐ๋ฅ ๊ตฌํ (#34) * feat: ๋ฑ๋ก๋ ๊ฒ์๋ฌผ์ Comment ์ถ๊ฐํ๋ ์๋น์ค ๊ตฌํ (#34) * test: Service ํตํฉ ํ ์คํธ ์ถ๊ฐ (#34) * feat: ๋๊ธ ์ถ๊ฐ API ๋จ์ ๋ฐ ์ธ์ ํ ์คํธ ์ถ๊ฐ (#34) * refactor: CommentFormat ์์ธ ์ํ์ฝ๋ ๋ณ๊ฒฝ ๋ฐ ์๋ฌ ์ฝ๋ ํ ์คํธ ๊ฒ์ฆ (#34) * refactor: ControllerAdvice ์ด๋ฆ์ ํน์ ์ปจํธ๋กค๋ฌ๋ก ๋ช ์ (#34) * refactor: ์ฝ๋ ๋ณํฉ์ผ๋ก ์ธํ ํ ์คํธ ์ฝ๋ ๋ฐ ์ค์ ์์ (#34) * refactor: rebase ๋ณํฉ ํด๊ฒฐ (#34) * [#37] Github Repositories ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#58) * feat: Github Repositories ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ * test: ์ฌ๋ผ์ด์ค ํ ์คํธ ์์ฑ * refactor: get -> show ๋ฉ์๋๋ช ์์ * refactor: ํด๋์ค๋ช ์์ * refactor: Repository -> Repositories ํด๋์ค๋ช ๋ณ๊ฒฝ * fix: rebase conflict ํด๊ฒฐ * refactor: application -> domain <- infrastructure ๋ฐฉํฅ์ผ๋ก ์์กด์ฑ ํ๋ฅด๋๋ก ์์ * test: given-when-then ๊ตฌ๋ฌธ ์์ * refactor: HttpEntity -> RequestEntity ๋ณ๊ฒฝ * test: given-when-then ๊ตฌ๋ฌธ ์์ * refactor: Github Repositories ์กฐํ ๊ธฐ๋ฅ ์์ * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ * test: ์ฌ๋ผ์ด์ค ํ ์คํธ ์์ * test: ์ฌ๋ผ์ด์ค ํ ์คํธ ์์ฑ * test: ์ธ์ ํ ์คํธ ์์ฑ * test: ํตํฉ ํ ์คํธ ์์ฑ * test: rebase conflict ํด๊ฒฐ * feat: ํ๋กํ ์กฐํ์ ํ๋ก์ฐ ์ฌ๋ถ ํ๋จ ๊ธฐ๋ฅ ๊ตฌํ (#113) (#117) * [#95] ํ ํผ๋ ๊ฒ์๊ธ ์กฐํ (#114) * feat: ํ์ด์ง์ ํตํด ๊ฒ์๋ฌผ์ ์กฐํํ๊ณ DTO๋ก ๋ณํ (#95) * refactor: rebase ๋ณํฉ์ผ๋ก ์ธํ ์ถฉ๋ ํด๊ฒฐ (#95) * feat: ๊ฒ์๋ฌผ ์กฐํ ํ์ด์ง ๊ธฐ๋ฅ ์๋น์ค ํ ์คํธ ์ถ๊ฐ (#95) * refactor: ๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ์ธ์ ํ ์คํธ ์ถ๊ฐ ๋ฐ ํ๊ทธ DTO ์ ๋ฆฌ (#95) * refactor: Post ์กฐํ RestAssured ๋ฉ์๋ ์ค๋ณต ๋ฆฌํฉํ ๋ง (#95) * refactor: ๋ณํฉ์ผ๋ก ์ธํ ์ถฉ๋ ํด๊ฒฐ (#95) * refactor: batch size๋ฅผ ํตํ ํ์ด์ง ์ฟผ๋ฆฌ ์ฑ๋ฅ ๊ฐ์ (#95) * refactor: ํ์ด์ง fetch join ์ถ๊ฐ (#95) * [#119] ์๋ธ๋ชจ๋ ์ ์ฉ (#120) * chore: ์๋ธ๋ชจ๋ ์ถ๊ฐ (#119) * chore: ์๋ธ๋ชจ๋ ์ ์ฉ (#119) * chore: ์๋ธ๋ชจ๋ ์์ (#119) * [#87] HomeFeedPage ํ์ด์ง ์ปดํฌ๋ํธ ๊ตฌํ (#121) * refactor: Provider ์ Global Style ์ ์ฉ์ App.tsx -> Index.tsx ์์ ์ํ Co-authored-by: Tanney102 <Tanney-102@users.noreply.github.com> * feat: Profile ํ์ด์ง query ์ด๊ธฐํ * refactor: CommentData ํ์ ๋ณ๊ฒฝ & Comment ์ปดํฌ๋ํธ Props ์ CommentData ํ์ ์์กด์ฑ ์ ๊ฑฐ * fix: PostItem ์ปดํฌ๋ํธ์ ๋๊ธ ๋ฌ๊ธฐ ๋ฒํผ ์ถ๊ฐ & Tag ๋ค์ ๋ํ๋ด๋ Chip ๋ค ์ถ๊ฐ - send.svg ์ถ๊ฐ - PostItem ์คํ์ผ๋ง ๋ณ๊ฒฝ * chore: webpack ์ด๋ฏธ์ง ํ์ผ ๋ก๋ ๋ฃฐ ์ถ๊ฐ * feat: TextEditor ์ปดํฌ๋ํธ ๋ฐฐ๊ฒฝ์ prop ์ ๊ฑฐ - ๊ธฐ๋ณธ border-radius ์ ๊ฑฐ * feat: Button kind ๋ณ padding ๋ณํ ์ ์ฉ * feat: ์์์ฉ Styled Component ์ ์ * feat: Header ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ Styled Component ์์ ์ ์ฉ * chore: .vscode ๋ฅผ gitignore ๋ชฉ๋ก์ ์ถ๊ฐ * feat: PostItem ์ปดํฌ๋ํธ ๋งํฌ์ ๊ตฌ์กฐ ์์ - ํ์ํ์ง ์์ prop ํ ๋น ์ญ์ * feat: Header ์ปดํฌ๋ํธ์ ์ผ๊ด์ ์ผ๋ก ์ ์ฉํ ๋์ด๊ฐ ์์ํ * feat: PostItem ์คํ์ผ ์์ฑ ์์ * feat: Feed ์ปดํฌ๋ํธ ๊ตฌํ * feat: HomeFeedPage ํ์ด์ง ๊ตฌํ * feat: FAILURE_MESSAGE & LIMIT ์์ ์ถ๊ฐ - LIMIT ๋ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ ํํ๋ ๋ฐ์ดํฐ ํ์์ ๋ํ๋ด๋ ์์๋ค์ ๋ด์ ๊ฐ์ฒด - FAILURE_MESSAGE ๋ ์์ฒญ ํน์ ๋์์ด ์คํจํ์ ๋ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ํ์ฉ๋ ๋ฉ์ธ์ง๋ค์ ๋ด์ ๊ฐ์ฒด * feat: HomeFeedPage ๋ผ์ฐํ ์ ์ฉ Co-authored-by: Tanney102 <Tanney-102@users.noreply.github.com> * [#118] ์์ธ ์ฒ๋ฆฌ ์ ๋ต์ ์ ์ฉ ๋ฐ Entity์ id ๋๋ฑ์ฑ ์ถ๊ฐ (#122) * refactor: Authentication ์ปค์คํ ์์ธ์ฒ๋ฆฌ ๊ตฌํ * refactor: User, Tag ์ปค์คํ ์์ธ์ฒ๋ฆฌ ๊ตฌํ * refactor: Post, Comment ์ปค์คํ ์์ธ์ฒ๋ฆฌ ๊ตฌํ * refactor: ์ํฐํฐ id ๋๋ฑ์ฑ ์ ์ * refactor: ํ๋ซํผ ์ด๋์ V๋ก ์์ * fix: DataJpaTest์ Date ๊ด๋ จ ํ ์คํธ ์ค์ ์ถ๊ฐ (#123) * [#89] Profile Page ๊ตฌํ (#126) * refactor: Provider ์ Global Style ์ ์ฉ์ App.tsx -> Index.tsx ์์ ์ํ Co-authored-by: Tanney102 <Tanney-102@users.noreply.github.com> * feat: Profile ํ์ด์ง query ์ด๊ธฐํ * feat: Avatar ์ปดํฌ๋ํธ name์ fontWeight์ bold๋ก ๋ณ๊ฒฝ * feat: storybook dummy token ์ถ๊ฐ * feat: mock data ๋ฐ routes ์ถ๊ฐ * chore: svg ์์ด์ฝ ์ถ๊ฐ * fix: Profile interface ์์ * Revert "feat: mock data ๋ฐ routes ์ถ๊ฐ" This reverts commit ea74c1bfda40c4bacf71283d193fad62927859d7. * feat: ProfileHeader ์ปดํฌ๋ํธ ๊ตฌํ (#89) * feat: Profile ์ปดํฌ๋ํธ์ api๋ก์ง ๋ฐ query ๊ตฌํ * feat: Profile ์ปดํฌ๋ํธ ๊ตฌํ(#89) * chore: assets/images์ ํ์ผ์ .png, .jpg ๋ก ํต์ผ * chore: ์ด๋ฏธ์ง ํ์ฅ์์ ๋ํด url loader์ถ๊ฐ * feat: profile ๊ด๋ จ mock api ์ถ๊ฐ * feat: default Profile ์ด๋ฏธ์ง๋ฅผ svg์์ png ํ์ผ๋ก ๋ณ๊ฒฝ * refactor: profile page url์ ํ๋๋ก ํต์ผ * feat: main ํ๊ทธ ์ถ๊ฐ * feat: Profile์ปดํฌ๋ํธ story ์ถ๊ฐ * refactor: Profile url์ userType param ์ถ๊ฐ * refactor: isMyProfile ์์ฑ์ Profile์ปดํฌ๋ํธ์ ์์๋ก ์ด๋ * feat: Tabs ์ปดํฌ๋ํธ์ ํด๋น ํญ์ ๋ํ ์ปจํ ์ธ ์ถ๊ฐ * feat: LoggedInWrapper util๋ก ๋ถ๋ฆฌ * feat: ProfileFeed ์ปดํฌ๋ํธ ๋ ์ด์์ ๊ตฌํ * feat: mock data ์ถ๊ฐ * feat: svg icon ์ถ๊ฐ * refactor: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ ๋ฐ ๋๋ฝ ์ฝ๋ ๋ณด์ถฉ - ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ - ๋๋ฝ๋ key prop ์ถ๊ฐ - tab ์คํ์ผ ๋ณ๊ฒฝ - ์ค๋ณต๋ ์ฝ๋ ์ ๊ฑฐ * feat: ํ๋กํ ํผ๋์ ๋น๋๊ธฐ ๋ก์ง ์ถ๊ฐ * feat: GithubStatistics ์ปดํฌ๋ํธ ๊ตฌํ * feat: Profile Page ๊ตฌํ(#89) * refactor: ๋ถํ์ํ interface ์ ๊ฑฐ * feat: ๋ก๊ทธ์ธ ํ์ด์ง ๋ ์ด์์ ์์ ๋ฐ ํ ๋ฒํผ ์ถ๊ฐ * feat: ๋ ์ด์์ ์์ * fix: ๋๋ฝ๋ accessToken ์ถ๊ฐ * refactor: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * feat: ์คํ์ผ ๋ณ๊ฒฝ - main widht๋ฅผ ๋ชจ๋ฐ์ผ ์ฌ์ด์ฆ๋ก ๊ณ ์ - black button ํจ๋ฉ ์กฐ์ * feat: ๋ฐ๋ชจ๋ฅผ ์ํด ํญ์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋๋ก ์์ * feat: ๋ฐ์ํ ๋ ์ด์์ ์ ์ฉ * refactor: optionalํ ์๋ฆฌ๋จผํธ๋ฅผ JSX๋ก ์ฒ๋ฆฌ * refactor: error์ ๋ฐ๋ฅธ ui ๋ถ๊ธฐ๋ฅผ ์ ์ธ์ ์ผ๋ก ๋ช ์ Co-authored-by: SONG WON LEE <swon3210@gmail.com> Co-authored-by: Tanney102 <Tanney-102@users.noreply.github.com> * feat: ์ ํจ์ค ์ค์ ํ์ผ ์์ฑ (#133) * refactor: ๋น๋ก๊ทธ์ธ ์ ์ ๋ก๋ ํ ํผ๋ ์กฐํ๋ฅผ ํ๋๋ก ์์ (#134) (#135) * fix: ํ๋ผ๋ฏธํฐ ์์ด routeํ๋๋ก url ๋ฐ ๊ด๋ จ ์ฝ๋ ์์ (#131) * fix: s3storage bean ํ์์ ํ์ง ๋ชปํ๋ ๋ฒ๊ทธ ์์ (#136) * [hotfix] CORS ๋ฒ๊ทธ ํด๊ฒฐ (#138) * fix: CORS ๋ฒ๊ทธ ํด๊ฒฐ * chore: security ์์ * [#137] ๋ด ํ๋กํ ๊ณ์ ์ ๊ฒ์๋ฌผ์ ์กฐํํ๋ค. (#139) * feat: ๋ด ํ๋กํ ๊ณ์ ์ ๊ฒ์๋ฌผ์ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#137) * refactor: Jenkins ๋น๋ ์คํฌ๋ฆฝํธ sleep์ 3์์ 10์ผ๋ก ๋ณ๊ฒฝ * [chore] api mocking ๊ด๋ จ ์ฝ๋ ์์ (#140) * feat: ๋ฌดํ์คํฌ๋กค ๊ตฌํ ์ ์์ ๊ฐ์ํ์ฌ posts ์กฐํ์ page, limit mock * feat: login mock ์ ๊ฑฐ * chore: ๋ฐฐํฌ ํ๊ฒฝ์ ๋ฐ๋ผ api proxy์ฌ๋ถ ๋ถ๊ธฐ * chore: ์ด์ ํ๊ฒฝ ์ค์ ์๋ธ ๋ชจ๋์ ์ถ๊ฐ (#143) (#144) * [#141] ๋ค๋ฅธ ์ ์ ์ ํ๋กํ ๊ณ์ ์ ๊ฒ์๋ฌผ ์กฐํ (#142) * feat: ๋ค๋ฅธ ์ ์ ์ ํ๋กํ ํผ๋๋ฅผ ์กฐํํ๋ ๊ธฐ๋ฅ ๊ตฌํ (#141) * refactor: Pageable ์ฌ์ฉํ๋๋ก ์์ (#141) * fix: PostRepository์ @Param ์ถ๊ฐ (#145) * [#146] ๋ก๊ทธ์ธ ๋ฐํ ๊ฐ์ ์ ์ ๋ค์ ์ถ๊ฐ ๋ฐ ์ธํฐ์ ํฐ ๋งค์น ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#147) * refactor: PathPattern ์ธํฐ์ ํฐ URL๊ณผ Method๋ฅผ ํตํด ๋งค์น๋๋๋ก ๋ฆฌํฉํ ๋ง * refactor: ๋ก๊ทธ์ธํ ๋ฐํํ ๋ ํ ํฐ๊ณผ ํจ๊ป ์ ์ ๋ค์๋ ๋ณด๋ด๋๋ก ์์ * fix: ์๋ต ํ์ฑ ์๋ฌ ์์ (#148) * [#129] follow ์ถ๊ฐ, ์ทจ์ ๊ธฐ๋ฅ ๊ตฌํ (#149) * fix: ํฐํธ import ์์น ๋ณ๊ฒฝ * feat: follow ์ถ๊ฐ, ์ทจ์ ๊ธฐ๋ฅ ๊ตฌํ(#129) * feat: ์ดํ๋ฆฌ์ผ์ด์ ์ง์ ์ ๋ก๊ทธ์ธ ์ํ ํ์ธ * refactor: submodule์ remote branch ๊ธฐ์ค์ main์ผ๋ก ๋ณ๊ฒฝ (#155) master -> main * refactor: ์ ํจ์จ ๋น๋ ์ ๋ฐ ๋ฐฉ์ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์คํฌ๋ฆฝํธ ์์ (#157) * [#152] ์๋ต ํ์ฑ ์๋ฌ ์์ (#153) * fix: ์๋ต ํ์ฑ ์๋ฌ ์์ * refactor: build.gradle ํ์ ํต์ผ * fix: ๋น์ ์ ํ์ผ ์ด๋ฆ๋ฐ ํ์ฅ์ ๋์ถ ๋ฒ๊ทธ ํด๊ฒฐ (#160) * [#163] ๋น๋ ์๋ฌ๋ฅผ ํ์ธํ๋ค. (#164) * fix: ๋น์ ์ ํ์ผ ์ด๋ฆ๋ฐ ํ์ฅ์ ๋์ถ ๋ฒ๊ทธ ํด๊ฒฐ * fix: ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ import๋ก ์ธํ ๋น๋ ์๋ฌ ์์ * fix: ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ import๋ก ์ธํ ๋น๋ ์๋ฌ ์์ (#165) * [#106] request DTO ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ (#151) * refactor: Client - Controller DTO๋ช ๋ณ๊ฒฝ (#106) * style: ํ๋ผ๋ฏธํฐ ๊ฐํ ์์ (#106) * style: ๋ฉ์๋ ๊ฐํ ์์ (#106) * test: ํด๋์ค๋ช ๋ณ๊ฒฝ ๋ฐ ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#106) * test: ๋ถํ์ํ ์ฃผ์ ์ญ์ (#106) * feat: ์๋ธ๋ชจ๋ ์ถ๊ฐ (#143) * refactor: ๊ธฐ๋ณธ ์์ฑ์ ์ ๊ทผ ์ ์ด์ ๋ณ๊ฒฝ (#106) * refactor: application-prod.yml ์ญ์ (#106) * refactor: ์ ์ฉ๋์ง ์๋ Bean Validation ์ญ์ (#106) * refactor: request DTO์ Bean Validation ์ถ๊ฐ (#106) * refactor: application-prod.yml ์ญ์ (#106) * refactor: ์๋ธ๋ชจ๋ ์์ * refactor: ์๋ฌ ๋ฉ์์ง ์์ (#106) * refactor: DTO ๋ค์ด๋ฐ ์์ (#106) * [#169] ํ์ผ ์ฃผ์๊ฐ ์ ๋๋ก ๋ฐํ๋์ง ์๋ ๋ฒ๊ทธ ์์ (#170) * fix: ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ import๋ก ์ธํ ๋น๋ ์๋ฌ ์์ * fix: ํ์ผ ๊ฒฝ๋ก๊ฐ ์ ๋๋ก ๋ฐํ๋์ง ์๋ ๋ฒ๊ทธ ์์ * refactor:์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ * [fix] ํ๋ก ํธ์๋ ์ด์ ์์ (#171) * fix: ์๋ก๊ณ ์นจ์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋๋ก ์์ * fix: ์คํ์์ * fix: query์ ์๊ธฐ ์ด๋ฆ์ผ๋ก profileํ์ด์ง ๋ค์ด์ฌ ๊ฒฝ์ฐ redirect * feat: ํ๋กํ ํ์ด์ง ๋น ๊ฒ์๋ฌผ ํ์ ์ถ๊ฐ * [fix] ํ๋ก ํธ์๋ ๋ฒ๊ทธ ์์ (#172) * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * fix: url ์คํ ์์ * fix: ๊ฒ์๋ฌผ ํ๊ทธ ๋ฌธ์์ด ํ์ฑ ์ค๋ฅ ํด๊ฒฐ * [#173] Feature/loader and infinite scroll container (#175) * feat: Loader ์ปดํฌ๋ํธ ๊ตฌํ * feat: InfiniteScrollContainer ์ปดํฌ๋ํธ ๊ตฌํ * [#90] AddPostPage ํ์ด์ง ์ปดํฌ๋ํธ ๊ตฌํ (#176) * feat: AddPostPage ๊ตฌ์ฑ ์ปดํฌ๋ํธ ๊ตฌํ - PostAddStepHeader ์ปดํฌ๋ํธ ๊ตฌํ - PostContentUploader ์ปดํฌ๋ํธ ๊ตฌํ - RepositorySelector ์ปดํฌ๋ํธ ๊ตฌํ - TagInputForm ์ปดํฌ๋ํธ ๊ตฌํ - githube ์์ด์ฝ ์ถ๊ฐ * feat: separatorColor theme ์์ ์ถ๊ฐ * feat: AddPostPage ๊ตฌํ - ImageUploader ์ปดํฌ๋ํธ prop ๋ช ๋ณ๊ฒฝ - ๊ฒ์๋ฌผ ์ ๋ก๋์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด๋ค์ ํ์ ์ถ๊ฐ - ๊ฒ์๋ฌผ ์ ๋ก๋์ ์ฌ์ฉ๋๋ API_URL, GITHUB_URL, STEPS ์์ ์ถ๊ฐ - PostAddDataContext & PostAddStepContext ์ถ๊ฐ * fix: Noto Sans ์นํฐํธ๊ฐ ๋ก๋๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ * feat: requestAddPost ์์ฒญ ํจ์ ๊ตฌํ * feat: Input ์ปดํฌ๋ํธ์ name prop ์ถ๊ฐ * feat: LIMIT ์์ ๊ฐ์ฒด์ FEED_COUNT_PER_FETCH ์์ฑ ์ถ๊ฐ * feat: requestGetHomeFeedPosts ์์ฒญ ํจ์์ ๊ธฐ๋ณธ pageIndex ์ ๊ณต * feat: PostAddDataContextProvider ์ ์ฉ ์ง์ ๋ณ๊ฒฝ App -> AddPostPage ์ปดํฌ๋ํธ ๋ฐ๋ก ์ * feat: ํ๊ทธ ์ถ๊ฐ ํ ํ๊ทธ ์ ๋ ฅ Input ๋ด์ฉ์ด ๋น์์ง๋๋ก ์ค์ * [#161] ํ์/๋นํ์ ๋ชจ๋ ๋ฐ์ ์ ์๋ API ํ ํฐ ๊ฒ์ฆ ๋ก์ง ์์ (#167) * refactor: ํํ ๊ณ์ธต๊ณผ ์์ฉ ๊ณ์ธต์ ๋ฐํํ๋ DTO ๋ค์ด๋ฐ ํต์ผ * refactor: ํ์/๋นํ์ ๋ชจ๋ ๋ฐ์ ์ ์๋ API ํ ํฐ ๊ฒ์ฆ ๋ก์ง์ ์์ ํ๋ค. - ๊ธฐ์กด ๋ก์ง: ํ์/๋นํ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ API (ex. /api/posts)์์ ํ ํฐ์ด ์๋ชป๋ ๊ฒฝ์ฐ GuestUser๋ก ์ฒ๋ฆฌ. - ์์ ๋ก์ง: ํ์/๋นํ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ API (ex. /api/posts)์์ ํ ํฐ์ด ์๋ชป๋ ๊ฒฝ์ฐ 401 ์์ธ ๋ฐ์. * chore: ์ค์ ์์ * refactor: ์์ํ * refactor: ํฌ๋งทํ ์์ * [#128] Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ (#178) * feat: Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ * feat: ํ์ด์ง ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ fetch ๋ฐ๋๋ก ์์ * feat: TagFeedPage & UserFeed ํ์ด์ง ์ถ๊ฐ - ๊ธฐ๋ฅ ๊ตฌํ X - PAGE_URL ์์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ ํ๋ฌธ์ผ๋ก ์ ๊ณต๋๋ userName ์ ๋ก๊ทธ์ธ ๋ ์ ์ ์ด๋ฆ์ด ์ ๊ณต๋๋๋ก ๋ณ๊ฒฝ * [#177] ๊ฒ์๋ฌผ ์๊ฐ ํ์ ์ถ๊ฐ (#180) * feat: ๊ฒ์๋ฌผ ์๊ฐ ์ ๋ณด ์์ * fix: ์๊ฐ ํ์ ์์ * [#181] ์์ฒญ์ userName ์ด ๋์ ์ผ๋ก ๋ค์ด๊ฐ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ (#182) * feat: Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ * feat: ํ์ด์ง ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ fetch ๋ฐ๋๋ก ์์ * feat: TagFeedPage & UserFeed ํ์ด์ง ์ถ๊ฐ - ๊ธฐ๋ฅ ๊ตฌํ X - PAGE_URL ์์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ ํ๋ฌธ์ผ๋ก ์ ๊ณต๋๋ userName ์ ๋ก๊ทธ์ธ ๋ ์ ์ ์ด๋ฆ์ด ์ ๊ณต๋๋๋ก ๋ณ๊ฒฝ * fix: ์์ฒญ์ userName ์ด ๋์ ์ผ๋ก ๋ค์ด๊ฐ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ํ์์๋ console.log ์ ๊ฑฐ * fix: userName ๊ณผ repositoryName ์ด ์์ ๋ ๋ฐ์ดํฐ๊ฐ fetch ๋๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐ (#186) - userName ์ด ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ์ง ์์ ๋ฌธ์ ํด๊ฒฐ * refactor: ํํผ๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํ๋๋ก ์์ (#189) (#191) * [#162] ํ๊ทธ ์ถ์ถ API ๋ช ์ธ ๋ณ๊ฒฝ (#166) * refactor: ํ๊ทธ ์ถ์ถ api์์ name ์ ์ธ (#162) * [#106] request DTO ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ (#151) * refactor: Client - Controller DTO๋ช ๋ณ๊ฒฝ (#106) * style: ํ๋ผ๋ฏธํฐ ๊ฐํ ์์ (#106) * style: ๋ฉ์๋ ๊ฐํ ์์ (#106) * test: ํด๋์ค๋ช ๋ณ๊ฒฝ ๋ฐ ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#106) * test: ๋ถํ์ํ ์ฃผ์ ์ญ์ (#106) * feat: ์๋ธ๋ชจ๋ ์ถ๊ฐ (#143) * refactor: ๊ธฐ๋ณธ ์์ฑ์ ์ ๊ทผ ์ ์ด์ ๋ณ๊ฒฝ (#106) * refactor: application-prod.yml ์ญ์ (#106) * refactor: ์ ์ฉ๋์ง ์๋ Bean Validation ์ญ์ (#106) * refactor: request DTO์ Bean Validation ์ถ๊ฐ (#106) * refactor: application-prod.yml ์ญ์ (#106) * refactor: ์๋ธ๋ชจ๋ ์์ * refactor: ์๋ฌ ๋ฉ์์ง ์์ (#106) * refactor: DTO ๋ค์ด๋ฐ ์์ (#106) * [#169] ํ์ผ ์ฃผ์๊ฐ ์ ๋๋ก ๋ฐํ๋์ง ์๋ ๋ฒ๊ทธ ์์ (#170) * fix: ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ import๋ก ์ธํ ๋น๋ ์๋ฌ ์์ * fix: ํ์ผ ๊ฒฝ๋ก๊ฐ ์ ๋๋ก ๋ฐํ๋์ง ์๋ ๋ฒ๊ทธ ์์ * refactor:์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ * [fix] ํ๋ก ํธ์๋ ์ด์ ์์ (#171) * fix: ์๋ก๊ณ ์นจ์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋๋ก ์์ * fix: ์คํ์์ * fix: query์ ์๊ธฐ ์ด๋ฆ์ผ๋ก profileํ์ด์ง ๋ค์ด์ฌ ๊ฒฝ์ฐ redirect * feat: ํ๋กํ ํ์ด์ง ๋น ๊ฒ์๋ฌผ ํ์ ์ถ๊ฐ * [fix] ํ๋ก ํธ์๋ ๋ฒ๊ทธ ์์ (#172) * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * fix: url ์คํ ์์ * fix: ๊ฒ์๋ฌผ ํ๊ทธ ๋ฌธ์์ด ํ์ฑ ์ค๋ฅ ํด๊ฒฐ * [#173] Feature/loader and infinite scroll container (#175) * feat: Loader ์ปดํฌ๋ํธ ๊ตฌํ * feat: InfiniteScrollContainer ์ปดํฌ๋ํธ ๊ตฌํ * [#90] AddPostPage ํ์ด์ง ์ปดํฌ๋ํธ ๊ตฌํ (#176) * feat: AddPostPage ๊ตฌ์ฑ ์ปดํฌ๋ํธ ๊ตฌํ - PostAddStepHeader ์ปดํฌ๋ํธ ๊ตฌํ - PostContentUploader ์ปดํฌ๋ํธ ๊ตฌํ - RepositorySelector ์ปดํฌ๋ํธ ๊ตฌํ - TagInputForm ์ปดํฌ๋ํธ ๊ตฌํ - githube ์์ด์ฝ ์ถ๊ฐ * feat: separatorColor theme ์์ ์ถ๊ฐ * feat: AddPostPage ๊ตฌํ - ImageUploader ์ปดํฌ๋ํธ prop ๋ช ๋ณ๊ฒฝ - ๊ฒ์๋ฌผ ์ ๋ก๋์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด๋ค์ ํ์ ์ถ๊ฐ - ๊ฒ์๋ฌผ ์ ๋ก๋์ ์ฌ์ฉ๋๋ API_URL, GITHUB_URL, STEPS ์์ ์ถ๊ฐ - PostAddDataContext & PostAddStepContext ์ถ๊ฐ * fix: Noto Sans ์นํฐํธ๊ฐ ๋ก๋๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ * feat: requestAddPost ์์ฒญ ํจ์ ๊ตฌํ * feat: Input ์ปดํฌ๋ํธ์ name prop ์ถ๊ฐ * feat: LIMIT ์์ ๊ฐ์ฒด์ FEED_COUNT_PER_FETCH ์์ฑ ์ถ๊ฐ * feat: requestGetHomeFeedPosts ์์ฒญ ํจ์์ ๊ธฐ๋ณธ pageIndex ์ ๊ณต * feat: PostAddDataContextProvider ์ ์ฉ ์ง์ ๋ณ๊ฒฝ App -> AddPostPage ์ปดํฌ๋ํธ ๋ฐ๋ก ์ * feat: ํ๊ทธ ์ถ๊ฐ ํ ํ๊ทธ ์ ๋ ฅ Input ๋ด์ฉ์ด ๋น์์ง๋๋ก ์ค์ * [#161] ํ์/๋นํ์ ๋ชจ๋ ๋ฐ์ ์ ์๋ API ํ ํฐ ๊ฒ์ฆ ๋ก์ง ์์ (#167) * refactor: ํํ ๊ณ์ธต๊ณผ ์์ฉ ๊ณ์ธต์ ๋ฐํํ๋ DTO ๋ค์ด๋ฐ ํต์ผ * refactor: ํ์/๋นํ์ ๋ชจ๋ ๋ฐ์ ์ ์๋ API ํ ํฐ ๊ฒ์ฆ ๋ก์ง์ ์์ ํ๋ค. - ๊ธฐ์กด ๋ก์ง: ํ์/๋นํ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ API (ex. /api/posts)์์ ํ ํฐ์ด ์๋ชป๋ ๊ฒฝ์ฐ GuestUser๋ก ์ฒ๋ฆฌ. - ์์ ๋ก์ง: ํ์/๋นํ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ API (ex. /api/posts)์์ ํ ํฐ์ด ์๋ชป๋ ๊ฒฝ์ฐ 401 ์์ธ ๋ฐ์. * chore: ์ค์ ์์ * refactor: ์์ํ * refactor: ํฌ๋งทํ ์์ * [#128] Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ (#178) * feat: Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ * feat: ํ์ด์ง ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ fetch ๋ฐ๋๋ก ์์ * feat: TagFeedPage & UserFeed ํ์ด์ง ์ถ๊ฐ - ๊ธฐ๋ฅ ๊ตฌํ X - PAGE_URL ์์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ ํ๋ฌธ์ผ๋ก ์ ๊ณต๋๋ userName ์ ๋ก๊ทธ์ธ ๋ ์ ์ ์ด๋ฆ์ด ์ ๊ณต๋๋๋ก ๋ณ๊ฒฝ * [#177] ๊ฒ์๋ฌผ ์๊ฐ ํ์ ์ถ๊ฐ (#180) * feat: ๊ฒ์๋ฌผ ์๊ฐ ์ ๋ณด ์์ * fix: ์๊ฐ ํ์ ์์ * [#181] ์์ฒญ์ userName ์ด ๋์ ์ผ๋ก ๋ค์ด๊ฐ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ (#182) * feat: Infinite Scroll ๊ธฐ๋ฅ ๊ตฌํ * feat: ํ์ด์ง ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ fetch ๋ฐ๋๋ก ์์ * feat: TagFeedPage & UserFeed ํ์ด์ง ์ถ๊ฐ - ๊ธฐ๋ฅ ๊ตฌํ X - PAGE_URL ์์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ ํ๋ฌธ์ผ๋ก ์ ๊ณต๋๋ userName ์ ๋ก๊ทธ์ธ ๋ ์ ์ ์ด๋ฆ์ด ์ ๊ณต๋๋๋ก ๋ณ๊ฒฝ * fix: ์์ฒญ์ userName ์ด ๋์ ์ผ๋ก ๋ค์ด๊ฐ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ํ์์๋ console.log ์ ๊ฑฐ * fix: userName ๊ณผ repositoryName ์ด ์์ ๋ ๋ฐ์ดํฐ๊ฐ fetch ๋๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐ (#186) - userName ์ด ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ์ง ์์ ๋ฌธ์ ํด๊ฒฐ * refactor: ํํผ๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํ๋๋ก ์์ (#189) (#191) * refactor: ํ๊ทธ ์ถ์ถ api์์ name ์ ์ธ (#162) Co-authored-by: DAEUN LEE <leede0418@gmail.com> Co-authored-by: Minsung Son <sns2831@gmail.com> Co-authored-by: Tanney102 <57767891+Tanney-102@users.noreply.github.com> Co-authored-by: SONG WON LEE <swon3210@gmail.com> Co-authored-by: binghe819 <56860124+binghe819@users.noreply.github.com> * [#192] ํ๋กํ ํ์ด์ง 401์๋ฌ ๋ฏธ์ฒ๋ฆฌ ์ด์ ํด๊ฒฐ (#196) * refactor: ๋ณ์ ์ด๋ฆ ์์ , userName์ username์ผ๋ก ํต์ผ * refactor: localStorage๊ด๋ จ ๋ก์ง ๋ณ๊ฒฝ * fix: ์ ํจํ์ง ์์ ํ ํฐ์ ๋ํด ํ๋กํ ์ ๋ณด ๋ฆฌํจ์น * refactor: storage ๋ชจ๋์ด ๊ฐ ํจ์๋ฅผ export ํ๋๋ก ๋ณ๊ฒฝ * fix: ์ ํจํ์ง ์์ ํ ํฐ์ ๋ํด ํ๋กํ ํผ๋ ๋ฆฌํจ์น * fix: github tas api url ๋ณ๊ฒฝ ๋ฐ์ * refactor: ํ์ ๊ฐ๋ ์ถ๊ฐ * [#179] Github Repositories ์กฐํ ๊ธฐ๋ฅ ์์ (#195) * refactor: ์๋ธ๋ชจ๋ ์์ * refactor: Github Repository URL๋ ํจ๊ป ์๋ต (#179) * refactor: htmlUrl -> url ๋ณ์๋ช ๋ณ๊ฒฝ (#179) * [#197] ๋ ์ด์์ ๋ฐ UI๋ฅผ ๊ฐ์ (#198) * feat: ๋ ์ด์ ๋ถ๋ฌ์ฌ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด Loader ๊ฐ ์ฌ๋ผ์ง๋๋ก Infinite Scroll ๊ธฐ๋ฅ ์์ - Feed ๋ฐ์ดํฐ๋ฅผ Page ์์ ๋๊ฒจ์ฃผ๋๋ก ์ฌ์ค์ - ์ธ๋ถ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์ง ์์ TagFeedPage, UserFeedPage ํ์ด์ง ์ปดํฌ๋ํธ ์ถ๊ฐ(HomeFeedPage ์ ํ์ฌ๋ ๊ธฐ๋ฅ ๋์ผ) - ๋ฐ์ดํฐ ๋ก๋ฉ ์ ํ๋ฉด์ ๋ํ๋ผ PageLoading ์ปดํฌ๋ํธ ๊ตฌํ * feat: ๋ชจ๋ ul ํ๊ทธ์ margin์ 0์ผ๋ก ํ๋ ์ ์ญ ์คํ์ผ๋ง ์ ์ฉ * feat: ๋ฐ์ดํฐ ๋ก๋ฉ ์ PageLoading ์ปดํฌ๋ํธ๊ฐ ๋ํ๋๋๋ก ์ค์ - Profile, RepositorySelector, TagInputForm ์ปดํฌ๋ํธ์ ์ ์ฉ * feat: PostItem ์ปดํฌ๋ํธ padding ๊ฐ ์์ * feat: ๋ชจ๋ฐ์ผ ๋ฐ์ํ break point ์ฌ์ค์ & ๊ฐ ํ์ด์ง ์ปดํฌ๋ํธ์ Container ์ Page ์คํ์ผ๋ ์ปดํฌ๋ํธ ํ์ฅ ์ ์ฉ * feat: RepositorySelector ์ปดํฌ๋ํธ์ RepositoryList ์ ๊ณ ์ ๋์ด ๊ฐ ์ ์ฉ - ๋ด์ฉ๋ฌผ์ด ๋์ด๊ฐ์ ์ด๊ณผํ ์ ์คํฌ๋กค์ด ๋ํ๋๋๋ก ์ค์ * feat: ๋ก๊ทธ์์ ๋ฒํผ ์ถ๊ฐ (#203) * [#194] REST Docs ์ ์ฉ (#201) * feat: ๋ฌธ์ํ ์ฝ๋ ์์ฑ * feature: ๋ฌธ์ํ ๋ก์ง ๋ฐ ๊ธฐ๋ฐ ํ์ผ ๊ตฌ์ฑ * [#207] ๋ฐฐํฌ ์๋ํ ๋ฒ๊ทธ ์์ (#208) * refactor: ๋น๋์ ํ ์คํธ๋ฅผ ํ๋์ stage๋ก ํฉ์นจ. * refactor: ๊ธฐ์กด process ์ ๊ฑฐ ์ SIGKILL๋ก ๋ณ๊ฒฝ * fix: ๋๋ฝ๋ ์คํฌ๋ฆฝํธ ์ถ๊ฐ. * [#91] Snackbar ๊ตฌํ (#209) * fix: ์ปดํฌ๋ํธ ์ด๋ฆ๊ณผ ์ค๋ณต๋๋ interface ์ด๋ฆ ๋ณ๊ฒฝ * feat: ์ค๋ต๋ฐ ๊ตฌํ * chore: ๋ฐฐํฌ ํ๊ฒฝ์ ๋ฐ๋ผ api url ๋ถ๊ธฐ (#211) * chore: ํ๋ก ํธ์๋ ๋น๋ ์ปค๋งจ๋ ์์ (#214) * [#200, #205] ํ๊ทธ ๊ด๋ จ ์ด์ ํด๊ฒฐ (#216) * fix: ๊ฒ์๊ธ ์ถ๊ฐ ์, ์ด๊ธฐ์ ๋ถ๋ฌ์จ ๊ธฐ๋ณธ tag ๋ค์ด ์ฌ๋ผ์ง์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ์ค ํ๊ทธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ * fix: break point ์ ๋ง๊ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ต๋ ๋๋น๋ฅผ 375px -> 425px ๋ก ์กฐ์ * [#217, #110] ํ ์คํธ ํจํค์ง ๊ตฌ์กฐ ์ ๋ฆฌ (#218) * chore: ์ธ์/ํตํฉ ํ ์คํธ ๋ฐ common(ํฝ์ค์ณ ํฉํ ๋ฆฌ, mock api) ํจํค์ง ๋ถ๋ฆฌ (#217) * chore: ๊ธฐ์กด ๋๋ฉ์ธ ํ ์คํธ ํจํค์ง๋ค์ unit ํ์๋ก ์ด๋ (#217) * refactor: Tag ๊ด๋ จ Github ํ๋ซํผ ํด๋์ค ์ด๋ฆ์ Tag ๋ช ์ (#217) * chore: Test ๊ด๋ จ Configuration ํต์ผ ๋ฐ Github API ๊ด๋ จ ํด๋์ค ํ๋กํ ์ค์ (#217) * chore: ๋กฌ๋ณต ์์กด์ฑ ์ถ๊ฐ (#217) * refactor: TestConfiguration ํด๋์ค๋ช ์ Infrastructure ๋ช ์ (#217) * refactor: PostFactory ๋น๋ ํจํด ์ ์ฉํ์ฌ ๊ฐ๋ ์ฑ ํฅ์ * refactor: ์คํจํ๋ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: UserFactory ๋น๋ ํจํด ์ ์ฉํ์ฌ ๊ฐ๋ ์ฑ ํฅ์ * refactor: PostFactory ์๋ฏธ ์๋ ๋ฉ์๋ ์ ๊ฑฐ * refactor: Test Configuration ์ด๋ฆ ๋ณ๊ฒฝ * refactor: user fixture setUp๋ก์ง ์์น ๋ณ๊ฒฝ * refactor: DTO Builder ์ด๋ ธํ ์ด์ ์ ์ฉ ๋ฐ Builder ์ ๊ณต ํด๋์ค ์ ๊ฑฐ * refactor: gradle.build ํ์ผ ์ ๋ฆฌ * style: ์๋ฏธ์๋ ๊ณต๋ฐฑ ์ ๊ฑฐ Co-authored-by: Minsung <sns2831@gmail.com> * [#223, #229] API ๋ณ๊ฒฝ์ฌํญ ๋ฐ์ ๋ฐ Post ์ค๋ณต์ ๊ฑฐ (#235) * fix: API ๋ช ์ธ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์ - image์ imageUrl์ ๋ํ ํค๊ฐ ๊ตฌ๋ถ - public repo๋ฅผ ๊ฐ์ ธ์ค๋ api ๋ช ์์ username ์ ๊ฑฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * feat: ์๋ก ํจ์น๋ post ์ค๋ณต์ ๊ฑฐ * fix: InfiniteScrollContainer effect ์์กด์ฑ ์์ * refactor: Snackbar ์ปดํฌ๋ํธ์ ์์น๋ฅผ @layout์ผ๋ก ๋ณ๊ฒฝ * fix: post interface ์์ * refactor: ์ค๋ต๋ฐ ๋ฉ์์ง๋ฅผ push ํ๋ ๋ฉ์๋ ์ด๋ฆ์ ๋ ๋ช ์์ ์ผ๋ก ๋ณ๊ฒฝ * fix: ์ค๋ณต๋ key prop ์์ * feat: http error ์ฒ๋ฆฌ ์ ํธ ๊ตฌํ * refactor: HomeFeedPage์ ์ํ๋ก์ง์ ํ ์ผ๋ก ๋ถ๋ฆฌ * [#204] Issue ๋ฐ PR Template ์์ (#239) * docs: PR ํ ํ๋ฆฟ ์์ * docs: ์ด์ ํ ํ๋ฆฟ ๋ฑ๋ก * docs: ์ด์ ํ ํ๋ฆฟ ์์ * docs: ์ด์ ํ ํ๋ฆฟ ์์ * [#222] ํ๋กํ ํ์ด์ง ํผ๋ ๋ฒ๊ทธ ์์ (#242) * refactor: ์ค๋ณต๋ ๊ฒ์๋ฌผ์ ์ ๊ฑฐํ๋ ๋ก์ง์ util๋ก ๋ถ๋ฆฌ * feat: ํ๋กํ ํผ๋์ ๋ฌดํ ์คํฌ๋กค ๊ธฐ๋ฅ ์ถ๊ฐ * refactor: profile page์ ์ํ๋ฅผ context๋ก ๋ถ๋ฆฌ * feat: ํ๋ก์ฐ ๋ฒํผ์ ๋ก๋ฉ ์ ๋๋ฉ์ด์ ์ถ๊ฐ * refactor: ๋ถํ์ํ ์ปจํ ์ด๋ ์ ๊ฑฐ * refactor: ProfilePage ๊ตฌ์กฐ ๊ฐ์ - ํ ์ ๋์ด์ฌ๋ฆฌ๋ ์์ค์ ์์ ๋ฒ์๋ก ์์ - context๋ฅผ ์ ๊ฑฐํ๊ณ ์ปจํ ์ด๋ ์ญํ ์ ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐ * [#219] ๊ฒ์๊ธ ์ถ๊ฐ ์ค ๋ฐ์ํ๋ ์๋ฌ์ ๋ํ ํผ๋๋ฐฑ, ํธ๋ค๋ง ๊ตฌํ (#241) * feat: BackDrop & MessageModalPortal ์ปดํฌ๋ํธ ๊ตฌํ - index.html ์ div#modal ํ๊ทธ ์ถ๊ฐ - MessageModalPortal ์ ๋ฆฌ์กํธ ํฌํธ์ ์ ์ฉํ์ฌ ๊ตฌํ - ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ํธํ๋๋ก useMessageModal ์ปค์คํ ํ ์ ์ * refactor: ํ์ ์๋ import ๊ตฌ๋ฌธ ์ญ์ * feat: PostContentUploader ์ปดํฌ๋ํธ ์์ ImageSlider & ImageUploader ์ TextEditor ๊ฐ์ margin ์ถ๊ฐ * feat: ์๋ก์ด limits, messages ์์ ์ถ๊ฐ - message -> messages ๋ก ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ * feat: ๊ฒ์๊ธ ์ถ๊ฐ step ๋ผ์ฐํ path ์ ํ๊ธ์ด ๋ค์ด๊ฐ๋ ๋ฌธ์ ํด๊ฒฐ * fix: ํ์ํ ๋ณ์ import ๊ฒฝ๋ก ์์ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ์ค ๊ฐ๊ฐ์ ์๋ฌ์ ๋ํ ์ด์ฉ์ ํผ๋๋ฐฑ ๊ตฌํ - PostAddFormData -> PostUploadData์ผ๋ก ๋ณ๊ฒฝ - ์ด์ฉ์์ ๊นํ๋ธ ์์ ์ฌ๋ผ์ ์๋ public repository ๊ฐ ์์ผ๋ฉด ํผ๋๋ฐฑ ํ ์ด์ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ ์ํจ๋ค. - repository ๋ฅผ ์ ํํ์ง ์๊ณ ์ด๋ฏธ์ง & ๊ธ ์์ฑ์ผ๋ก ๋์ด๊ฐ๋ ค ํ๋ค๋ฉด ์ด๋ฅผ ํผ๋๋ฐฑํ๋ค. - ์ ๋ก๋ํ ์ด๋ฏธ์ง๊ฐ ์ ํด์ง ์ฉ๋์ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ์ ๋ก๋ํ ์ด๋ฏธ์ง ๊ฐ์๊ฐ ์ ํด์ง ๊ฐ์๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ์ด๋ฏธ์ง ๊ฐ์๊ฐ ์ ํด์ง ๊ฐ์๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ํ ์คํธ ๊ธธ์ด๊ฐ ์ ํด์ง ๊ธธ์ด๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ๋ค์ด๊ฐ ํ๊ทธ๋ค ์ค ์ค๋ณต์ด ์์ผ๋ฉด ํผ๋๋ฐฑํ๋ค. - ํ๊ทธ์ '-', '_' ๋ฅผ ์ ์ธํ ํน์๋ฌธ์๊ฐ ๋ค์ด๊ฐ๋ค๋ฉด ์ด๋ฅผ ํผ๋๋ฐฑํ๋ค. * feat: ErrorResponse ํ์ ์์ฑ ๋ฐ ์ ์ฉ * feat: API ์์ฒญ ์๋ฌ ํธ๋ค๋ง ๊ตฌํ * [#232] ์ ์ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#249) * refactor: ์ฝ๋ ์ ๋ฆฌ (#232) * refactor: ์ฌ์ฉ์ ์ ํจ์ฑ ๊ฒ์ฆ ์ถ๊ฐ (#232) - ๊ฒ์คํธ์ธ ๊ฒฝ์ฐ UnauthorizedException ๋ฐ์ * refactor: DTO ๊ด๋ จ ๋ค์ด๋ฐ ์ ๋ฆฌ (#232) * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ์๋น์ค ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: Data JPA ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ๋ถํ์ํ ์์ ์ญ์ (#232) * test: ์ ์ ์ด๋ฆ ๋ณ๊ฒฝ (#232) - loginUser/guestUser -> testUser๋ก ํต์ผ * test: ์๋น์ค ํ ์คํธ ์ถ๊ฐ (#232) * test: ์๋น์ค ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ํตํฉ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * refactor: Builder ์ฌ์ฉ (#232) * refactor: Follow ๊ฐ์ฒด์ ์ฑ ์ ์์ (#232) * test: ์ ๊ทผ ์ ์ด์ ์์ (#232) * refactor: DTO ๋ฆฌํฉํ ๋ง (#232) * test: ๋ถํ์ํ ํ๋ ์ญ์ (#232) * test: WebEnvironment ์ต์ ์ RANDOM_PORT -> NONE์ผ๋ก ๋ณ๊ฒฝ (#232) * test: @SpringBootTest -> @DataJpaTest ๋ณ๊ฒฝ (#232) * refactor: API ๋ช ์ธ์ ๋ง๊ฒ ํ๋๋ช ๋ณ๊ฒฝ (#232) - image -> imageUrl ๋ณ๊ฒฝ * [#240] Authentication ๊ด๋ จ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#247) * test: authentication ๊ด๋ จ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#240) * test: ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#240) * refactor: ๊นํ ์ธ์ฆ ์์ธ ๋ณ๊ฒฝ (#240) * test: Authentication ํ ์คํธ ์ฝ๋ ํผ๋๋ฐฑ ์ ์ฉ (#240) * test: HttpHeaders.AUTHORIZATION ์ผ๋ก ๋ณ๊ฒฝ (#240) * [#226, #227] ํ๋กํ ์์ ๋ชจ๋ฌ ๊ตฌํ (#255) * feat: Button ์ปดํฌ๋ํธ์ padding prop ์ถ๊ฐ * feat: cancel-no-circle ์์ด์ฝ ์ถ๊ฐ * refactpr: BackDrop์ ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ก ์์ * refactor: textEditor ๋ฐฐ๊ฒฝ์ ํฌ๋ช ํ๊ฒ ์์ * chore: eslint no empty function ์ต์ off * refactor: css keyframes ํ์ผ๋ก ๋ถ๋ฆฌ * feat: ์นด๋ฉ๋ผ ์์ด์ฝ ์ถ๊ฐ * feat: TextEditor ์ปดํฌ๋ํธ์ indicator ์ถ๊ฐ(#226) * refactor: z-index๋ฅผ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์์ * feat: ํ๋กํ ์์ ๋ชจ๋ฌ ๊ตฌํ(#227) * [#246] ๋๊ธ ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#250) * refactor: ๋๊ธ ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ์ผ๋น ํผ๋๋ฐฑ ๋ฐ์ * refactor: ๋๊ธ ์กฐํ ๋ฐํ์ ํ๋กํ ์ด๋ฏธ์ง ๋์ค๋๋ก ์์ * [#220, #226] ๋ค๋น๊ฒ์ด์ ui ์์ ๋ฐ ์ด๋ฏธ์ง ์ธ๋์ผ์ดํฐ ์ถ๊ฐ (#256) * refactor: ๋น๋ก๊ทธ์ธ ์์๋ ํ๋ค์ด๊ฒ์ด์ ๋ ธ์ถ * fix: header์ image slider์ ์์ ์์ ๋ฒ๊ทธ ํด๊ฒฐ * feat: ์ด๋ฏธ์ง ์ธ๋์ผ์ดํฐ ๊ตฌํ * [#234] ํ๊ทธ ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#245) * refactor: ํ๊ทธ ๋๋ฉ์ธ ๋ถ๋ถ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ํตํฉ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: connection pool ์ฌ์ฉํ๋ ์ปค์คํ RestTemplate ์ ์ฉ * refactor: Post์ Tag ์ฐ๊ด๊ด๊ณ ๋ถ๋ถ ํ๋ก๋์ ๋ฐ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง * refactor: ์ผ๋น ํผ๋๋ฐฑ ์ ์ฉ - ParameterizedTest ์ด์ฉํ๋๋ก ์์ - ์ค๋ณต๋ ํ ์คํธ ์ ๊ฑฐ * refactor: ํผ๋๋ฐฑ ๋ฐ์ * refactor: ์๋ฌธ์๋ก ์๋ ๋ณํ๋๋๋ก ์์ * refactor: ๋์ ํผ๋๋ฐฑ ์ ์ฉ * refactor: ๊นํ์์ ํ๊ทธ ๊ฐ์ ธ์ฌ ๋ ์๋ฌธ์๋ก ๋ณํ๋๋๋ก ๋ฆฌํฉํ ๋ง * [#221, #225] ํ๋กํ ํผ๋ ํด๋ฆญ์ ์ ์ ํผ๋ ํ์ด์ง๋ก ์ด๋ (#260) * fix: ํค๋์์ height๊ฐ ํฐ ์์๋ค์ ๋ ์ด์์์ด ๊นจ์ง๋ ๋ฒ๊ทธ ํด๊ฒฐ * fix: slideButtonKind ๋ณต๊ตฌ * refactor: ํ์ ๋จ์ธ ์ ๊ฑฐ * feat: ํ๋กํํผ๋์์ ํฌ์คํธ ํด๋ฆญ์ ์ ์ ํผ๋ ํ์ด์ง๋ก ์ด๋ * [#251] Post ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#252) * refactor: infrastructure ์ ๋ํ ์คํธ, comment ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ๊ด๋ จ ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post application ๋ ์ด์ด ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: PostControllerTest ๋ฆฌํฉํ ๋ง ์ถ๊ฐ * test: post builder๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ ์คํธ ์์ ๋ฐ ๋๋ฝ๋ ํ ์คํธ ์ถ๊ฐ * [#183] ๊ฒ์๊ธ ๋๊ธ ๊ธฐ๋ฅ์ ๊ตฌํ (#265) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * feat: HomeFeed ์ปดํฌ๋ํธ์์ ๋ก๊ทธ์ธ ๋ ์ํ์์ ์์ ์ ๊ฐ์๊ธ๋ง ์์ ์์ด์ฝ์ด ๋จ๋๋ก ๋ณ๊ฒฝ * feat: BottomSliderPortal ์ปดํฌ๋ํธ ๊ตฌํ * feat: CommentSlider ์ปดํฌ๋ํธ ๊ตฌํ * chore: Layout ์์ ๊ฐ์ฒด ์ด๋ฆ LAYOUT ์ผ๋ก ๋ณ๊ฒฝ * feat: getLastHash util ํจ์ ๊ตฌํ * feat: getTabTextColor util ํจ์ ๊ตฌํ * feat: useBottomSlider ํ ๊ตฌํ * refactor: PostItem ์ปดํฌ๋ํธ ์์ - ํด๋น ์ปดํฌ๋ํธ์์ ๋๊ธ ์ ๋ ฅ ๊ฐ ์ ์ฅ ๋ฐ ์์ ์ ๋ด๋นํ์ง ์๋๋ก ์์ - ๋๊ธ ์ถ๊ฐ ์์ด์ฝ ๋ฒํผ ์ญ์ - Post, CommentData ํ์ ์ id ์์ฑ ํ์ ์ string -> number ๋ก ์์ * feat: ๋๊ธ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ - Tabs ์ปดํฌ๋ํธ๊ฐ tabIndicatorKind ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ indicator ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ - useFeed -> useFeedMutation ์ผ๋ก ์์ - HomeFeedPage ์์์ useFeed ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ useHomeFeed ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ - COMMENT_INPUT_HEIGHT ๋ ์ด์์ ์์ ์ถ๊ฐ - ์์์ฉ UserFeedPage ์ TagFeedPage ์ ๋ฐ์ดํธ (์ฌ์ ํ ์์์ฉ) * fix: CommentSlider ํด์ ๋ผ์ฐํ ์ผ๋ก ์ธํด ํน์ UserFeedPage ๋ ๋๋ง์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - CommentSlider ๋ฅผ ํ ๊ธํ ๋๋ history.location ์ state ์ query param ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋๋ก ์์ - NavigationHeader ์ปดํฌ๋ํธ์ height: content-fit ์์ฑ ์ญ์ & ๋ก๊ทธ์์ ๋ฒํผ์ padding ๊ฐ ์์ - HomeFeed -> Feed ๋ก ์ปดํฌ๋ํธ ์ด๋ฆ ์์ * feat: ๋๊ธ ์ ์ฅ ์ ์์ธ ์ฒ๋ฆฌ ์ถ๊ฐ * [#199, #248, #184] ๊ฒ์๊ธ ์ญ์ & ๊ฒ์๊ธ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๊ตฌํ (#271) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * feat: ๊ฒ์๊ธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ & ์ด๋ฏธ์ง๊ฐ ์์ ์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋ณด์ฌ์ฃผ๊ธฐ ๊ตฌํ - ์ญ์ ๋ฒํผ์ ๋ํ๋๊ฒ ๋ง๋ค๊ธฐ ์ํ ButtonDrawer ์ปดํฌ๋ํธ ๊ตฌํ * feat: TagInputForm ์์์ Tag ์ ๋ ฅ ์ค ๋ชจ๋ฐ์ผ ๊ฐ์ ํค๋ณด๋๊ฐ ๋ ์ด์์์ ๊นจ๋จ๋ฆฌ๋ ๋ฌธ์ ํด๊ฒฐ - ์๋ฌ ๋ฐ์์ tag input ์ blur ์ฒ๋ฆฌ * [#243] s3 proxy ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#244) * chore: s3-proxy properties ํฌ๋งท์ yaml๋ก ์์ (#243) * chore: ํ๋ก๋์ ํจํค์ง๋ช ์ปจ๋ฒค์ ๋ง๊ฒ ์์ (#243) * test: S3Storage ์ฌ๋ผ์ด์ฑ ํ ์คํธ ์ถ๊ฐ (#243) * test: StorageService ์ฌ๋ผ์ด์ฑ ํ ์คํธ ์ผ์ด์ค ์ถ๊ฐ (#243) * refactor: StorageController ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ถํ์ํ given์ ์ญ์ (#243) * refactor: ์ธ์ ํ ์คํธ ๋ถํ์ํ throws์ ์ญ์ (#243) * refactor: ์ปค์คํ ์์ธ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์๋ฌ ์ฝ๋ ์ถ๊ฐ (#243) * refactor: ํจํค์ง๋ช ๋ณ๊ฒฝ ๋ฐ ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์์ (#243) * refactor: 1์ฅ์ด๋ผ๋ ์ ๋ก๋ ์คํจ์ ์์ธ ๋ฐ์ํ๋๋ก ๋ณ๊ฒฝ (#243) * [#230] ๊ฒ์ํ์ด์ง ๊ตฌํ (#274) * feat: ๊ฒ์ mock data ์ถ๊ฐ * fix: LoginWrapper children ํ์ ์์ * feat: search context ์ถ๊ฐ * feat: SearchHeader์ SearchContext ์ ์ฉ * feat: SearchPage ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * fix: ์คํ์์ * ์ถ๊ฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * refactor: useFollow๋ถ๋ฆฌ ๋ฐ follow mutation ์๋ฌ์ฒ๋ฆฌ ์์ค ๋ณ๊ฒฝ * feat: ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ์์ ํ๋ก์ฐ ๊ธฐ๋ฅ ๊ตฌํ * fix: ๊ฒ์ํ์ด์ง ์ง์ ์ ์ด์ ๊ฒ์ ๊ธฐ๋ก ์ด๊ธฐํ * [#253] Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#263) * feat: Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#253) * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#253) * test: ์๋น์ค ํ ์คํธ ์์ฑ (#253) * test: ํตํฉ ํ ์คํธ ์์ฑ (#253) * test: ์ธ์ ํ ์คํธ ์์ฑ (#253) * test: ๋จ์ ํ ์คํธ ์์ฑ (#253) * style: ๊ฐํ ์ถ๊ฐ (#253) * refactor: ํด๋์ค๋ช ๋ณ๊ฒฝ (#253) - PlatformExtractor -> PlatformContributionExtractor - PlatformApiRequester -> PlatformContributionApiRequester * refactor: @Profile ์ถ๊ฐ (#253) * refactor: ์์ -> @Value ๋ณ๊ฒฝ (#253) * refactor: ์ปค์คํ ์์ธ ์ถ๊ฐ (#253) * test: ๋จ์ ํ ์คํธ ์ถ๊ฐ (#253) * refactor: Calculator ๊ฐ์ฒด๋ก ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ (#253) - Service์ ์๋ ๋น์ฆ๋์ค ๋ก์ง์ Calculator ๊ฐ์ฒด๋ก ์ด๋ - ๋จ์ ํ ์คํธ ์ถ๊ฐ * test: ๋ถํ์ํ import ์ญ์ * refactor: ํจํค์ง ์์น ๋ณ๊ฒฝ (#253) - ์ธํฐํ์ด์ค๋ domain, ๊ตฌํ์ฒด๋ infrastructure์ ์์น * style: ์ ๊ทผ ์ ์ด์ ์ญ์ (#253) * refactor: Calculator ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ฐํ ํ์ ๋ณ๊ฒฝ (#253) * refactor: try-catch ๋ฌธ์ผ๋ก ์์ธ ํธ๋ค๋ง (#253) * test: ๋จ์ ํ ์คํธ ์์ (#253) * refactor: Calculator ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ฐํ ํ์ ๋ณ๊ฒฝ (#253) - DTO -> Domain Object * [#277] useFollow ํ ์คํธ ์์ฑ (#278) * feat: SearchPage ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: useFollow๋ถ๋ฆฌ ๋ฐ follow mutation ์๋ฌ์ฒ๋ฆฌ ์์ค ๋ณ๊ฒฝ * refactor: acceessToken์ด ์๋ ๊ฒฝ์ฐ์ ๋ํ ์๋ฌ์ฝ๋ ์ถ๊ฐ * chore: hook ํ ์คํธ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ค์ * refactor: ErrorCode ํ์ ์ถ๊ฐ * refactor: handleHTTPError ๋ชจ๋ ๋ถ๋ฆฌ - handleHTTPError ํจ์๋ฅผ utils/error.ts๋ก ์ด๋ - ์์ ๋ฐ ํ์ ๋ถ๋ฆฌ * test: useFollow ํ ์คํธ ์ฝ๋ ์์ฑ * refactor: ํ์ผ์ด๋ฆ ๋ณ๊ฒฝ - constants/httpError.ts ๋ฅผ constants/error.ts ๋ก ๋ณ๊ฒฝ * refactor: useFollow ์๋ฌ์ฒ๋ฆฌ - accesstoken์ด ์์ ๊ฒฝ์ฐ์ ๋ํ ์๋ฌ์ฒ๋ฆฌ ์ถ๊ฐ - client error๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฐ์ฒด ๊ตฌํ * [#124, #262, #275, #276] ์์ฒญ ๊ด๋ จ ์ด์ ํด๊ฒฐ (#280) * fix: ํ๋กํ ์์ api ํ์ ๋ณ๊ฒฝ - put๋ฉ์๋์์ post๋ฉ์๋๋ก ๋ณ๊ฒฝ - ๋ณ๊ฒฝ๋ ์ด๋ฏธ์ง๊ฐ ์์๊ฒฝ์ฐ ๋น ํ์ผ ๊ฐ์ฒด ์ ์ก - ํ ์ค ์๊ฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์๋ ๊ทธ๋๋ก ๋ณด๋ด๊ธฐ * fix: ๊ฒ์ api url ๋ณ๊ฒฝ * fix: github stats ์์ ๋ฐ api url ๋ณ๊ฒฝ * refactor: ์ต์ด ํ์ด์ง ์ง์ ์ ํ ํฐ์ด ์ ํจํ์ง ์์ผ๋ฉด ๋ก๊ทธ์์ * fix: ๋ด ๊ฒ์๋ฌผ์ ํ๋กํ ์์ญ์ ํด๋ฆญํ๋ฉด ๋ด ํ๋กํ ํ์ด์ง๋ก ์ด๋ํ๋๋ก ์์ * refactor: ์ ์ ํ๋กํ, ๋ดํ๋กํ ๋ถ๊ธฐ๋ฅผ ProfilePage์๊ฒ ์์ * feat: ์ต์ด ์ง์ ์ดํํธ app์ผ๋ก ๋ถ๋ฆฌ * [#257] ๊ฒ์๋ฌผ ์ข์์ ๊ธฐ๋ฅ ๊ตฌํ (#264) * feat: ๊ฒ์๋ฌผ ์ข์์ ๊ธฐ๋ฅ ๊ตฌํ (#257) * feat: ๊ฒ์๋ฌผ ์ข์์ ๋ฐ ์ข์์ ์ทจ์ ๊ธฐ๋ฅ ํ ์คํธ ๊ตฌํ (#257) * refactor : ํผ๋๋ฐฑ ๋ฐ์ (#257) * [#236] ๋ก๊น ๊ธฐ๋ฅ ์ธํ (#237) * chore: ํ์ฑ ํ๋กํ์ ๋ฐ๋ฅธ logback ํ๊ฒฝ ์ค์ (#236) * feat: ์ ์ญ ์์ธ ์ด๋๋ฐ์ด์ ์ ๋ก๊ฑฐ ์ถ๊ฐ ๋ฐ DB / ๋ฐํ์ ์์ธ ๋ฐ์ธ๋ฉ (#236) * chore: s3proxy directory logback ์ค์ ์ถ๊ฐ (#236) * feat: s3proxy ์์ธ ์ด๋๋ฐ์ด์ ์ถ๊ฐ (#236) * refactor: applicationException ํธ๋ค๋ฌ ์ด๋๋ฐ์ด์ ๋ฉ์๋๋ช ์์ (#236) * refactor: ๋ฐฑ์๋ ํ๋ก์ ํธ ๋ก๊น ์ ๋ต ์์ (#236) - ํ ์คํธ ๋ก๊น ์ ๋ต ์ฝ์๋ก ์์ - DB ๊ด๋ จ ๋ก๊ฑฐ ์ข ๋ฅ ํ๋กํ๋ณ ์ฌ์ ์ - ๋ถ๋ชจ ๋ก๊ฑฐ๊ฐ ์ฐํ์ง ์๋๋ก additivity false ์ถ๊ฐ - ๊ธ๋ก๋ฒ ์์ธ ์ด๋๋ฐ์ด์ ์ ๋ก๊น ์์ ์ ์ * chore: logback-access ์ค์ ์ถ๊ฐ ๋ฐ ํ๋กํ๋ณ ์ค์ ๊ตฌ์ฑ (#236) * chore: s3proxy ํ๋ก์ ํธ logback-access ์ค์ ์ถ๊ฐ (#236) * refactor: s3proxy, backend ํ๋ก์ ํธ log ํฌ๋งท ๋ณ๊ฒฝ (#236) * chore: backend logger DB, Access ๋ฑ ์ฉ๋๋ณ ๋ถ๋ฆฌ (#236) * chore: s3proxy logger DB, Access ๋ฑ ์ฉ๋๋ณ ๋ถ๋ฆฌ (#236) * [#254] ์ ์ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํ (#266) * feat: User ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ํผ๋๋ฐฑ ๋ฐ์ ๋ฆฌํฉํ ๋ง * refactor: ํ๋ก ํธ์ธก๊ณผ ํ์ํ ๋ถ๋ถ ๋ฆฌํฉํ ๋ง * fix: ๊ฒ์ ์์ฒญ์ user์ tag ๋ถ๋ฆฌ (#283) * [#267] ํ๋กํ ์์ ๊ธฐ๋ฅ์ ๊ตฌํ (#279) * feat: ์ ์ ํ๋กํ ์์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ํผ๋๋ฐฑ ์ ์ฉ * refactor: ํผ๋๋ฐฑ ๋ฆฌํฉํ ๋ง * [#269] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#272) * feat: ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#269) * fix: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ๋ฒ๊ทธ ํด๊ฒฐ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ํตํฉ ํ ์คํธ ์์ฑ (#269) * fix: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ๋ฒ๊ทธ ํด๊ฒฐ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ํตํฉ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์๋น์ค ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์๋น์ค ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์ธ์ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์ธ์ ํ ์คํธ ์์ฑ (#269) * refactor: ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ญ์ (#269) * test: ๋ถํ์ํ ํ ์คํธ ์ญ์ (#269) * refactor: Command, Query ๋ถ๋ฆฌ (CQS) (#269) * test: verify() ๊ฐ ์ง์ (#269) * refactor: ์ํ๋ณ๋ก update() ๋ถ๋ฆฌ (#269) * fix: ํด๋นํ๋ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ธ์ง ํ์ธํ๋ ๋ก์ง ์ถ๊ฐ (#269) * [#284] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๋ฒ๊ทธ ํด๊ฒฐ (#285) * test: ํตํฉ ํ ์คํธ ๋ฒ๊ทธ ํด๊ฒฐ (#284) * test: ๋ถํ์ํ ํ ์คํธ ์ญ์ (#284) * fix: Github ํต๊ณ ์กฐํ ๋ฒ๊ทธ ํด๊ฒฐ (#287) (#288) * refactor: like ๊ด๋ จ DTO ํ๋๋ช ๋ฒ๊ฒฝ (#289) (#291) * fix: restDocs ํ๋๋ช ์์ ๋ฐ Boolean์ผ๋ก ๋ณ๊ฒฝ (#292) (#297) * [#228] ๊ฒ์๊ธ ์์ ๊ธฐ๋ฅ ๊ตฌํ (#286) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * refactor: ๊ฒ์๊ธ ์ถ๊ฐ ๊ณผ์ ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ฐ ์ปดํฌ๋ํธ์์ ๋ถ๋ฌ์ค์ง ์๊ณ Page ์ปดํฌ๋ํธ์์ ๋ด๋ ค์ฃผ๋๋ก ์์ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ - ์ปจ๋ฒค์ ์ ๋ง๊ฒ useGithubTagsQuery ๋ฉ์๋ ์์ - EditPostPage ํ์ด์ง ์ปดํฌ๋ํธ ๊ตฌํ - PostEditDataContext, PostEditStepContext ์ถ๊ฐ - usePostEdit, usePostStep ํ ์ถ๊ฐ * [#258] ์ ์ ํ๋ก๋์ ์ฝ๋ ๋ฐ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#268) * refactor: User ๋๋ฉ์ธ ๋ถ์กฑํ ํ๋ก์ฐ, ์ธํ๋ก์ฐ ๋ฑ ํ ์คํธ ์ถ๊ฐ (#258) * refactor: User equals & hashCode ์ ์์ getter ์ฌ์ฉ (#258) * refactor: Follow ๋๋ฉ์ธ equals & hashCode ์ ์์ getter ์ฌ์ฉ (#258) * refactor: Following, Follwers ๋ฉ์๋๋ช ๋ฐ ์ ์ธ ์์ ๋ณ๊ฒฝ (#258) * refactor: Followings, Followers ํ ์คํธ ์ถ๊ฐ ๋ฐ ์์ฑ์ ์ถ๊ฐ (#258) * refactor: User.profile ๊ด๋ จ ๋๋ฉ์ธ ์ฝ๋ ํฌ๋งทํ ๋ฐ setter ์ญ์ (#258) * refacotr: User ๋ด๋ถ Posts์ ์์ฑ์ ๋ณ๊ฒฝ ๋ฐ UserRepository ์์์ฑ ํ ์คํธ ์ถ๊ฐ (#258) * refactor: User ์์ฉ ๊ณ์ธต ๋ฉ์๋ ์ถ์ถ ๋ฆฌํฉํ ๋ง ๋ฐ DTO getter ์ถ๊ฐ (#258) * refactor: AppUser์ UserService ์นจํฌ ์ ๊ฑฐ ๋ฐ ํ ์คํธ ์ฝ๋ ๊ณ์ธต ๋ถ๋ฆฌ (#258) - AppUser๊ฐ ์๋น์ค ์ฝ๋์ ์นจํฌํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด AppUser ์ถ์ ํด๋์ค์ ๋ณ๋์ ์ด๋ฆ ํธ์ถ ๋ฉ์๋๋ฅผ ์ถ๊ฐํจ * refactor: UserService ํตํฉ ํ ์คํธ ๊ณ์ธต์ ์ผ๋ก ๋ฆฌํฉํ ๋ง (#258) * refactor: AuthUserRequest ์์ฐ๋ DTO ๋ฐ ์์ฑ์ ์ญ์ ์ ๋ฉ์๋ ํ๋ผ๋ฏธํฐ๋ช ํต์ผ (#258) * refactor: User ํ ์คํธ ๋ฉ์๋ nested ์ ์ฉ (#258) * refactor: User ๋ถํ์ํ ์๋ฒ ๋๋ ํ์ getter ์ญ์ ๋ฐ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#258) * refactor: User ์ํฐํฐ ๋ด๋ถ ์๋ฒ ๋๋ ํ์ ํด๋์ค์ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ protected๋ก ๋ณ๊ฒฝ (#258) * refactor: UserRepository ํ ์คํธ nested ์ ์ฉ (#258) * refactor: UserService ์ฌ๋ผ์ด์ฑ ํ ์คํธ verify ๊ตฌ์ฒดํ ๋ฐ ๋ฉ์๋ ๋ถ๋ฆฌ (#258) * refactor: UserService ํตํฉ ํ ์คํธ ๋ฐ๋ณต๋๋ given ๋ถ๋ถ ๋ฉ์๋ ์ถ์ถ (#258) * refactor: UserController ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ก๊ทธ์ธ์ฌ๋ถ ๋ถ๋ฆฌ ๋ฐ DTO Getter ์ถ๊ฐ (#258) * refactor: User ์ธ์ ํ ์คํธ ๋ฐ๋ณต๋๋ api ํธ์ถ ๋ฉ์๋ ํต์ผ (#258) * refactor: ๋ณํฉ ์ถฉ๋ ํด๊ฒฐ (#258) * refactor: UserDataJpaTest Nested C-D-I ๋ช ์ธ ๋ณ๊ฒฝ (#258) * refactor: ์ ์ ์ปจํธ๋กค๋ฌ ์ฌ๋ผ์ด์ฑ ํ ์คํธ verify ์ถ๊ฐ ๋ฐ ํ ์คํธ ์ค๋ฅ ์์ (#258) - ๊ธฐ์กด unfollow ํ ์คํธ๊ฐ ์๋ชป ์งํ๋๊ณ ์์๋ ๋ถ๋ถ์ ํด๊ฒฐ * chore: UserService ํฌํผ ๋ฉ์๋ ์์น ์์ (#258) * refactor: UserController ์๋ต ์์ฑ ํฌํผ ๋ฉ์๋ ์์น ์ด๋ (#258) * refactor: Follow, Unfollow์ ๋ ์ ์ ๋๋ฑ์ฑ ๋น๊ต ๋ก์ง Follow ํด๋์ค๋ก ์ด๋ (#258) * refactor: User์ ํ๋ก์ฐ, ์ธํ๋ก์ฐ ์กฐ๊ฑด ๊ฒ์ฌ ๋ก์ง์ Followers, Followings๋ก ์ด๋ (#258) * chore: User.addComment ํ ์คํธ ์ญ์ (#258) * refactor: AuthUserRequestDto์ AppUser์ ๋ํ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ถ๊ฐ (#258) * refactor: User ์ปจํธ๋กค๋ฌ ํ ์คํธ anyString given/verify ์ธ์ ๋ณ๊ฒฝ (#258) * fix: ํ๋ก๋์ ๋ฐ ํ ์คํธ ์ฝ๋ ์์ ๋ณ๊ฒฝ ๋ฐ SpringBoot ํตํฉํ ์คํธ๋ก ์ธํ Nested ์ ๊ฑฐ (#258) * refactor: ๋ณํฉ ์ถฉ๋ ํด๊ฒฐ ๋ฐ AppUser๋ฅผ ์๋น์ค์์ ์ฌ์ฉ๋ชปํ๋๋ก ๋ณ๊ฒฝ (#258) * chore: ํ๋ก๋์ ์ฝ๋ ์์ ์ ๋ ฌ ๋ฐ DTO ํ๋๋ช ๋ณ๊ฒฝ (#258) * chore: User ๊ด๋ จ ํ ์คํธ ์ฝ๋ ์์ ์ ๋ ฌ ๋ฐ ํฌ๋งทํ (#258) * [#293] Logback ์ธ์ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ (#299) * fix: logback appender ๊ฒฝ๋ก ์์ (#293) * chore: rest docs ๋ฌธ์ ๋ณ๊ฒฝ * [#273, #301] profile page ์๋ฌ์ฒ๋ฆฌ ์์ค ์์ ๋ฐ ๊ธฐํ ๋ฒ๊ทธ ํด๊ฒฐ (#302) * refactor: ํ๋กํ ์์ ํ์ด์ง ์๋น์ค๋ก์ง ๋ถ๋ฆฌ ๋ฐ ์๋ฌ์ฒ๋ฆฌ ์์ค ์์ * refactor: ์ค๋ณต๋๋ validation ์ ๊ฑฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * feat: ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ์ ์ ์ ํ๋กํ ํ์ด์ง ๋งํฌ ์ถ๊ฐ * fix: ํ๋กํ ์์ ํ ๋ฐ์์ด ์๋๋ ์ด์ ํด๊ฒฐ * refactor: api url ๋ณ๊ฒฝ * fix: ๋ก๊ทธ์ธ์ผ๋ก ๊ฒ์๊ธ ์กฐํ์ ๊ฒ์คํธ๋ก ์ธ์ํ๋ ๋ฌธ์ ํด๊ฒฐ (#298) * [#295] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ DB ๋ฒ๊ทธ ํด๊ฒฐ (#300) * refactor: findPostByUser -> findPostByIdAndUser ๋ณ๊ฒฝ (#295) * test: Data JPA ํ ์คํธ ์ถ๊ฐ (#295) * refactor: ์์ฑ์ ์์ (#295) * test: ์์ธ ๋ฐ์ -> Optional.empty() ๊ฒ์ฆ ๋ณ๊ฒฝ (#295) * refactor: ๋ถํ์ํ ์ฝ๋ ์ญ์ (#295) * refactor: ํด๋นํ๋ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ด ๋ง๋์ง ํ์ธํ๋ ๊ณผ์ ์์ (#295) - DB์์ ์ฒ๋ฆฌ -> ๋น์ฆ๋์ค ๋ก์ง์์ ์ฒ๋ฆฌ๋ก ๋ณ๊ฒฝ * refactor: ๋ถํ์ํ ์ฝ๋ ์ญ์ (#295) * test: ๋ถํ์ํ import ์ญ์ (#295) * [#290] ์ค๊ฐ ๋ฐ๋ชจ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐ (#303) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ์ค๊ฐ ๋ฐ๋ชจ ๋ฒ๊ทธ ํด๊ฒฐ - ๊ฒ์๊ธ ๋ฐ์ดํฐ ์์ฑ ์ค isLiked -> liked ๋ก ๋ณ๊ฒฝ - ๋ก๊ทธ์ธ ํ์ ๋๋ง ์ข์์ ๋ฒํผ์ด ๋ํ๋๋๋ก ์์ - ๋ก๊ทธ์ธ ํ์ ๋๋ง ๋๊ธ ๋ฌ๊ธฐ ๋ฒํผ์ด ๋ํ๋๋๋ก ์์ - ์ข์์, ์ข์์ ์ทจ์ ์ํ ๋ฐ์ ๋ก๊ทธ์ธ ๋ฒํผ padding ์์ - ๋๊ธ์ ์ถ๊ฐํ์ ๋ ๋ฐ๋ก ์ถ๊ฐ๋ ๋๊ธ์ ํ๋ฉด์์ ํ์ธํ ์ ์๊ฒ ์์ - ๋๊ธ์ด ๊ฒ์๊ธ ์กฐํ์์๋ ์ต๋ 10๊ฐ๋ง ๋์ฌ ์ ์๋๋ก ์์ - ๊ธฐ์กด์ ๋๊ธ ๋ฌ๊ธฐ input ์ ๋๊ธ ์ฌ๋ผ์ด๋ ํ ๊ธ ๋ฒํผ์ผ๋ก ๋ณํ * fix: api url ์์ (#305) * fix: Post - Comments ์์์ฑ ์ ์ด ๋ฒ๊ทธ ํด๊ฒฐ (#306) (#307) * [#308] ๊ฒ์๋ฌผ ์์ ๋ฒ๊ทธ ํด๊ฒฐ (#309) * fix: orphanremoval = true ์ต์ ์ถ๊ฐ (#308) * test: ํตํฉ ํ ์คํธ ์ถ๊ฐ (#308) * [#310] ํ๋ฐ๋ชจ ๊ฒฐ๊ณผ ๋ฐ์ - ํ๋กํ ํ์ด์ง (#311) * fix: api url ์คํ ์์ * fix: ๋๋ฝ๋ key prop ์ถ๊ฐ * fix: ๊นํํต๊ณ ๊ธฐ๋ฅ ์์ api๋ก ์์ * ํ๋กํ ํ์ด์ง ํ๋จ ๋ ์ด์์ ๋ฒ๊ทธ ์์ * [#312] ๋๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#313) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ - ๋๊ธ ์ถ๊ฐ ์ ์ต๊ทผ ๋๊ธ๋ก ์คํฌ๋กค์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ ์ถ๊ฐ, ์ญ์ ์ ์ค๋ต๋ฐ๋ฅผ ํตํด ํผ๋๋ฐฑ - ๊ฒ์๊ธ ์ข์์ & ์ข์์ ์ทจ์ ๊ฒฐ๊ณผ๊ฐ ํ๋ฉด์ ๋ํ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ tags ์ ๋ณด ํ์ฑ ๋ฌธ์ ํด๊ฒฐ (๋ณด๋ผ ๋ , ๊ธฐ๋ฐ join ๋ฌธ์์ด๋ก, ๋ฐ์ ๋๋ ์ผ๋ฐ ๋ฌธ์์ด ๋ฐฐ์ด๋ก) * fix: ๋ชจ๋ฐ์ผ ์์ ๋ ์ด์์ ๋ฐ ๊ทธ๋ํฝ ๋ฌธ์ ํด๊ฒฐ - ๋ชจ๋ฐ์ผ ์์์ ๋ฒํผ์ด๋ ๋งํฌ ํด๋ฆญ์ ๋ํ๋๋ ๊ธฐ๋ณธ ํ์ด๋ผ์ดํธ ์ปฌ๋ฌ ์ ๊ฑฐ - ๋๊ธ input ํจ๋ฉ ์กฐ์ - ํ๋กํ ์๋ ๋ฐฐ๊ฒฝ ํฌ๋ช -> ํฐ์์ผ๋ก ๋ณ๊ฒฝ - kind ๊ฐ pills ์ธ Tabs ์ปดํฌ๋ํธ์ hover ์ดํํธ ์ ๊ฑฐ(๋ชจ๋ฐ์ผ ์์์ ํด๋ฆญ๋ ๊ธ์จ๊ฐ ํฌ๋ฏธํด์ง๋ ๋ฌธ์ ํด๊ฒฐ) * [#314] ์ธ๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#315) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: 2์ฐจ ๋ฐ๋ชจ ์ธ๋ฒ์งธ ๋ฒ๊ทธ ์์ - ๋๊ธ ํ๋กํ ์ด๋ฏธ์ง, ์ ์ ์ด๋ฆ์ด ๊ณ ์ ๋์ด ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ ์ถ๊ฐ ์ ๋ ํฌ์งํฐ๋ฆฌ ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๊ธฐ ์ํ ๊ณ์ ์ด ํ๋๋ก ๊ณ ์ ๋์ด ์๋ ๋ฌธ์ ํด๊ฒฐ - ์์ ๋ ํฌ๋ชฉ๋ก ๊ฒ์ ๊ธฐ๋ฅ ์ถ๊ฐ * [#316] 3์ฐจ๋ฐ๋ชจ ๊ฒ์ ํ์ด์ง ๋ฐ UI ๊ด๋ จ ์ด์ ํด๊ฒฐ (#317) * fix: ๊ฒ์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์์ ํ๋ก์ฐ์ ๊น๋ฐ๊ฑฐ๋ฆฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ * feat: ๊ฒ์๋ฌผ ์ญ์ ์ ์ปจํ ์ถ๊ฐ * fix: ์ด๋ฏธ์ง ๋ฐ ํ ์คํธ ์ธ๋์ผ์ดํฐ ์ฌ์ด์ฆ ๊ณ ์ * feat: ๊ฐ๋ตํ ๋ฒํผ ์ถ๊ฐ * [#318] ๋ค๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#319) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋ค๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ - ๋๊ธ ์ฌ๋ผ์ด๋ ๊ฐ๋ก ์คํฌ๋กค๋ง ๋๋ ๋ฌธ์ ํด๊ฒฐ - ์ด๋ฏธ์ง๋ค ์ด ์ฉ๋ ์ ํ 1MB ๋ก ์์ - ๊ฒ์๊ธ ๋ด์ฉ์ ๊ฐํ์ด ์ค์ ๋ก ๋ฐ์๋๋๋ก ์์ - ๊ฒ์๊ธ ์ถ๊ฐ ์ค ํ๊ทธ ์ ๋ ฅ ํ tagInputLength ๊ฐ 0 ์ผ๋ก ์ด๊ธฐํ ๋๋๋ก ์์ * [#320] ๊ฒ์๋ฌผ ์ถ๊ฐ ์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด alert์ฒ๋ฆฌ (#321) * fix: ๊ฒ์๋ฌผ ์ถ๊ฐ ์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด alert ์ฒ๋ฆฌ * refactor: ๋๋ณด๊ธฐ, ๊ฐ๋ตํ ์ ์ฑ ๋ณ๊ฒฝ * [#322] ๊ฒ์๊ธ ์์ ์ ์ถ๊ฐ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ์๋ ์์ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ๋ณ๊ฒฝ (#323) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๊ฒ์๊ธ ์์ ์ ์ถ๊ฐ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ์๋ ์์ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ๋ณ๊ฒฝ * [#324] ๋ค๋ฅธ ์ด์ฉ์์ UserFeed ์ข์์๊ฐ ๋์ํ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ (#325) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋ค๋ฅธ ์ด์ฉ์์ UserFeed ์ข์์๊ฐ ๋์ํ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - currentUsername(์ ์ํ ์ด์ฉ์) -> username(์ด์ฉ์ ํผ๋ ํ์ด์ง์ ๋์ ์ด์ฉ์) ์ผ๋ก ๋์ ๋ณ๊ฒฝ * [#259] ํฌ์คํธ ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#270) * refactor: Post ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#252) * refactor: infrastructure ์ ๋ํ ์คํธ, comment ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ๊ด๋ จ ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post application ๋ ์ด์ด ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: PostControllerTest ๋ฆฌํฉํ ๋ง ์ถ๊ฐ * test: post builder๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ ์คํธ ์์ ๋ฐ ๋๋ฝ๋ ํ ์คํธ ์ถ๊ฐ refactor: Post์ Tag๊ด๋ จ ๋น์ฆ๋์ค ๋ก์ง PostTags๋ก ์ด๋ (#259) ์ด๋๊ณผ ํจ๊ป Post์ Build ํจํด ์ ์ฉ๊ณผ ๋ฆฌํฉํ ๋ง. refactor: PostService์ PostController์ ์ฑ ์ ๋ถ๋ฆฌ. ๋ฐ s3Storage ํ์ผ ์ ์ฅ ๋ฐฉ์ ์ถ๊ฐ (#259) feed๊ด๋ จ๊ณผ, ๊ฒ์๋ฌผ ๊ด๋ จ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๊ด์ฌ์ฌ๋ฅผ ๋ง์ถค. refactor: ์ ์ฒด์ ์ธ import ์ ๋ฆฌ (#259) refactor: ํจํค์ง ์ ๋ฆฌ (#259) refactor: Post์ getImageUrl ์ค๋ณต ๋ฉ์๋ ์ ๊ฑฐ (#259) refactor: CommentResponse์ ๋๋ฉ์ธ ์ฐธ์กฐ ์ ๊ฑฐ ๋ฐ DtoAssembler ๋ฆฌํฉํ ๋ง (#259) refactor: Feed๊ด๋ จ ์ปจํธ๋กค๋ฌ, ์๋น์ค, PostDto์ด์ ๋ธ๋ฌ ๋ฆฌํฉํ ๋ง, ๋ ์ด์ด์ ๋ง์ง ์๋ DTO ์ด๋ (#259) refactor: CommentRequestDto ํจํค์ง ๋ณ๊ฒฝ ๋ฐ PostController ๋ฆฌํฉํ ๋ง (#259) refactor: PostResponseDto๊ฐ presentation~presentation๊น์ง ์ฌ์ฉ๋๋๊ฒ์ ๋ถ๋ฆฌ (#259) refactor: showRepositories -> userRepositories ๋ฉ์๋๋ช ๋ณ๊ฒฝ (#259) refactor: RepositoryResponse, domain -> controller๊น์ง ์ฌ์ฉ ๋๋๊ฒ์ ๋ถ๋ฆฌ (#259) style: domain์ ์ ์ธํ ๋ ์ด์ด์ ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ฒดํฌ (#259) refactor: PostImageUrlResponseDto Builder ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ refactor: Post ์ปจ๋ฒค์ ๋ฐ ๋ฉ์๋ ์์ ์ ๋ฆฌ (#259) refactor: Post user ๊ด๋ จ ๋ฉ์๋๋ช author๋ก ๋ณ๊ฒฝ ๋ฐ ํ๋, ๋ฉ์๋ ์ ๋ฆฌ (#249) refactor: PostTag equals getId()๋ก ๋ณ๊ฒฝ ๋ฐ ํ๋ ์์ ์ ๋ฆฌ (#249) refactor: Like๋ฅผ VO๋ก ์ทจ๊ธ, Likes๋ฅผ ์ปจํ ์ด๋๋ก ์ทจ๊ธํ๋๋ก ๋ณ๊ฒฝ (#249) refactor: Image VO๋ก ์ทจ๊ธ ๋ฐ ๋์ ๋ฉ์๋ ๋ค์ด๋ฐ ๋ณ๊ฒฝ, PostContent validation๋ก์ง ๋ณ๊ฒฝ (#249) refactor: CommentContent VO ์ทจ๊ธ, comment ๋์๋ฉ์๋ ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ์ฑ ์ ๋ณ๊ฒฝ (#249) refactor: Post equals getter๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ (#249) refactor: ์ฐ๊ด๊ด๊ณ ๋์ ๋ฉ์๋ ๋ฐํ๊น ์๋๋ก ๋ณ๊ฒฝ (#249) style: ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ ์ฉ (#249) refactor: ์ถ์ํ ์์ค ํํํ ์์ (#249) * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ์ผ ์์ * fix: User ๋น๊ต ๋ก์ง ๋ฒ๊ทธ ํด๊ฒฐ * refactor: ๋ฉ์๋์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * refactor: ๋๋ฏธํฐ์ ์์น ์ค์ * refactor: ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋ ์ ๊ฑฐ * refactor: ๊นจ์ง๋ ํ ์คํธ ์์ * refactor: ํ์ ์ถ๋ก ๋ณ์๋ฅผ ํ์ ํ์ผ๋ก ๋ณ๊ฒฝ * refactor: ์๋ฏธ๊ฐ ์๋ ๋ณ์๋ช ์ ๊ฑฐ like -> ๋ฉ์๋์ฐธ์กฐ * style: ํ ์ปจ๋ฒค์ ์ ์ฉ * [#332] Acceptance Test๋ฅผ ์ํ Request builder ๊ธฐ๋ฅ์ ๊ตฌํ. (#333) * [#200, #205] ํ๊ทธ ๊ด๋ จ ์ด์ ํด๊ฒฐ (#216) * fix: ๊ฒ์๊ธ ์ถ๊ฐ ์, ์ด๊ธฐ์ ๋ถ๋ฌ์จ ๊ธฐ๋ณธ tag ๋ค์ด ์ฌ๋ผ์ง์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ์ค ํ๊ทธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ * fix: break point ์ ๋ง๊ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ต๋ ๋๋น๋ฅผ 375px -> 425px ๋ก ์กฐ์ * [#217, #110] ํ ์คํธ ํจํค์ง ๊ตฌ์กฐ ์ ๋ฆฌ (#218) * chore: ์ธ์/ํตํฉ ํ ์คํธ ๋ฐ common(ํฝ์ค์ณ ํฉํ ๋ฆฌ, mock api) ํจํค์ง ๋ถ๋ฆฌ (#217) * chore: ๊ธฐ์กด ๋๋ฉ์ธ ํ ์คํธ ํจํค์ง๋ค์ unit ํ์๋ก ์ด๋ (#217) * refactor: Tag ๊ด๋ จ Github ํ๋ซํผ ํด๋์ค ์ด๋ฆ์ Tag ๋ช ์ (#217) * chore: Test ๊ด๋ จ Configuration ํต์ผ ๋ฐ Github API ๊ด๋ จ ํด๋์ค ํ๋กํ ์ค์ (#217) * chore: ๋กฌ๋ณต ์์กด์ฑ ์ถ๊ฐ (#217) * refactor: TestConfiguration ํด๋์ค๋ช ์ Infrastructure ๋ช ์ (#217) * refactor: PostFactory ๋น๋ ํจํด ์ ์ฉํ์ฌ ๊ฐ๋ ์ฑ ํฅ์ * refactor: ์คํจํ๋ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: UserFactory ๋น๋ ํจํด ์ ์ฉํ์ฌ ๊ฐ๋ ์ฑ ํฅ์ * refactor: PostFactory ์๋ฏธ ์๋ ๋ฉ์๋ ์ ๊ฑฐ * refactor: Test Configuration ์ด๋ฆ ๋ณ๊ฒฝ * refactor: user fixture setUp๋ก์ง ์์น ๋ณ๊ฒฝ * refactor: DTO Builder ์ด๋ ธํ ์ด์ ์ ์ฉ ๋ฐ Builder ์ ๊ณต ํด๋์ค ์ ๊ฑฐ * refactor: gradle.build ํ์ผ ์ ๋ฆฌ * style: ์๋ฏธ์๋ ๊ณต๋ฐฑ ์ ๊ฑฐ Co-authored-by: Minsung <sns2831@gmail.com> * [#223, #229] API ๋ณ๊ฒฝ์ฌํญ ๋ฐ์ ๋ฐ Post ์ค๋ณต์ ๊ฑฐ (#235) * fix: API ๋ช ์ธ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์ - image์ imageUrl์ ๋ํ ํค๊ฐ ๊ตฌ๋ถ - public repo๋ฅผ ๊ฐ์ ธ์ค๋ api ๋ช ์์ username ์ ๊ฑฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * feat: ์๋ก ํจ์น๋ post ์ค๋ณต์ ๊ฑฐ * fix: InfiniteScrollContainer effect ์์กด์ฑ ์์ * refactor: Snackbar ์ปดํฌ๋ํธ์ ์์น๋ฅผ @layout์ผ๋ก ๋ณ๊ฒฝ * fix: post interface ์์ * refactor: ์ค๋ต๋ฐ ๋ฉ์์ง๋ฅผ push ํ๋ ๋ฉ์๋ ์ด๋ฆ์ ๋ ๋ช ์์ ์ผ๋ก ๋ณ๊ฒฝ * fix: ์ค๋ณต๋ key prop ์์ * feat: http error ์ฒ๋ฆฌ ์ ํธ ๊ตฌํ * refactor: HomeFeedPage์ ์ํ๋ก์ง์ ํ ์ผ๋ก ๋ถ๋ฆฌ * [#204] Issue ๋ฐ PR Template ์์ (#239) * docs: PR ํ ํ๋ฆฟ ์์ * docs: ์ด์ ํ ํ๋ฆฟ ๋ฑ๋ก * docs: ์ด์ ํ ํ๋ฆฟ ์์ * docs: ์ด์ ํ ํ๋ฆฟ ์์ * [#222] ํ๋กํ ํ์ด์ง ํผ๋ ๋ฒ๊ทธ ์์ (#242) * refactor: ์ค๋ณต๋ ๊ฒ์๋ฌผ์ ์ ๊ฑฐํ๋ ๋ก์ง์ util๋ก ๋ถ๋ฆฌ * feat: ํ๋กํ ํผ๋์ ๋ฌดํ ์คํฌ๋กค ๊ธฐ๋ฅ ์ถ๊ฐ * refactor: profile page์ ์ํ๋ฅผ context๋ก ๋ถ๋ฆฌ * feat: ํ๋ก์ฐ ๋ฒํผ์ ๋ก๋ฉ ์ ๋๋ฉ์ด์ ์ถ๊ฐ * refactor: ๋ถํ์ํ ์ปจํ ์ด๋ ์ ๊ฑฐ * refactor: ProfilePage ๊ตฌ์กฐ ๊ฐ์ - ํ ์ ๋์ด์ฌ๋ฆฌ๋ ์์ค์ ์์ ๋ฒ์๋ก ์์ - context๋ฅผ ์ ๊ฑฐํ๊ณ ์ปจํ ์ด๋ ์ญํ ์ ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐ * [#219] ๊ฒ์๊ธ ์ถ๊ฐ ์ค ๋ฐ์ํ๋ ์๋ฌ์ ๋ํ ํผ๋๋ฐฑ, ํธ๋ค๋ง ๊ตฌํ (#241) * feat: BackDrop & MessageModalPortal ์ปดํฌ๋ํธ ๊ตฌํ - index.html ์ div#modal ํ๊ทธ ์ถ๊ฐ - MessageModalPortal ์ ๋ฆฌ์กํธ ํฌํธ์ ์ ์ฉํ์ฌ ๊ตฌํ - ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ํธํ๋๋ก useMessageModal ์ปค์คํ ํ ์ ์ * refactor: ํ์ ์๋ import ๊ตฌ๋ฌธ ์ญ์ * feat: PostContentUploader ์ปดํฌ๋ํธ ์์ ImageSlider & ImageUploader ์ TextEditor ๊ฐ์ margin ์ถ๊ฐ * feat: ์๋ก์ด limits, messages ์์ ์ถ๊ฐ - message -> messages ๋ก ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ * feat: ๊ฒ์๊ธ ์ถ๊ฐ step ๋ผ์ฐํ path ์ ํ๊ธ์ด ๋ค์ด๊ฐ๋ ๋ฌธ์ ํด๊ฒฐ * fix: ํ์ํ ๋ณ์ import ๊ฒฝ๋ก ์์ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ์ค ๊ฐ๊ฐ์ ์๋ฌ์ ๋ํ ์ด์ฉ์ ํผ๋๋ฐฑ ๊ตฌํ - PostAddFormData -> PostUploadData์ผ๋ก ๋ณ๊ฒฝ - ์ด์ฉ์์ ๊นํ๋ธ ์์ ์ฌ๋ผ์ ์๋ public repository ๊ฐ ์์ผ๋ฉด ํผ๋๋ฐฑ ํ ์ด์ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ ์ํจ๋ค. - repository ๋ฅผ ์ ํํ์ง ์๊ณ ์ด๋ฏธ์ง & ๊ธ ์์ฑ์ผ๋ก ๋์ด๊ฐ๋ ค ํ๋ค๋ฉด ์ด๋ฅผ ํผ๋๋ฐฑํ๋ค. - ์ ๋ก๋ํ ์ด๋ฏธ์ง๊ฐ ์ ํด์ง ์ฉ๋์ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ์ ๋ก๋ํ ์ด๋ฏธ์ง ๊ฐ์๊ฐ ์ ํด์ง ๊ฐ์๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ์ด๋ฏธ์ง ๊ฐ์๊ฐ ์ ํด์ง ๊ฐ์๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ํ ์คํธ ๊ธธ์ด๊ฐ ์ ํด์ง ๊ธธ์ด๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ ํผ๋๋ฐฑํ๋ค. - ๋ค์ด๊ฐ ํ๊ทธ๋ค ์ค ์ค๋ณต์ด ์์ผ๋ฉด ํผ๋๋ฐฑํ๋ค. - ํ๊ทธ์ '-', '_' ๋ฅผ ์ ์ธํ ํน์๋ฌธ์๊ฐ ๋ค์ด๊ฐ๋ค๋ฉด ์ด๋ฅผ ํผ๋๋ฐฑํ๋ค. * feat: ErrorResponse ํ์ ์์ฑ ๋ฐ ์ ์ฉ * feat: API ์์ฒญ ์๋ฌ ํธ๋ค๋ง ๊ตฌํ * [#232] ์ ์ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#249) * refactor: ์ฝ๋ ์ ๋ฆฌ (#232) * refactor: ์ฌ์ฉ์ ์ ํจ์ฑ ๊ฒ์ฆ ์ถ๊ฐ (#232) - ๊ฒ์คํธ์ธ ๊ฒฝ์ฐ UnauthorizedException ๋ฐ์ * refactor: DTO ๊ด๋ จ ๋ค์ด๋ฐ ์ ๋ฆฌ (#232) * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ์๋น์ค ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: Data JPA ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ๋ถํ์ํ ์์ ์ญ์ (#232) * test: ์ ์ ์ด๋ฆ ๋ณ๊ฒฝ (#232) - loginUser/guestUser -> testUser๋ก ํต์ผ * test: ์๋น์ค ํ ์คํธ ์ถ๊ฐ (#232) * test: ์๋น์ค ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ํตํฉ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * test: ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#232) * refactor: Builder ์ฌ์ฉ (#232) * refactor: Follow ๊ฐ์ฒด์ ์ฑ ์ ์์ (#232) * test: ์ ๊ทผ ์ ์ด์ ์์ (#232) * refactor: DTO ๋ฆฌํฉํ ๋ง (#232) * test: ๋ถํ์ํ ํ๋ ์ญ์ (#232) * test: WebEnvironment ์ต์ ์ RANDOM_PORT -> NONE์ผ๋ก ๋ณ๊ฒฝ (#232) * test: @SpringBootTest -> @DataJpaTest ๋ณ๊ฒฝ (#232) * refactor: API ๋ช ์ธ์ ๋ง๊ฒ ํ๋๋ช ๋ณ๊ฒฝ (#232) - image -> imageUrl ๋ณ๊ฒฝ * [#240] Authentication ๊ด๋ จ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#247) * test: authentication ๊ด๋ จ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#240) * test: ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#240) * refactor: ๊นํ ์ธ์ฆ ์์ธ ๋ณ๊ฒฝ (#240) * test: Authentication ํ ์คํธ ์ฝ๋ ํผ๋๋ฐฑ ์ ์ฉ (#240) * test: HttpHeaders.AUTHORIZATION ์ผ๋ก ๋ณ๊ฒฝ (#240) * [#226, #227] ํ๋กํ ์์ ๋ชจ๋ฌ ๊ตฌํ (#255) * feat: Button ์ปดํฌ๋ํธ์ padding prop ์ถ๊ฐ * feat: cancel-no-circle ์์ด์ฝ ์ถ๊ฐ * refactpr: BackDrop์ ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ก ์์ * refactor: textEditor ๋ฐฐ๊ฒฝ์ ํฌ๋ช ํ๊ฒ ์์ * chore: eslint no empty function ์ต์ off * refactor: css keyframes ํ์ผ๋ก ๋ถ๋ฆฌ * feat: ์นด๋ฉ๋ผ ์์ด์ฝ ์ถ๊ฐ * feat: TextEditor ์ปดํฌ๋ํธ์ indicator ์ถ๊ฐ(#226) * refactor: z-index๋ฅผ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์์ * feat: ํ๋กํ ์์ ๋ชจ๋ฌ ๊ตฌํ(#227) * [#246] ๋๊ธ ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#250) * refactor: ๋๊ธ ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ์ผ๋น ํผ๋๋ฐฑ ๋ฐ์ * refactor: ๋๊ธ ์กฐํ ๋ฐํ์ ํ๋กํ ์ด๋ฏธ์ง ๋์ค๋๋ก ์์ * [#220, #226] ๋ค๋น๊ฒ์ด์ ui ์์ ๋ฐ ์ด๋ฏธ์ง ์ธ๋์ผ์ดํฐ ์ถ๊ฐ (#256) * refactor: ๋น๋ก๊ทธ์ธ ์์๋ ํ๋ค์ด๊ฒ์ด์ ๋ ธ์ถ * fix: header์ image slider์ ์์ ์์ ๋ฒ๊ทธ ํด๊ฒฐ * feat: ์ด๋ฏธ์ง ์ธ๋์ผ์ดํฐ ๊ตฌํ * [#234] ํ๊ทธ ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#245) * refactor: ํ๊ทธ ๋๋ฉ์ธ ๋ถ๋ถ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ํตํฉ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: ํ๊ทธ ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * refactor: connection pool ์ฌ์ฉํ๋ ์ปค์คํ RestTemplate ์ ์ฉ * refactor: Post์ Tag ์ฐ๊ด๊ด๊ณ ๋ถ๋ถ ํ๋ก๋์ ๋ฐ ํ ์คํธ ์ฝ๋ ๋ฆฌํฉํ ๋ง * refactor: ์ผ๋น ํผ๋๋ฐฑ ์ ์ฉ - ParameterizedTest ์ด์ฉํ๋๋ก ์์ - ์ค๋ณต๋ ํ ์คํธ ์ ๊ฑฐ * refactor: ํผ๋๋ฐฑ ๋ฐ์ * refactor: ์๋ฌธ์๋ก ์๋ ๋ณํ๋๋๋ก ์์ * refactor: ๋์ ํผ๋๋ฐฑ ์ ์ฉ * refactor: ๊นํ์์ ํ๊ทธ ๊ฐ์ ธ์ฌ ๋ ์๋ฌธ์๋ก ๋ณํ๋๋๋ก ๋ฆฌํฉํ ๋ง * [#221, #225] ํ๋กํ ํผ๋ ํด๋ฆญ์ ์ ์ ํผ๋ ํ์ด์ง๋ก ์ด๋ (#260) * fix: ํค๋์์ height๊ฐ ํฐ ์์๋ค์ ๋ ์ด์์์ด ๊นจ์ง๋ ๋ฒ๊ทธ ํด๊ฒฐ * fix: slideButtonKind ๋ณต๊ตฌ * refactor: ํ์ ๋จ์ธ ์ ๊ฑฐ * feat: ํ๋กํํผ๋์์ ํฌ์คํธ ํด๋ฆญ์ ์ ์ ํผ๋ ํ์ด์ง๋ก ์ด๋ * [#251] Post ํ ์คํธ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (#252) * refactor: infrastructure ์ ๋ํ ์คํธ, comment ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ๊ด๋ จ ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post application ๋ ์ด์ด ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: PostControllerTest ๋ฆฌํฉํ ๋ง ์ถ๊ฐ * test: post builder๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ ์คํธ ์์ ๋ฐ ๋๋ฝ๋ ํ ์คํธ ์ถ๊ฐ * [#183] ๊ฒ์๊ธ ๋๊ธ ๊ธฐ๋ฅ์ ๊ตฌํ (#265) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * feat: HomeFeed ์ปดํฌ๋ํธ์์ ๋ก๊ทธ์ธ ๋ ์ํ์์ ์์ ์ ๊ฐ์๊ธ๋ง ์์ ์์ด์ฝ์ด ๋จ๋๋ก ๋ณ๊ฒฝ * feat: BottomSliderPortal ์ปดํฌ๋ํธ ๊ตฌํ * feat: CommentSlider ์ปดํฌ๋ํธ ๊ตฌํ * chore: Layout ์์ ๊ฐ์ฒด ์ด๋ฆ LAYOUT ์ผ๋ก ๋ณ๊ฒฝ * feat: getLastHash util ํจ์ ๊ตฌํ * feat: getTabTextColor util ํจ์ ๊ตฌํ * feat: useBottomSlider ํ ๊ตฌํ * refactor: PostItem ์ปดํฌ๋ํธ ์์ - ํด๋น ์ปดํฌ๋ํธ์์ ๋๊ธ ์ ๋ ฅ ๊ฐ ์ ์ฅ ๋ฐ ์์ ์ ๋ด๋นํ์ง ์๋๋ก ์์ - ๋๊ธ ์ถ๊ฐ ์์ด์ฝ ๋ฒํผ ์ญ์ - Post, CommentData ํ์ ์ id ์์ฑ ํ์ ์ string -> number ๋ก ์์ * feat: ๋๊ธ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ - Tabs ์ปดํฌ๋ํธ๊ฐ tabIndicatorKind ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ indicator ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ - useFeed -> useFeedMutation ์ผ๋ก ์์ - HomeFeedPage ์์์ useFeed ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ useHomeFeed ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ - COMMENT_INPUT_HEIGHT ๋ ์ด์์ ์์ ์ถ๊ฐ - ์์์ฉ UserFeedPage ์ TagFeedPage ์ ๋ฐ์ดํธ (์ฌ์ ํ ์์์ฉ) * fix: CommentSlider ํด์ ๋ผ์ฐํ ์ผ๋ก ์ธํด ํน์ UserFeedPage ๋ ๋๋ง์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - CommentSlider ๋ฅผ ํ ๊ธํ ๋๋ history.location ์ state ์ query param ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋๋ก ์์ - NavigationHeader ์ปดํฌ๋ํธ์ height: content-fit ์์ฑ ์ญ์ & ๋ก๊ทธ์์ ๋ฒํผ์ padding ๊ฐ ์์ - HomeFeed -> Feed ๋ก ์ปดํฌ๋ํธ ์ด๋ฆ ์์ * feat: ๋๊ธ ์ ์ฅ ์ ์์ธ ์ฒ๋ฆฌ ์ถ๊ฐ * [#199, #248, #184] ๊ฒ์๊ธ ์ญ์ & ๊ฒ์๊ธ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๊ตฌํ (#271) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * feat: ๊ฒ์๊ธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ & ์ด๋ฏธ์ง๊ฐ ์์ ์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋ณด์ฌ์ฃผ๊ธฐ ๊ตฌํ - ์ญ์ ๋ฒํผ์ ๋ํ๋๊ฒ ๋ง๋ค๊ธฐ ์ํ ButtonDrawer ์ปดํฌ๋ํธ ๊ตฌํ * feat: TagInputForm ์์์ Tag ์ ๋ ฅ ์ค ๋ชจ๋ฐ์ผ ๊ฐ์ ํค๋ณด๋๊ฐ ๋ ์ด์์์ ๊นจ๋จ๋ฆฌ๋ ๋ฌธ์ ํด๊ฒฐ - ์๋ฌ ๋ฐ์์ tag input ์ blur ์ฒ๋ฆฌ * [#243] s3 proxy ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#244) * chore: s3-proxy properties ํฌ๋งท์ yaml๋ก ์์ (#243) * chore: ํ๋ก๋์ ํจํค์ง๋ช ์ปจ๋ฒค์ ๋ง๊ฒ ์์ (#243) * test: S3Storage ์ฌ๋ผ์ด์ฑ ํ ์คํธ ์ถ๊ฐ (#243) * test: StorageService ์ฌ๋ผ์ด์ฑ ํ ์คํธ ์ผ์ด์ค ์ถ๊ฐ (#243) * refactor: StorageController ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ถํ์ํ given์ ์ญ์ (#243) * refactor: ์ธ์ ํ ์คํธ ๋ถํ์ํ throws์ ์ญ์ (#243) * refactor: ์ปค์คํ ์์ธ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์๋ฌ ์ฝ๋ ์ถ๊ฐ (#243) * refactor: ํจํค์ง๋ช ๋ณ๊ฒฝ ๋ฐ ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์์ (#243) * refactor: 1์ฅ์ด๋ผ๋ ์ ๋ก๋ ์คํจ์ ์์ธ ๋ฐ์ํ๋๋ก ๋ณ๊ฒฝ (#243) * [#230] ๊ฒ์ํ์ด์ง ๊ตฌํ (#274) * feat: ๊ฒ์ mock data ์ถ๊ฐ * fix: LoginWrapper children ํ์ ์์ * feat: search context ์ถ๊ฐ * feat: SearchHeader์ SearchContext ์ ์ฉ * feat: SearchPage ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * fix: ์คํ์์ * ์ถ๊ฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * refactor: useFollow๋ถ๋ฆฌ ๋ฐ follow mutation ์๋ฌ์ฒ๋ฆฌ ์์ค ๋ณ๊ฒฝ * feat: ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ์์ ํ๋ก์ฐ ๊ธฐ๋ฅ ๊ตฌํ * fix: ๊ฒ์ํ์ด์ง ์ง์ ์ ์ด์ ๊ฒ์ ๊ธฐ๋ก ์ด๊ธฐํ * [#253] Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#263) * feat: Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#253) * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#253) * test: ์๋น์ค ํ ์คํธ ์์ฑ (#253) * test: ํตํฉ ํ ์คํธ ์์ฑ (#253) * test: ์ธ์ ํ ์คํธ ์์ฑ (#253) * test: ๋จ์ ํ ์คํธ ์์ฑ (#253) * style: ๊ฐํ ์ถ๊ฐ (#253) * refactor: ํด๋์ค๋ช ๋ณ๊ฒฝ (#253) - PlatformExtractor -> PlatformContributionExtractor - PlatformApiRequester -> PlatformContributionApiRequester * refactor: @Profile ์ถ๊ฐ (#253) * refactor: ์์ -> @Value ๋ณ๊ฒฝ (#253) * refactor: ์ปค์คํ ์์ธ ์ถ๊ฐ (#253) * test: ๋จ์ ํ ์คํธ ์ถ๊ฐ (#253) * refactor: Calculator ๊ฐ์ฒด๋ก ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ (#253) - Service์ ์๋ ๋น์ฆ๋์ค ๋ก์ง์ Calculator ๊ฐ์ฒด๋ก ์ด๋ - ๋จ์ ํ ์คํธ ์ถ๊ฐ * test: ๋ถํ์ํ import ์ญ์ * refactor: ํจํค์ง ์์น ๋ณ๊ฒฝ (#253) - ์ธํฐํ์ด์ค๋ domain, ๊ตฌํ์ฒด๋ infrastructure์ ์์น * style: ์ ๊ทผ ์ ์ด์ ์ญ์ (#253) * refactor: Calculator ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ฐํ ํ์ ๋ณ๊ฒฝ (#253) * refactor: try-catch ๋ฌธ์ผ๋ก ์์ธ ํธ๋ค๋ง (#253) * test: ๋จ์ ํ ์คํธ ์์ (#253) * refactor: Calculator ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ฐํ ํ์ ๋ณ๊ฒฝ (#253) - DTO -> Domain Object * [#277] useFollow ํ ์คํธ ์์ฑ (#278) * feat: SearchPage ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: useFollow๋ถ๋ฆฌ ๋ฐ follow mutation ์๋ฌ์ฒ๋ฆฌ ์์ค ๋ณ๊ฒฝ * refactor: acceessToken์ด ์๋ ๊ฒฝ์ฐ์ ๋ํ ์๋ฌ์ฝ๋ ์ถ๊ฐ * chore: hook ํ ์คํธ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ค์ * refactor: ErrorCode ํ์ ์ถ๊ฐ * refactor: handleHTTPError ๋ชจ๋ ๋ถ๋ฆฌ - handleHTTPError ํจ์๋ฅผ utils/error.ts๋ก ์ด๋ - ์์ ๋ฐ ํ์ ๋ถ๋ฆฌ * test: useFollow ํ ์คํธ ์ฝ๋ ์์ฑ * refactor: ํ์ผ์ด๋ฆ ๋ณ๊ฒฝ - constants/httpError.ts ๋ฅผ constants/error.ts ๋ก ๋ณ๊ฒฝ * refactor: useFollow ์๋ฌ์ฒ๋ฆฌ - accesstoken์ด ์์ ๊ฒฝ์ฐ์ ๋ํ ์๋ฌ์ฒ๋ฆฌ ์ถ๊ฐ - client error๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฐ์ฒด ๊ตฌํ * [#124, #262, #275, #276] ์์ฒญ ๊ด๋ จ ์ด์ ํด๊ฒฐ (#280) * fix: ํ๋กํ ์์ api ํ์ ๋ณ๊ฒฝ - put๋ฉ์๋์์ post๋ฉ์๋๋ก ๋ณ๊ฒฝ - ๋ณ๊ฒฝ๋ ์ด๋ฏธ์ง๊ฐ ์์๊ฒฝ์ฐ ๋น ํ์ผ ๊ฐ์ฒด ์ ์ก - ํ ์ค ์๊ฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์๋ ๊ทธ๋๋ก ๋ณด๋ด๊ธฐ * fix: ๊ฒ์ api url ๋ณ๊ฒฝ * fix: github stats ์์ ๋ฐ api url ๋ณ๊ฒฝ * refactor: ์ต์ด ํ์ด์ง ์ง์ ์ ํ ํฐ์ด ์ ํจํ์ง ์์ผ๋ฉด ๋ก๊ทธ์์ * fix: ๋ด ๊ฒ์๋ฌผ์ ํ๋กํ ์์ญ์ ํด๋ฆญํ๋ฉด ๋ด ํ๋กํ ํ์ด์ง๋ก ์ด๋ํ๋๋ก ์์ * refactor: ์ ์ ํ๋กํ, ๋ดํ๋กํ ๋ถ๊ธฐ๋ฅผ ProfilePage์๊ฒ ์์ * feat: ์ต์ด ์ง์ ์ดํํธ app์ผ๋ก ๋ถ๋ฆฌ * [#257] ๊ฒ์๋ฌผ ์ข์์ ๊ธฐ๋ฅ ๊ตฌํ (#264) * feat: ๊ฒ์๋ฌผ ์ข์์ ๊ธฐ๋ฅ ๊ตฌํ (#257) * feat: ๊ฒ์๋ฌผ ์ข์์ ๋ฐ ์ข์์ ์ทจ์ ๊ธฐ๋ฅ ํ ์คํธ ๊ตฌํ (#257) * refactor : ํผ๋๋ฐฑ ๋ฐ์ (#257) * [#236] ๋ก๊น ๊ธฐ๋ฅ ์ธํ (#237) * chore: ํ์ฑ ํ๋กํ์ ๋ฐ๋ฅธ logback ํ๊ฒฝ ์ค์ (#236) * feat: ์ ์ญ ์์ธ ์ด๋๋ฐ์ด์ ์ ๋ก๊ฑฐ ์ถ๊ฐ ๋ฐ DB / ๋ฐํ์ ์์ธ ๋ฐ์ธ๋ฉ (#236) * chore: s3proxy directory logback ์ค์ ์ถ๊ฐ (#236) * feat: s3proxy ์์ธ ์ด๋๋ฐ์ด์ ์ถ๊ฐ (#236) * refactor: applicationException ํธ๋ค๋ฌ ์ด๋๋ฐ์ด์ ๋ฉ์๋๋ช ์์ (#236) * refactor: ๋ฐฑ์๋ ํ๋ก์ ํธ ๋ก๊น ์ ๋ต ์์ (#236) - ํ ์คํธ ๋ก๊น ์ ๋ต ์ฝ์๋ก ์์ - DB ๊ด๋ จ ๋ก๊ฑฐ ์ข ๋ฅ ํ๋กํ๋ณ ์ฌ์ ์ - ๋ถ๋ชจ ๋ก๊ฑฐ๊ฐ ์ฐํ์ง ์๋๋ก additivity false ์ถ๊ฐ - ๊ธ๋ก๋ฒ ์์ธ ์ด๋๋ฐ์ด์ ์ ๋ก๊น ์์ ์ ์ * chore: logback-access ์ค์ ์ถ๊ฐ ๋ฐ ํ๋กํ๋ณ ์ค์ ๊ตฌ์ฑ (#236) * chore: s3proxy ํ๋ก์ ํธ logback-access ์ค์ ์ถ๊ฐ (#236) * refactor: s3proxy, backend ํ๋ก์ ํธ log ํฌ๋งท ๋ณ๊ฒฝ (#236) * chore: backend logger DB, Access ๋ฑ ์ฉ๋๋ณ ๋ถ๋ฆฌ (#236) * chore: s3proxy logger DB, Access ๋ฑ ์ฉ๋๋ณ ๋ถ๋ฆฌ (#236) * [#254] ์ ์ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํ (#266) * feat: User ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ํผ๋๋ฐฑ ๋ฐ์ ๋ฆฌํฉํ ๋ง * refactor: ํ๋ก ํธ์ธก๊ณผ ํ์ํ ๋ถ๋ถ ๋ฆฌํฉํ ๋ง * fix: ๊ฒ์ ์์ฒญ์ user์ tag ๋ถ๋ฆฌ (#283) * [#267] ํ๋กํ ์์ ๊ธฐ๋ฅ์ ๊ตฌํ (#279) * feat: ์ ์ ํ๋กํ ์์ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ํผ๋๋ฐฑ ์ ์ฉ * refactor: ํผ๋๋ฐฑ ๋ฆฌํฉํ ๋ง * [#269] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#272) * feat: ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#269) * fix: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ๋ฒ๊ทธ ํด๊ฒฐ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ํตํฉ ํ ์คํธ ์์ฑ (#269) * fix: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ๋ฒ๊ทธ ํด๊ฒฐ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ํตํฉ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์๋น์ค ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์๋น์ค ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ ์ธ์ ํ ์คํธ ์์ฑ (#269) * test: ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ ์ธ์ ํ ์คํธ ์์ฑ (#269) * refactor: ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ญ์ (#269) * test: ๋ถํ์ํ ํ ์คํธ ์ญ์ (#269) * refactor: Command, Query ๋ถ๋ฆฌ (CQS) (#269) * test: verify() ๊ฐ ์ง์ (#269) * refactor: ์ํ๋ณ๋ก update() ๋ถ๋ฆฌ (#269) * fix: ํด๋นํ๋ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ธ์ง ํ์ธํ๋ ๋ก์ง ์ถ๊ฐ (#269) * [#284] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ ๋ฒ๊ทธ ํด๊ฒฐ (#285) * test: ํตํฉ ํ ์คํธ ๋ฒ๊ทธ ํด๊ฒฐ (#284) * test: ๋ถํ์ํ ํ ์คํธ ์ญ์ (#284) * fix: Github ํต๊ณ ์กฐํ ๋ฒ๊ทธ ํด๊ฒฐ (#287) (#288) * refactor: like ๊ด๋ จ DTO ํ๋๋ช ๋ฒ๊ฒฝ (#289) (#291) * fix: restDocs ํ๋๋ช ์์ ๋ฐ Boolean์ผ๋ก ๋ณ๊ฒฝ (#292) (#297) * [#228] ๊ฒ์๊ธ ์์ ๊ธฐ๋ฅ ๊ตฌํ (#286) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * refactor: ๊ฒ์๊ธ ์ถ๊ฐ ๊ณผ์ ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ฐ ์ปดํฌ๋ํธ์์ ๋ถ๋ฌ์ค์ง ์๊ณ Page ์ปดํฌ๋ํธ์์ ๋ด๋ ค์ฃผ๋๋ก ์์ * feat: ๊ฒ์๊ธ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ - ์ปจ๋ฒค์ ์ ๋ง๊ฒ useGithubTagsQuery ๋ฉ์๋ ์์ - EditPostPage ํ์ด์ง ์ปดํฌ๋ํธ ๊ตฌํ - PostEditDataContext, PostEditStepContext ์ถ๊ฐ - usePostEdit, usePostStep ํ ์ถ๊ฐ * [#258] ์ ์ ํ๋ก๋์ ์ฝ๋ ๋ฐ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#268) * refactor: User ๋๋ฉ์ธ ๋ถ์กฑํ ํ๋ก์ฐ, ์ธํ๋ก์ฐ ๋ฑ ํ ์คํธ ์ถ๊ฐ (#258) * refactor: User equals & hashCode ์ ์์ getter ์ฌ์ฉ (#258) * refactor: Follow ๋๋ฉ์ธ equals & hashCode ์ ์์ getter ์ฌ์ฉ (#258) * refactor: Following, Follwers ๋ฉ์๋๋ช ๋ฐ ์ ์ธ ์์ ๋ณ๊ฒฝ (#258) * refactor: Followings, Followers ํ ์คํธ ์ถ๊ฐ ๋ฐ ์์ฑ์ ์ถ๊ฐ (#258) * refactor: User.profile ๊ด๋ จ ๋๋ฉ์ธ ์ฝ๋ ํฌ๋งทํ ๋ฐ setter ์ญ์ (#258) * refacotr: User ๋ด๋ถ Posts์ ์์ฑ์ ๋ณ๊ฒฝ ๋ฐ UserRepository ์์์ฑ ํ ์คํธ ์ถ๊ฐ (#258) * refactor: User ์์ฉ ๊ณ์ธต ๋ฉ์๋ ์ถ์ถ ๋ฆฌํฉํ ๋ง ๋ฐ DTO getter ์ถ๊ฐ (#258) * refactor: AppUser์ UserService ์นจํฌ ์ ๊ฑฐ ๋ฐ ํ ์คํธ ์ฝ๋ ๊ณ์ธต ๋ถ๋ฆฌ (#258) - AppUser๊ฐ ์๋น์ค ์ฝ๋์ ์นจํฌํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด AppUser ์ถ์ ํด๋์ค์ ๋ณ๋์ ์ด๋ฆ ํธ์ถ ๋ฉ์๋๋ฅผ ์ถ๊ฐํจ * refactor: UserService ํตํฉ ํ ์คํธ ๊ณ์ธต์ ์ผ๋ก ๋ฆฌํฉํ ๋ง (#258) * refactor: AuthUserRequest ์์ฐ๋ DTO ๋ฐ ์์ฑ์ ์ญ์ ์ ๋ฉ์๋ ํ๋ผ๋ฏธํฐ๋ช ํต์ผ (#258) * refactor: User ํ ์คํธ ๋ฉ์๋ nested ์ ์ฉ (#258) * refactor: User ๋ถํ์ํ ์๋ฒ ๋๋ ํ์ getter ์ญ์ ๋ฐ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#258) * refactor: User ์ํฐํฐ ๋ด๋ถ ์๋ฒ ๋๋ ํ์ ํด๋์ค์ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ protected๋ก ๋ณ๊ฒฝ (#258) * refactor: UserRepository ํ ์คํธ nested ์ ์ฉ (#258) * refactor: UserService ์ฌ๋ผ์ด์ฑ ํ ์คํธ verify ๊ตฌ์ฒดํ ๋ฐ ๋ฉ์๋ ๋ถ๋ฆฌ (#258) * refactor: UserService ํตํฉ ํ ์คํธ ๋ฐ๋ณต๋๋ given ๋ถ๋ถ ๋ฉ์๋ ์ถ์ถ (#258) * refactor: UserController ์ฌ๋ผ์ด์ฑ ํ ์คํธ ๋ก๊ทธ์ธ์ฌ๋ถ ๋ถ๋ฆฌ ๋ฐ DTO Getter ์ถ๊ฐ (#258) * refactor: User ์ธ์ ํ ์คํธ ๋ฐ๋ณต๋๋ api ํธ์ถ ๋ฉ์๋ ํต์ผ (#258) * refactor: ๋ณํฉ ์ถฉ๋ ํด๊ฒฐ (#258) * refactor: UserDataJpaTest Nested C-D-I ๋ช ์ธ ๋ณ๊ฒฝ (#258) * refactor: ์ ์ ์ปจํธ๋กค๋ฌ ์ฌ๋ผ์ด์ฑ ํ ์คํธ verify ์ถ๊ฐ ๋ฐ ํ ์คํธ ์ค๋ฅ ์์ (#258) - ๊ธฐ์กด unfollow ํ ์คํธ๊ฐ ์๋ชป ์งํ๋๊ณ ์์๋ ๋ถ๋ถ์ ํด๊ฒฐ * chore: UserService ํฌํผ ๋ฉ์๋ ์์น ์์ (#258) * refactor: UserController ์๋ต ์์ฑ ํฌํผ ๋ฉ์๋ ์์น ์ด๋ (#258) * refactor: Follow, Unfollow์ ๋ ์ ์ ๋๋ฑ์ฑ ๋น๊ต ๋ก์ง Follow ํด๋์ค๋ก ์ด๋ (#258) * refactor: User์ ํ๋ก์ฐ, ์ธํ๋ก์ฐ ์กฐ๊ฑด ๊ฒ์ฌ ๋ก์ง์ Followers, Followings๋ก ์ด๋ (#258) * chore: User.addComment ํ ์คํธ ์ญ์ (#258) * refactor: AuthUserRequestDto์ AppUser์ ๋ํ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ถ๊ฐ (#258) * refactor: User ์ปจํธ๋กค๋ฌ ํ ์คํธ anyString given/verify ์ธ์ ๋ณ๊ฒฝ (#258) * fix: ํ๋ก๋์ ๋ฐ ํ ์คํธ ์ฝ๋ ์์ ๋ณ๊ฒฝ ๋ฐ SpringBoot ํตํฉํ ์คํธ๋ก ์ธํ Nested ์ ๊ฑฐ (#258) * refactor: ๋ณํฉ ์ถฉ๋ ํด๊ฒฐ ๋ฐ AppUser๋ฅผ ์๋น์ค์์ ์ฌ์ฉ๋ชปํ๋๋ก ๋ณ๊ฒฝ (#258) * chore: ํ๋ก๋์ ์ฝ๋ ์์ ์ ๋ ฌ ๋ฐ DTO ํ๋๋ช ๋ณ๊ฒฝ (#258) * chore: User ๊ด๋ จ ํ ์คํธ ์ฝ๋ ์์ ์ ๋ ฌ ๋ฐ ํฌ๋งทํ (#258) * [#293] Logback ์ธ์ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ (#299) * fix: logback appender ๊ฒฝ๋ก ์์ (#293) * chore: rest docs ๋ฌธ์ ๋ณ๊ฒฝ * [#273, #301] profile page ์๋ฌ์ฒ๋ฆฌ ์์ค ์์ ๋ฐ ๊ธฐํ ๋ฒ๊ทธ ํด๊ฒฐ (#302) * refactor: ํ๋กํ ์์ ํ์ด์ง ์๋น์ค๋ก์ง ๋ถ๋ฆฌ ๋ฐ ์๋ฌ์ฒ๋ฆฌ ์์ค ์์ * refactor: ์ค๋ณต๋๋ validation ์ ๊ฑฐ * refactor: ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ * feat: ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ์ ์ ์ ํ๋กํ ํ์ด์ง ๋งํฌ ์ถ๊ฐ * fix: ํ๋กํ ์์ ํ ๋ฐ์์ด ์๋๋ ์ด์ ํด๊ฒฐ * refactor: api url ๋ณ๊ฒฝ * fix: ๋ก๊ทธ์ธ์ผ๋ก ๊ฒ์๊ธ ์กฐํ์ ๊ฒ์คํธ๋ก ์ธ์ํ๋ ๋ฌธ์ ํด๊ฒฐ (#298) * [#295] ๊ฒ์๋ฌผ ์์ ๋ฐ ์ญ์ DB ๋ฒ๊ทธ ํด๊ฒฐ (#300) * refactor: findPostByUser -> findPostByIdAndUser ๋ณ๊ฒฝ (#295) * test: Data JPA ํ ์คํธ ์ถ๊ฐ (#295) * refactor: ์์ฑ์ ์์ (#295) * test: ์์ธ ๋ฐ์ -> Optional.empty() ๊ฒ์ฆ ๋ณ๊ฒฝ (#295) * refactor: ๋ถํ์ํ ์ฝ๋ ์ญ์ (#295) * refactor: ํด๋นํ๋ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ด ๋ง๋์ง ํ์ธํ๋ ๊ณผ์ ์์ (#295) - DB์์ ์ฒ๋ฆฌ -> ๋น์ฆ๋์ค ๋ก์ง์์ ์ฒ๋ฆฌ๋ก ๋ณ๊ฒฝ * refactor: ๋ถํ์ํ ์ฝ๋ ์ญ์ (#295) * test: ๋ถํ์ํ import ์ญ์ (#295) * [#290] ์ค๊ฐ ๋ฐ๋ชจ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐ (#303) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ์ค๊ฐ ๋ฐ๋ชจ ๋ฒ๊ทธ ํด๊ฒฐ - ๊ฒ์๊ธ ๋ฐ์ดํฐ ์์ฑ ์ค isLiked -> liked ๋ก ๋ณ๊ฒฝ - ๋ก๊ทธ์ธ ํ์ ๋๋ง ์ข์์ ๋ฒํผ์ด ๋ํ๋๋๋ก ์์ - ๋ก๊ทธ์ธ ํ์ ๋๋ง ๋๊ธ ๋ฌ๊ธฐ ๋ฒํผ์ด ๋ํ๋๋๋ก ์์ - ์ข์์, ์ข์์ ์ทจ์ ์ํ ๋ฐ์ ๋ก๊ทธ์ธ ๋ฒํผ padding ์์ - ๋๊ธ์ ์ถ๊ฐํ์ ๋ ๋ฐ๋ก ์ถ๊ฐ๋ ๋๊ธ์ ํ๋ฉด์์ ํ์ธํ ์ ์๊ฒ ์์ - ๋๊ธ์ด ๊ฒ์๊ธ ์กฐํ์์๋ ์ต๋ 10๊ฐ๋ง ๋์ฌ ์ ์๋๋ก ์์ - ๊ธฐ์กด์ ๋๊ธ ๋ฌ๊ธฐ input ์ ๋๊ธ ์ฌ๋ผ์ด๋ ํ ๊ธ ๋ฒํผ์ผ๋ก ๋ณํ * fix: api url ์์ (#305) * fix: Post - Comments ์์์ฑ ์ ์ด ๋ฒ๊ทธ ํด๊ฒฐ (#306) (#307) * [#308] ๊ฒ์๋ฌผ ์์ ๋ฒ๊ทธ ํด๊ฒฐ (#309) * fix: orphanremoval = true ์ต์ ์ถ๊ฐ (#308) * test: ํตํฉ ํ ์คํธ ์ถ๊ฐ (#308) * [#310] ํ๋ฐ๋ชจ ๊ฒฐ๊ณผ ๋ฐ์ - ํ๋กํ ํ์ด์ง (#311) * fix: api url ์คํ ์์ * fix: ๋๋ฝ๋ key prop ์ถ๊ฐ * fix: ๊นํํต๊ณ ๊ธฐ๋ฅ ์์ api๋ก ์์ * ํ๋กํ ํ์ด์ง ํ๋จ ๋ ์ด์์ ๋ฒ๊ทธ ์์ * [#312] ๋๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#313) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ - ๋๊ธ ์ถ๊ฐ ์ ์ต๊ทผ ๋๊ธ๋ก ์คํฌ๋กค์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ ์ถ๊ฐ, ์ญ์ ์ ์ค๋ต๋ฐ๋ฅผ ํตํด ํผ๋๋ฐฑ - ๊ฒ์๊ธ ์ข์์ & ์ข์์ ์ทจ์ ๊ฒฐ๊ณผ๊ฐ ํ๋ฉด์ ๋ํ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ tags ์ ๋ณด ํ์ฑ ๋ฌธ์ ํด๊ฒฐ (๋ณด๋ผ ๋ , ๊ธฐ๋ฐ join ๋ฌธ์์ด๋ก, ๋ฐ์ ๋๋ ์ผ๋ฐ ๋ฌธ์์ด ๋ฐฐ์ด๋ก) * fix: ๋ชจ๋ฐ์ผ ์์ ๋ ์ด์์ ๋ฐ ๊ทธ๋ํฝ ๋ฌธ์ ํด๊ฒฐ - ๋ชจ๋ฐ์ผ ์์์ ๋ฒํผ์ด๋ ๋งํฌ ํด๋ฆญ์ ๋ํ๋๋ ๊ธฐ๋ณธ ํ์ด๋ผ์ดํธ ์ปฌ๋ฌ ์ ๊ฑฐ - ๋๊ธ input ํจ๋ฉ ์กฐ์ - ํ๋กํ ์๋ ๋ฐฐ๊ฒฝ ํฌ๋ช -> ํฐ์์ผ๋ก ๋ณ๊ฒฝ - kind ๊ฐ pills ์ธ Tabs ์ปดํฌ๋ํธ์ hover ์ดํํธ ์ ๊ฑฐ(๋ชจ๋ฐ์ผ ์์์ ํด๋ฆญ๋ ๊ธ์จ๊ฐ ํฌ๋ฏธํด์ง๋ ๋ฌธ์ ํด๊ฒฐ) * [#314] ์ธ๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#315) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: 2์ฐจ ๋ฐ๋ชจ ์ธ๋ฒ์งธ ๋ฒ๊ทธ ์์ - ๋๊ธ ํ๋กํ ์ด๋ฏธ์ง, ์ ์ ์ด๋ฆ์ด ๊ณ ์ ๋์ด ์๋ ๋ฌธ์ ํด๊ฒฐ - ๊ฒ์๊ธ ์ถ๊ฐ ์ ๋ ํฌ์งํฐ๋ฆฌ ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๊ธฐ ์ํ ๊ณ์ ์ด ํ๋๋ก ๊ณ ์ ๋์ด ์๋ ๋ฌธ์ ํด๊ฒฐ - ์์ ๋ ํฌ๋ชฉ๋ก ๊ฒ์ ๊ธฐ๋ฅ ์ถ๊ฐ * [#316] 3์ฐจ๋ฐ๋ชจ ๊ฒ์ ํ์ด์ง ๋ฐ UI ๊ด๋ จ ์ด์ ํด๊ฒฐ (#317) * fix: ๊ฒ์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์์ ํ๋ก์ฐ์ ๊น๋ฐ๊ฑฐ๋ฆฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ * feat: ๊ฒ์๋ฌผ ์ญ์ ์ ์ปจํ ์ถ๊ฐ * fix: ์ด๋ฏธ์ง ๋ฐ ํ ์คํธ ์ธ๋์ผ์ดํฐ ์ฌ์ด์ฆ ๊ณ ์ * feat: ๊ฐ๋ตํ ๋ฒํผ ์ถ๊ฐ * [#318] ๋ค๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#319) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋ค๋ฒ์งธ ํ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ - ๋๊ธ ์ฌ๋ผ์ด๋ ๊ฐ๋ก ์คํฌ๋กค๋ง ๋๋ ๋ฌธ์ ํด๊ฒฐ - ์ด๋ฏธ์ง๋ค ์ด ์ฉ๋ ์ ํ 1MB ๋ก ์์ - ๊ฒ์๊ธ ๋ด์ฉ์ ๊ฐํ์ด ์ค์ ๋ก ๋ฐ์๋๋๋ก ์์ - ๊ฒ์๊ธ ์ถ๊ฐ ์ค ํ๊ทธ ์ ๋ ฅ ํ tagInputLength ๊ฐ 0 ์ผ๋ก ์ด๊ธฐํ ๋๋๋ก ์์ * [#320] ๊ฒ์๋ฌผ ์ถ๊ฐ ์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด alert์ฒ๋ฆฌ (#321) * fix: ๊ฒ์๋ฌผ ์ถ๊ฐ ์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด alert ์ฒ๋ฆฌ * refactor: ๋๋ณด๊ธฐ, ๊ฐ๋ตํ ์ ์ฑ ๋ณ๊ฒฝ * [#322] ๊ฒ์๊ธ ์์ ์ ์ถ๊ฐ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ์๋ ์์ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ๋ณ๊ฒฝ (#323) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๊ฒ์๊ธ ์์ ์ ์ถ๊ฐ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ์๋ ์์ ๋์๋ค๋ ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ๋ณ๊ฒฝ * [#324] ๋ค๋ฅธ ์ด์ฉ์์ UserFeed ์ข์์๊ฐ ๋์ํ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ (#325) * feat: Feed ์ปดํฌ๋ํธ ๋ช ์นญ์ HomeFeed ๋ก ๋ณ๊ฒฝ * fix: ๋ค๋ฅธ ์ด์ฉ์์ UserFeed ์ข์์๊ฐ ๋์ํ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - currentUsername(์ ์ํ ์ด์ฉ์) -> username(์ด์ฉ์ ํผ๋ ํ์ด์ง์ ๋์ ์ด์ฉ์) ์ผ๋ก ๋์ ๋ณ๊ฒฝ * [#259] ํฌ์คํธ ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#270) * refactor: Post ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง (#252) * refactor: infrastructure ์ ๋ํ ์คํธ, comment ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ๊ด๋ จ ์ ๋ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post application ๋ ์ด์ด ๊ด๋ จ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: Post ์ธ์ ํ ์คํธ ๋ฆฌํฉํ ๋ง * test: PostControllerTest ๋ฆฌํฉํ ๋ง ์ถ๊ฐ * test: post builder๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ ์คํธ ์์ ๋ฐ ๋๋ฝ๋ ํ ์คํธ ์ถ๊ฐ refactor: Post์ Tag๊ด๋ จ ๋น์ฆ๋์ค ๋ก์ง PostTags๋ก ์ด๋ (#259) ์ด๋๊ณผ ํจ๊ป Post์ Build ํจํด ์ ์ฉ๊ณผ ๋ฆฌํฉํ ๋ง. refactor: PostService์ PostController์ ์ฑ ์ ๋ถ๋ฆฌ. ๋ฐ s3Storage ํ์ผ ์ ์ฅ ๋ฐฉ์ ์ถ๊ฐ (#259) feed๊ด๋ จ๊ณผ, ๊ฒ์๋ฌผ ๊ด๋ จ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๊ด์ฌ์ฌ๋ฅผ ๋ง์ถค. refactor: ์ ์ฒด์ ์ธ import ์ ๋ฆฌ (#259) refactor: ํจํค์ง ์ ๋ฆฌ (#259) refactor: Post์ getImageUrl ์ค๋ณต ๋ฉ์๋ ์ ๊ฑฐ (#259) refactor: CommentResponse์ ๋๋ฉ์ธ ์ฐธ์กฐ ์ ๊ฑฐ ๋ฐ DtoAssembler ๋ฆฌํฉํ ๋ง (#259) refactor: Feed๊ด๋ จ ์ปจํธ๋กค๋ฌ, ์๋น์ค, PostDto์ด์ ๋ธ๋ฌ ๋ฆฌํฉํ ๋ง, ๋ ์ด์ด์ ๋ง์ง ์๋ DTO ์ด๋ (#259) refactor: CommentRequestDto ํจํค์ง ๋ณ๊ฒฝ ๋ฐ PostController ๋ฆฌํฉํ ๋ง (#259) refactor: PostResponseDto๊ฐ presentation~presentation๊น์ง ์ฌ์ฉ๋๋๊ฒ์ ๋ถ๋ฆฌ (#259) refactor: showRepositories -> userRepositories ๋ฉ์๋๋ช ๋ณ๊ฒฝ (#259) refactor: RepositoryResponse, domain -> controller๊น์ง ์ฌ์ฉ ๋๋๊ฒ์ ๋ถ๋ฆฌ (#259) style: domain์ ์ ์ธํ ๋ ์ด์ด์ ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ฒดํฌ (#259) refactor: PostImageUrlResponseDto Builder ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ refactor: Post ์ปจ๋ฒค์ ๋ฐ ๋ฉ์๋ ์์ ์ ๋ฆฌ (#259) refactor: Post user ๊ด๋ จ ๋ฉ์๋๋ช author๋ก ๋ณ๊ฒฝ ๋ฐ ํ๋, ๋ฉ์๋ ์ ๋ฆฌ (#249) refactor: PostTag equals getId()๋ก ๋ณ๊ฒฝ ๋ฐ ํ๋ ์์ ์ ๋ฆฌ (#249) refactor: Like๋ฅผ VO๋ก ์ทจ๊ธ, Likes๋ฅผ ์ปจํ ์ด๋๋ก ์ทจ๊ธํ๋๋ก ๋ณ๊ฒฝ (#249) refactor: Image VO๋ก ์ทจ๊ธ ๋ฐ ๋์ ๋ฉ์๋ ๋ค์ด๋ฐ ๋ณ๊ฒฝ, PostContent validation๋ก์ง ๋ณ๊ฒฝ (#249) refactor: CommentContent VO ์ทจ๊ธ, comment ๋์๋ฉ์๋ ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ์ฑ ์ ๋ณ๊ฒฝ (#249) refactor: Post equals getter๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ (#249) refactor: ์ฐ๊ด๊ด๊ณ ๋์ ๋ฉ์๋ ๋ฐํ๊น ์๋๋ก ๋ณ๊ฒฝ (#249) style: ๊ตฌ๊ธ ์ปจ๋ฒค์ ์ ์ฉ (#249) refactor: ์ถ์ํ ์์ค ํํํ ์์ (#249) * refactor: ๋ฆฌ๋ฒ ์ด์ค ํ ๊นจ์ง๋ ํ์ผ ์์ * fix: User ๋น๊ต ๋ก์ง ๋ฒ๊ทธ ํด๊ฒฐ * refactor: ๋ฉ์๋์ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * refactor: ๋๋ฏธํฐ์ ์์น ์ค์ * refactor: ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋ ์ ๊ฑฐ * refactor: ๊นจ์ง๋ ํ ์คํธ ์์ * refactor: ํ์ ์ถ๋ก ๋ณ์๋ฅผ ํ์ ํ์ผ๋ก ๋ณ๊ฒฝ * refactor: ์๋ฏธ๊ฐ ์๋ ๋ณ์๋ช ์ ๊ฑฐ like -> ๋ฉ์๋์ฐธ์กฐ * style: ํ ์ปจ๋ฒค์ ์ ์ฉ * feat: PickgitRequest Post Builder ๊ตฌํ * refactor: PickgitRequest Post Builder ๊ตฌ์กฐ ๋ณ๊ฒฝ * feat: ๋ช ์ธ์ ๋ฐ๋ฅธ API ๊ตฌํ * refactor: File์ body๋ก ๋ฃ์ ์ byte ๋ณํ ์ถ๊ฐ * refactor: ๋ก๊ทธ์ธ ๋ชจํน ๋ฐฉ์ ๋ณ๊ฒฝ * refactor: ๋น๋ ๋ด๋ถ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ. * refactor: initAllParams ๋ฉ์๋ ์์ฑ Co-authored-by: SONG WON LEE <swon3210@gmail.com> Co-authored-by: Jinhong <xlffm3@gmail.com> Co-authored-by: Tanney102 <57767891+Tanney-102@users.noreply.github.com> Co-authored-by: DAEUN LEE <leede0418@gmail.com> Co-authored-by: YunTroubleshooter <63405904+yjksw@users.noreply.github.com> Co-authored-by: binghe819 <56860124+binghe819@users.noreply.github.com> * feat: ๋ ์ด์์ ์์ & ํ๋น์ฝ ์ถ๊ฐ (#342) - Comment, CommentSlider ์ ๋๊ธ ์ข์์ ์์ญ ์ญ์ - PostContentUploader ์ TextEditor ์ ํ ์คํธ line-height ์ฌ์ค์ * feat: github stat ํ ๋ถ๋ฆฌ ๋ฐ ๋ก๊ทธ์ธ ์์๋ง ์ด์ฉํ๋๋ก ์์ (#343) * [#344] ํ๊ทธ ๊ธฐ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ (#348) * refactor: ProfileFeed๋ฅผ GridFeed๋ก ์ถ์ํ * feat: ํ๊ทธ ๊ฒ์ ๊ด๋ จ mock์ถ๊ฐ * refactor: getPostsFromPagesํจ์์์ null๊ฐ๋ ๊ณ ๋ คํ๋๋ก ์์ * feat: ํค์๋๊ธฐ๋ฐ ๊ฒ์ ๋ก์ง ๋ฐ ํ ๊ตฌํ * feat: ํค์๋ ๊ธฐ๋ฐ ๊ฒ์ ์ธ๋ค์ผ ํผ๋ ๋ฐ ํ์ด์ง ๊ตฌํ * fix: search header input ๋ ์ด์์ ์์ * fix: ๊ฒ์์ ํค์๋๊ฐ ๋ค๋ฆ๊ฒ ์ ๋ฐ์ดํธ ๋๋ ์ด์ ํด๊ฒฐ * feat: ๋ค์ค ๊ฒ์ ์ง์ * [#349] ํ๊ทธ ํด๋ฆญ ์ ๊ฒ์ ํ์ด์ง๋ก ์ด๋ (#350) * feat: ๊ฒ์๋ฌผ ํ๊ทธ ํธ๋ฒ ๋ฐ ํด๋ฆญ ํผ๋๋ฐฑ ์ถ๊ฐ * feat: ๊ฒ์๋ฌผ ํ๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด ํ๊ทธ ๊ธฐ๋ฐ ๊ฒ์๋ฌผ ๊ฒ์ ํ์ด์ง๋ก ์ด๋ * refactor: console.log ์ ๊ฑฐ * refactor: PostItem ํ๊ทธ ํค๋ฅผ ํ๊ทธ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ * feat: ํ๋ก์ฐ/์ธํ๋ก์ฐ ์ ๊นํ ์ฐ๋ ์ฌ๋ถ ์ถ๊ฐ (#353) * [#354] ํ๋ก์, ํ๋ก์ ํ์ด์ง ๊ตฌํ (#357) * refactor: ์ปดํฌ๋ํธ ๋ฐ ํ์ ์ด๋ฆ ๋ณ๊ฒฝ * feat: ํ๋ก์, ํ๋ก์ฐ ๋ฆฌ์คํธ ์์ฒญ ๋ก์ง ๋ฐ ํ ๊ตฌํ * feat: ํ๋ก์ฐ, ํ๋ก์ ๋ฆฌ์คํธ ํ์ด์ง ๊ตฌํ * feat: ํ๋ก์ฐ, ํ๋ก์ ํ์ด์ง์ OneDepthHeader ์ถ๊ฐ * [#329] Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#345) * refactor: Github ํต๊ณ ์กฐํ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#329) - ๋ก๊ทธ์ธ -> ํต๊ณ ์กฐํ ๊ฐ๋ฅ - ๋น๋ก๊ทธ์ธ -> ํต๊ณ ์กฐํ ๋ถ๊ฐ๋ฅ * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์ถ๊ฐ (#329) * test: ์๋น์ค ํ ์คํธ ์ถ๊ฐ (#329) * test: ๋จ์ ํ ์คํธ ์ถ๊ฐ (#329) * test: ์๋น์ค ํ ์คํธ ์์ (#329) * test: ํตํฉ ํ ์คํธ ์์ (#329) * test: ์ธ์ ํ ์คํธ ์ถ๊ฐ (#329) * refactor: ํ๋ ์ด๊ธฐํ -> ์์ฑ์ ์ฃผ์ ์ด๊ธฐํ ๋ณ๊ฒฝ (#329) * style: ์ฝ๋ ํฌ๋งทํ ๋ณ๊ฒฝ (#329) * refactor: PlatformContributionExtractor ์์น ๋ณ๊ฒฝ (#329) * fix: findByKeyToken() ์ญ์ (#329) - OAuthAccessTokenDao -> Key๋ก pick-git JWT, Value๋ก Github JWT ๊ฐ์ง๊ณ ์์ - ArgumentResolver -> pick-git JWT(authentication) ๊ธฐ๋ฐ์ผ๋ก AppUser(LoginUser)์ Github JWT(accessToken) ๋ฐ์ธ๋ฉ * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ (#329) * test: ์๋น์ค ํ ์คํธ ์์ (#329) * refactor: @Profile ์ญ์ (#329) * test: ๋ถํ์ํ ํด๋์ค ์ญ์ (#329) * test: ์ธ์ ํ ์คํธ ์์ (#329) * feat: restDocs์ ์ด๋ฏธ์ง ํ์ผ์ด ๊นจ์ง๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ๋๋ฝ ์ค๋ํซ์ ์ถ๊ฐ (#361) (#363) * [#339] ํ๋ก์ ๋ฐ ํ๋ก์ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ (#347) * feat: userRepository ํน์ ์ ์ ์ ํ๋ก์ ๋ฐ ํ๋ก์ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#339) * feat: UserService ํน์ ์ ์ ์ ํ๋ก์ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#339) * feat: UserService ํน์ ์ ์ ์ ํ๋ก์ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#339) * feat: UserController ํน์ ์ ์ ํ๋ก์ ๋ฐ ํ๋ก์ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#339) * feat: ํ๋ก์ ๋ฐ ํ๋ก์ ์กฐํ ์ธ์ ํ ์คํธ ์์ฑ (#339) * refactor: UserController ํฌํผ ๋ฉ์๋๋ช ๋ณ๊ฒฝ (#339) * refactor: ํ๋ก์/ํ๋ก์ ๋ชฉ๋ก ์กฐํ ์ธ์ ํ ์คํธ API ๋ฉ์๋ ๋ณ๊ฒฝ (#339) * chore: ํ๋ก์/ํ๋ก์ rest docs ์ค๋ํซ ์ถ๊ฐ (#339) * [#330] Github Repositories ์กฐํ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#358) * refactor: API URL Path์์ username ์ญ์ (#330) * test: ๋ถํ์ํ import ์ญ์ * refactor: Github Repositories ์กฐํ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#330) - Pagination ์ถ๊ฐ -> API URL Path์ Query Parameter(page, limit) ์ถ๊ฐ * refactor: ๋ถํ์ํ import ์ญ์ * test: ๋จ์ ํ ์คํธ ์ถ๊ฐ (#330) * test: ์๋น์ค ํ ์คํธ ์ถ๊ฐ (#330) * test: ๋จ์ ํ ์คํธ ์์ (#330) * refactor: Pageable ์ฌ์ฉ (#330) * [#337] ํ๊ทธ ๊ธฐ๋ฐ ๊ฒ์๋ฌผ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ (#346) * feat: tag ๊ธฐ๋ฐ post ๊ฒ์ repository ๊ตฌํ (#337) * feat: search service ๊ตฌํ (#337) * feat: search controller ๊ตฌํ (#337) * test: acceptance Test ๊ตฌํ (#337) * refactor: ํํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#337) * test: TagType, SearchTypes ๋๋ฉ์ธ ํ ์คํธ ์์ฑ (#337) * test: ์๋น์ค ์ฌ๋ผ์ด์ค ํ ์คํธ ์์ฑ (#337) * refactor: ํ ์คํธ ๋ฉ์๋๋ช ๋ณ๊ฒฝ (#337) * test: Integration test ์์ฑ (#337) * refactor: ์๋ฏธ ์๋ ์ด๋ ธํ ์ด์ ์ ๊ฑฐ * fix: ์ค๋ํซ ์์ฑ ๊ฒฝ๋ก ๋ณ๊ฒฝ (#364) (#365) * [#368] ํ 1์ฐจ ๋ฐ๋ชจ ๋ฒ๊ทธ ์์ (#371) * fix: ํ๋ก์ฐ ๋ชฉ๋ก ํจ๋ฉ ์กฐ์ * fix: ํ๋กํ, ๊ฒ์ ํ์ด์ง ์ค๋ฒํ๋ก์ฐ ์กฐ์ * fix: ๊ฒ์ ํ์ด์ง๋ค์ด์ ๋์ํ์ง ์๋ ๋ฒ๊ทธ ์์ * fix: ๊นํ ํต๊ณ ์์ ์ด๋ฆ ๋ณ๊ฒฝ * fix: ํ๋ก์ฐ ์ ๊นํ ์ฐ๋ ์ปจํ ๋ซํ์ง ์๋ ๋ฒ๊ทธ ์์ , ์ปจํ ๋ฒํผ ํ ์คํธ ์์ * fix: spring rest docs html ์์ฑ ๋ฒ๊ทธ ํด๊ฒฐ (#373) * refactor: ํ๋กํ ์์ api ๋ถ๋ฆฌ (#369) * [#378] Logback ์ค์ ๋ฆฌํฉํ ๋ง (#379) * refactor: ๋ฐฑ์๋ ํ๋ก์ ํธ ๋ก๊น ๊ตฌ์กฐ ๋ณ๊ฒฝ (#378) * refactor: s3 ํ๋ก์ ํธ ๋ก๊น ๊ตฌ์กฐ ๋ณ๊ฒฝ (#378) * [#340] ํ๋กํ ์ด๋ฏธ์ง ์์ /์ ๋ณด ์์ API ๊ธฐ๋ฅ ๋ถ๋ฆฌ (#352) * feat: ํ๋กํ ์ด๋ฏธ์ง ์์ ๋ฐ ํ ์ค ์๊ฐ ์์ ๊ธฐ๋ฅ ๊ตฌํ * chore: ์๋ธ ๋ชจ๋ ์ต์ ํ * refactor: ํผ๋๋ฐฑ ๋ฐ์ * refactor: Userํจํค์ง S3 ํ๋ก์์ ์ ๊ทผํ๋ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ * [#380, #335] ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ & CommentSlider -> CommentsPage ๋ก ๋ณ๊ฒฝ (#381) * feat: favicon ์นํฉ ์ค์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ cancel ์์ด์ฝ์ delete icon ์ผ๋ก ๋ณ๊ฒฝ * feat: RepositorySelector ์ ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ - InfiniteScrollContainer ์ throttle ์ ์ฉ * feat: CommentSlider ์ ๊ธฐ๋ฅ์ CommentsPage ์์ ์ํํ๋๋ก ๋ณ๊ฒฝ * [#419] JaCoCo ์ถ๊ฐ (#422) * chore: ์๋ธ๋ชจ๋ ์ ๋ฐ์ดํธ * chore: REST Docs ์ ๋ฐ์ดํธ * chore: JaCoCo ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ (#419) * refactor: SonarQube Security ๋ฌธ์ ํด๊ฒฐ (#419) * [#359] Github Repositories ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ (#360) * feat: ๊ฒ์๋ฌผ ํ๋ก์ ๋ชฉ๋ก ํ์ด์ง๋ฅผ ๊ตฌํํ๋ค. (#420) - comment ๋ชฉ๋ก์ ํ๋ฒ์ 10๊ฐ์ฉ ๊ฐ์ ธ์ค๋๋ก ์์ * [#375] ํ๋ก์ฐ/์ธํ๋ก์ฐ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ๊ตฌํ (#376) * feat: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ ๊ตฌํ * chore: github follow ๊ถํ ์ค์ * test: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ํ ์คํธ ์ถ๊ฐ * refactor: ํผ๋๋ฐฑ ๋ฆฌํฉํ ๋ง * fix: ์ด๋ฏธ์ง ์์ ์ด ์๋๋ ๋ฒ๊ทธ ์์ (#426) * fix: ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api ์ฃผ์ ์์ (#428) - ๊ฒ์์ด๊ฐ ์์ ๋๋ ๊ธฐ๋ณธ ๋ ํฌ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ api ๋ฅผ, ๊ฒ์์ด๊ฐ ์์ ๋๋ ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * [#431] JaCoCo ๋ณด์ (#432) * chore: .gitignore ์ ๋ฐ์ดํธ * chore: JaCoCo ๋ณด์ (#431) * [#425] ๋ ํฌ ๊ฒ์ ์ JSON ํ์ฑ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค. (#429) * fix: JSON ํ์ฑ ๋ฒ๊ทธ ์์ (#425) * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ Co-authored-by: Daeun Lee <leede0418@likelion.org> * [#415] comment ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#417) * refactor: comment์ ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๋ค (#415) * refactor: ์คํจํ๋ ํ ์คํธ ์์ (#415) * feature: comment๋ฅผ ์์ฒญํ๋ service ๋ก์ง ๊ตฌํ (#421) * feat: controller ๊ตฌํ ๋ฐ WebMvcTest, Acceptance ํ ์คํธ ์์ฑ * refactor: ๋ฆฌ๋ฒ ์ด์คํ ์๋ฌ ํด๊ฒฐ * [#430] ๋ฐ์ํ ๋์์ธ ๊ตฌํ (#433) * feat: ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ ์, ๊ฒ์ ๊ฒฐ๊ณผ ์์ ๊ฒฝ์ฐ ์๋ด ๋ฌธ๊ตฌ๊ฐ ๋ฑ์ฅํ๋๋ก ์์ * feat: ๋ฐ์ํ ๋์์ธ ๊ตฌํ & comment ์ญ์ ์์ฒญ ์์ - ๋ชจ๋ ํ์ด์ง์ ๋ฐ์ํ ๋์์ธ ๊ตฌํ - comment ์ญ์ ์์ฒญ ์ postId ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ก ์์ * docs: README ์์ฑ (#94) (#440) * refactor: ์ ์ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํฐ์ ์ํ๋๋ก ๋ณ๊ฒฝ (#439) * chore: ํ๋ก ํธ์๋ ํ ์คํธ ์๋ํ ๊นํ ์ก์ ์ถ๊ฐ (#443) * refactor: ํผ๋ ์กฐํ์ ํจ๊ป ์ค๋ ๋๊ธ์ ๊ฐฏ์๋ฅผ 3๊ฐ๋ก ์ ํ (#444) (#445) * [#374] ์ข์์ ๋ฆฌ์คํธ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#413) * feat: ๊ฒ์๋ฌผ ์ข์์ ๋ฆฌ์คํธ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (#374) * fix : ํ ์คํธ fixture ๋ฒ๊ทธ ์์ (#374) * fix : Post entity ๊ธฐ๋ณธ์์ฑ์ ์ ๊ทผ ์ ์ด์ ๋ณ๊ฒฝ * test: ์ปจํธ๋กค๋ฌ ์ฌ๋ผ์ด์ค ํ ์คํธ ์ถ๊ฐ (#374) * fix: ํ ์คํธ ์ฝ๋ ๋ฒ๊ทธ ์์ (#374) * fix: ํ ์คํธ์์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ก ์ธํ ๋ฒ๊ทธ ์์ (#374) * refactor: ํผ๋๋ฐฑ ๋ฐ์ (#374) * refactor: ํผ๋๋ฐฑ ์ ์ฉ (#374) * [#281] ํ๋กํ ํ์ด์ง ๊ด๋ จ ํ ํ ์คํธ ์์ฑ (#446) * refactor: error message getter ์์ธ์ฒ๋ฆฌ * feat: useFollow ํ ํ ์คํธ ์์ฑ * feat: useProfileModification ํ ์คํธ ์ด์ ์์ฑ * feat: useFollow ํ ํ ์คํธ ์ผ์ด์ค ์ถ๊ฐ * chore: ํ ์คํธ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ * chore: ํ๋น์ฝ ๊ด๋ จ ์ค์ ์ถ๊ฐ * chore: jest setup ํ์ผ ์ถ๊ฐ * chore: ๋ฌธ์์ด ๋ฐ์ดํ ํต์ผ * refactor: profileModificationForm validatoin์์น ์์ * chore: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * refactor: ํ ์คํธ ๋ฆฌํฉํฐ๋ง - mock data ๋ถ๋ฆฌ - ์์ฒญ mock ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ณ๊ฒฝ - ํ ์คํธ ์ผ์ด์ค ์ถ๊ฐ * feat: useProfileModificatonForm ํ ํ ์คํธ ์ถ๊ฐ * feat: useFollowerList ํ ํ ์คํธ ์ฝ๋ ์์ฑ * feat: useFollowingList ํ ํ ์คํธ ์ฝ๋ ์ถ๊ฐ * refactor: ํ ์คํธ ํ๊ฒฝ์์ queryCilent ์ค์ ์ถ๊ฐ - retry ์ ๊ฑฐ * feat: useGithubStatistics ํ ํ ์คํธ ์ฝ๋ ์ถ๊ฐ * feat: useProfile ํ ํ ์คํธ ์ฝ๋ ์์ฑ * refactor: ์๋ฌ์ฒ๋ฆฌ ๋ฐฉ์ ์์ * feat: useSearchUserData ํ ํ ์คํธ ์ฝ๋ ์์ฑ * feat: useSearchPostData ํ ํ ์คํธ ์ฝ๋ ์์ฑ * [#370, #414] ๋๊ธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#434) * feat: ๋๊ธ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ (#370) * refactor: ๋ถํ์ํ import ์ญ์ * refactor: ๊ฒ์๊ธ๊ณผ ๋๊ธ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#414) * fix: ๋๊ธ ์ญ์ ๊ธฐ๋ฅ ๋ฒ๊ทธ ํด๊ฒฐ (#370) * test: ํตํฉ ํ ์คํธ ์์ฑ (#370) * test: ๋จ์ ํ ์คํธ ์์ฑ (#370) * test: ์ปจํธ๋กค๋ฌ ํ ์คํธ ์์ฑ (#370) * test: ์๋น์ค ํ ์คํธ ์์ฑ (#370) * test: ์ธ์ ํ ์คํธ ์์ฑ (#370) * refactor: ์ถ์ ํด๋์ค ์์ฑ์ public -> protected ๋ณ๊ฒฝ (#370) * refactor: ๋๊ธ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#370, #414) * test: ๋๊ธ ๊ธฐ๋ฅ ํ ์คํธ ๋ฆฌํฉํ ๋ง (#370, #414) * refactor: orphanRemoval -> CascadeType.REMOVE ๋ณ๊ฒฝ (#370) * refactor: ๊ฒ์๋ฌผ ๋ฐ ๋๊ธ ์ญ์ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง (#370, #414) * fix: CORS ๋ฒ๊ทธ ํด๊ฒฐ (#447) (#448) * [#382] Prod ํ๊ฒฝ Logback ์ค์ ๋ณ๊ฒฝ (#383) * refactor: Logback Prod ํ๊ฒฝ์์ DB ๋ก๊ทธ ์ญ์ ๋ณ๊ฒฝ (#382) * [#380, #335] ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ & CommentSlider -> CommentsPage ๋ก ๋ณ๊ฒฝ (#381) * feat: favicon ์นํฉ ์ค์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ cancel ์์ด์ฝ์ delete icon ์ผ๋ก ๋ณ๊ฒฝ * feat: RepositorySelector ์ ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ - InfiniteScrollContainer ์ throttle ์ ์ฉ * feat: CommentSlider ์ ๊ธฐ๋ฅ์ CommentsPage ์์ ์ํํ๋๋ก ๋ณ๊ฒฝ * [#419] JaCoCo ์ถ๊ฐ (#422) * chore: ์๋ธ๋ชจ๋ ์ ๋ฐ์ดํธ * chore: REST Docs ์ ๋ฐ์ดํธ * chore: JaCoCo ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ (#419) * refactor: SonarQube Security ๋ฌธ์ ํด๊ฒฐ (#419) * [#359] Github Repositories ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ (#360) * feat: ๊ฒ์๋ฌผ ํ๋ก์ ๋ชฉ๋ก ํ์ด์ง๋ฅผ ๊ตฌํํ๋ค. (#420) - comment ๋ชฉ๋ก์ ํ๋ฒ์ 10๊ฐ์ฉ ๊ฐ์ ธ์ค๋๋ก ์์ * [#375] ํ๋ก์ฐ/์ธํ๋ก์ฐ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ๊ตฌํ (#376) * feat: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ ๊ตฌํ * chore: github follow ๊ถํ ์ค์ * test: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ํ ์คํธ ์ถ๊ฐ * refactor: ํผ๋๋ฐฑ ๋ฆฌํฉํ ๋ง * fix: ์ด๋ฏธ์ง ์์ ์ด ์๋๋ ๋ฒ๊ทธ ์์ (#426) * fix: ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api ์ฃผ์ ์์ (#428) - ๊ฒ์์ด๊ฐ ์์ ๋๋ ๊ธฐ๋ณธ ๋ ํฌ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ api ๋ฅผ, ๊ฒ์์ด๊ฐ ์์ ๋๋ ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * [#431] JaCoCo ๋ณด์ (#432) * chore: .gitignore ์ ๋ฐ์ดํธ * chore: JaCoCo ๋ณด์ (#431) * [#425] ๋ ํฌ ๊ฒ์ ์ JSON ํ์ฑ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค. (#429) * fix: JSON ํ์ฑ ๋ฒ๊ทธ ์์ (#425) * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ Co-authored-by: Daeun Lee <leede0418@likelion.org> * [#415] comment ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#417) * refactor: comment์ ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๋ค (#415) * refactor: ์คํจํ๋ ํ ์คํธ ์์ (#415) * feature: comment๋ฅผ ์์ฒญํ๋ service ๋ก์ง ๊ตฌํ (#421) * feat: controller ๊ตฌํ ๋ฐ WebMvcTest, Acceptance ํ ์คํธ ์์ฑ * refactor: ๋ฆฌ๋ฒ ์ด์คํ ์๋ฌ ํด๊ฒฐ * [#430] ๋ฐ์ํ ๋์์ธ ๊ตฌํ (#433) * feat: ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ ์, ๊ฒ์ ๊ฒฐ๊ณผ ์์ ๊ฒฝ์ฐ ์๋ด ๋ฌธ๊ตฌ๊ฐ ๋ฑ์ฅํ๋๋ก ์์ * feat: ๋ฐ์ํ ๋์์ธ ๊ตฌํ & comment ์ญ์ ์์ฒญ ์์ - ๋ชจ๋ ํ์ด์ง์ ๋ฐ์ํ ๋์์ธ ๊ตฌํ - comment ์ญ์ ์์ฒญ ์ postId ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ก ์์ * docs: README ์์ฑ (#94) (#440) * refactor: ์ ์ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํฐ์ ์ํ๋๋ก ๋ณ๊ฒฝ (#439) * chore: ํ๋ก ํธ์๋ ํ ์คํธ ์๋ํ ๊นํ ์ก์ ์ถ๊ฐ (#443) * refactor: ํผ๋ ์กฐํ์ ํจ๊ป ์ค๋ ๋๊ธ์ ๊ฐฏ์๋ฅผ 3๊ฐ๋ก ์ ํ (#444) (#445) * refactor: Logback Prod ํ๊ฒฝ์์ DB ๋ก๊ทธ ์ญ์ ๋ณ๊ฒฝ (#382) Co-authored-by: SONG WON LEE <swon3210@gmail.com> Co-authored-by: DAEUN LEE <leede0418@gmail.com> Co-authored-by: YunTroubleshooter <63405904+yjksw@users.noreply.github.com> Co-authored-by: binghe819 <56860124+binghe819@users.noreply.github.com> Co-authored-by: Tanney102 <57767891+Tanney-102@users.noreply.github.com> Co-authored-by: Daeun Lee <leede0418@likelion.org> Co-authored-by: Minsung Son <sns2831@gmail.com> * [#449] ๊ฒ์๊ธ ์ข์์ ์ด์ฉ์ ๋ชฉ๋ก ํ์ด์ง ์ด๋ ๋ผ์ฐํ ์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ (#450) * fix: ๊ฒ์๊ธ ์ข์์ ์ด์ฉ์ ๋ชฉ๋ก ํ์ด์ง ์ด๋ ๋ผ์ฐํ ์ด ๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐ - ์ข์์๊ฐ 0 ๋ช ์ผ ๊ฒฝ์ฐ ์ด์ฉ์์๊ฒ ํผ๋๋ฐฑ ํด์ฃผ๊ณ ํ์ด์ง ์ด๋์ด ์ผ์ด๋์ง ์๋๋ก ๋ณ๊ฒฝ * fix: ๊ฒ์๋ฌผ ์ข์์ ๋ชฉ๋ก ์กฐํ ํ์ด์ง ์ ๊ฑฐ * [#453] ํ 3์ฐจ ๋ฐ๋ชจ ๊ฒฐ๊ณผ ๋ฐ์ (#454) * fix: ๊ฒ์ํ์ด์ง ๋ ์ด์์ ์์ * refactor: page url ๋ฐ header routing ์์ * fix: ๊ฒ์ํ์ด์ง ํ์ด์ง ์๋๋ ์ด์ ํด๊ฒฐ * fix: ํ๊ทธ ๋ค์ค ๊ฒ์ ์ ์ผํ๊ฐ ์ ๋๋ก ์ ๊ฑฐ๋์ง ์๋ ์ด์ ํด๊ฒฐ * chore: ํ๋ก ํธ์๋ ํ ์คํธ ์ก์ ์ฝ๋ ์์ (#456) * [#457] ๋ค๋ฒ์งธ ๋ฐ๋ชจ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ํด๊ฒฐ (#458) * feat: ๋ฐ์ํ ๋์์ธ ์ ๋ฐ์ดํธ * fix: comment ์ถ๊ฐ / ์ญ์ ๊ฐ ํ๋ฉด ์์ ๋ฐ๋ก ๋ฐ์๋๋๋ก ์์ * [#423, #460] ํ 4์ฐจ ๋ฐ๋ชจ ๋ฒ๊ทธ ์์ (#462) * [#435] ์ธํฐ์ ํฐ ๋ฑ๋ก ๊ธฐ๋ฅ ์ด๋ ธํ ์ด์ ํ (#437) * feat: ForGuest, ForLoginUser ์ด๋ ธํ ์ด์ ์ถ๊ฐ * feat: java ํ์ผ์์ ํํค์ง ์ถ์ถ ๋ก์ง ๊ตฌํ * refactor: ํ ์คํธ ํด๋๋ ๋ฌด์ํ๋๋ก ๋ณ๊ฒฝ * refactor: ControllerScanner ๊ตฌํ, ์ปจํธ๋กค๋ฌ๋ง ํ์ฑํ์ฌ ํด๋์ค ํ ํฐ์ผ๋ก ๋ฐํํ๋ค. * feat: PackageScanner ๊ตฌํ, ํด๋๋ฅผ ์ํํ๋ฉฐ ํด๋์ค ์ด๋ฆ์ ์ถ์ถํ๋ค. * feat: ForGuestScanner ๊ตฌํ, ForGuest ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ๋ฉ์๋๋ฅผ ์ถ์ถํ๋ค. * feat: ForLoginUserScanner ๊ตฌํ, ForLoginUser ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ๋ฉ์๋๋ฅผ ์ถ์ถํ๋ค. * feat: MethodMapper ๊ตฌํ, ๋ฉ์๋์ ๋งคํ๋ HttpMethod ๋ฐ ์ด๋ ธํ ์ด์ ์ ์ถ์ถํ๋ค. * feat: UrlParse ๊ตฌํ, ํด๋์ค๋ก ๋ถํฐ uri๋ฅผ ํ์ฑํ๋ค. * feat: AutoAuthorizationInterceptorRegister ๊ตฌํ. interceptor์ ํ์ฑํ ์ ๋ณด๋ฅผ ์ฃผ์ ํ๋ค. * test: UrlParams ํ ์คํธ ์ถ๊ฐ * fix: include, exclude ๋ชจ๋ ์ ์ฉํ๋๋ก ๋ณ๊ฒฝ. * refactor: ์ด๋ ธํ ์ด์ ์ด๋ฆ ๋ณ๊ฒฝ * refactor: ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ interceptor ๋ฑ๋ก ์ ์ฉ * refactor: CommentController ์ด๋ ธํ ์ด์ ์ ์ฉ * refactor: ์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ * refactor: ํจํค์ง ์คํ ์ ๊ฑฐ * style: ๋ฉ์๋๋ฅผ ์ฝ๊ธฐ ์ฝ๋๋ก ์์น ๋ณ๊ฒฝ. * refactor: uri values ์ถ์ถ๋ก์ง ์ฑ ์ ๋ณ๊ฒฝ * style: ํด๋์ค ์์์ ํ์ค ๊ฐํ * refactor: AuthenticateStorageForRegisterType ๋ถ๋ณํ * refactor: AuthenticateStorageForRegisterType ๋ถ๋ณํ ๋ฐ put ๋ฉ์๋ ๋ฆฌํฉํ ๋ง * refactor:!isNull -> nonNull ๋ณ๊ฒฝ * style: ํ ์คํธ ์ฝ๋ ์ปจ๋ฒค์ ์ ์ฉ * refactor: ํด๋์ค ๋ค์ด๋ฐ ๋ณ๊ฒฝ * refactor: excludePatterns ๊ฐํํ์ฌ ๊ฐ๋ ์ฑ ํ๋ณด. * style: ์์ฑ์ ์ปจ๋ฒค์ ์ ์ฉ. * refactor: ์ ๊ทํํ์ ์์ํ * test: ํ ์คํธ ๋ฉ์๋ ์ด๋ฆ ๋ณ๊ฒฝ * refactor: ํ์ ์ถ๋ก ๋ณ์ ์ ๊ฑฐ * test: ๊นจ์ง๋ ํ ์คํธ ์์ * refactor: ๋๋ฝ๋ ์ด๋ ธํ ์ด์ ์์ฑ * [#382] Prod ํ๊ฒฝ Logback ์ค์ ๋ณ๊ฒฝ (#383) * refactor: Logback Prod ํ๊ฒฝ์์ DB ๋ก๊ทธ ์ญ์ ๋ณ๊ฒฝ (#382) * [#380, #335] ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ & CommentSlider -> CommentsPage ๋ก ๋ณ๊ฒฝ (#381) * feat: favicon ์นํฉ ์ค์ ์ถ๊ฐ * feat: ๊ธฐ์กด์ cancel ์์ด์ฝ์ delete icon ์ผ๋ก ๋ณ๊ฒฝ * feat: RepositorySelector ์ ์ธํผ๋ํธ ์คํฌ๋กค๋ง ์ ์ฉ - InfiniteScrollContainer ์ throttle ์ ์ฉ * feat: CommentSlider ์ ๊ธฐ๋ฅ์ CommentsPage ์์ ์ํํ๋๋ก ๋ณ๊ฒฝ * [#419] JaCoCo ์ถ๊ฐ (#422) * chore: ์๋ธ๋ชจ๋ ์ ๋ฐ์ดํธ * chore: REST Docs ์ ๋ฐ์ดํธ * chore: JaCoCo ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ (#419) * refactor: SonarQube Security ๋ฌธ์ ํด๊ฒฐ (#419) * [#359] Github Repositories ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ (#360) * feat: ๊ฒ์๋ฌผ ํ๋ก์ ๋ชฉ๋ก ํ์ด์ง๋ฅผ ๊ตฌํํ๋ค. (#420) - comment ๋ชฉ๋ก์ ํ๋ฒ์ 10๊ฐ์ฉ ๊ฐ์ ธ์ค๋๋ก ์์ * [#375] ํ๋ก์ฐ/์ธํ๋ก์ฐ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ๊ตฌํ (#376) * feat: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ๊ธฐ๋ฅ ๊ตฌํ * chore: github follow ๊ถํ ์ค์ * test: ํ๋ก์ฐ/์ธํ๋ก์ฐ์ ๊นํ ์๋ ์ฐ๋ ํ ์คํธ ์ถ๊ฐ * refactor: ํผ๋๋ฐฑ ๋ฆฌํฉํ ๋ง * fix: ์ด๋ฏธ์ง ์์ ์ด ์๋๋ ๋ฒ๊ทธ ์์ (#426) * fix: ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api ์ฃผ์ ์์ (#428) - ๊ฒ์์ด๊ฐ ์์ ๋๋ ๊ธฐ๋ณธ ๋ ํฌ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ api ๋ฅผ, ๊ฒ์์ด๊ฐ ์์ ๋๋ ๋ ํฌ ๋ชฉ๋ก ๊ฒ์ api๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ * [#431] JaCoCo ๋ณด์ (#432) * chore: .gitignore ์ ๋ฐ์ดํธ * chore: JaCoCo ๋ณด์ (#431) * [#425] ๋ ํฌ ๊ฒ์ ์ JSON ํ์ฑ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค. (#429) * fix: JSON ํ์ฑ ๋ฒ๊ทธ ์์ (#425) * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ * chore: ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์ต์ ๊ธฐ์ค ๋ณ๊ฒฝ Co-authored-by: Daeun Lee <leede0418@likelion.org> * [#415] comment ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ (#417) * refactor: comment์ ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๋ค (#415) * refactor: ์คํจํ๋ ํ ์คํธ ์์ (#415) * feature: comment๋ฅผ ์์ฒญํ๋ service ๋ก์ง ๊ตฌํ (#421) * feat: controller ๊ตฌํ ๋ฐ WebMvcTest, Acceptance ํ ์คํธ ์์ฑ * refโฆ
- Loading branch information