๋ชฉ์ฐจ
์ ํฌ ์น ์ ํ๊ธฐ ํ์ โ๋ณ์ ๋ํ ์๋น์ค ๋งค์นญ ํ๋ซํผโ ์ ์ฃผ์ ๋ก ์ ์ ํ์ต๋๋ค. ๊ณ ๋ นํ ์ฌํ๋ก ์ ์ด๋ค๋ฉด์ ์๋ฃ ์ด์ฉ์ ์ด๋ ค์์ ๊ฒช๋ ๊ณ ๋ น์ธต์ด ๋์ด๋๊ณ ์์ต๋๋ค. ํนํ ๋ฌด์ธ ์ ์๊ธฐ ๋ฑ ๋์งํธ ๋๊ตฌ์ ๋์ ์ผ๋ก ์ธํด ์ต์ํ์ง ์์ ์ด๋ฅด์ ๋ค์ ๋ณ์ ์ด์ฉ์ ๋ถํธํจ์ ๊ฒช๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํฌ๋ ๋์์ด ํ์ํ ํ์์ ์ ๋ฌธ ๋งค๋์ ๋ฅผ ๋งค์นญํ์ฌ ํ์๊ฐ ์์ ํ๊ฒ ์๋ฃ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ ํ๋ซํผ์ ์ ์ํฉ๋๋ค. ๋ณ์ ๋ํ ์๋น์ค์ ์์๋ ๊ณ ๋ นํ์ 1์ธ ๊ฐ๊ตฌ ์ฆ๊ฐ๋ก ์ธํด ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๊ณ ์์ผ๋ฉฐ, ๋ณ์ ๋ํ ๋งค๋์ ์ ๋ฌด๋ ๋น๊ต์ ๋ฎ์ ๋ ธ๋ ๊ฐ๋๋ก ์ค์ฅ๋ ์ธต์ ์๋ก์ด ์ง์ ์ผ๋ก ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค.
์ ํฌ ํ๋ซํผ์ ํ์์ ์ ๋ฌธ ๋งค๋์ ๊ฐ์ ๋งค์นญ์ ํตํด ๋ณ์ ์ด์ฉ์ ์ง์ํ๋ฉฐ, ์ค์๊ฐ ์กฐํ ๋ฐ ๋ฆฌํฌํธ ๊ธฐ๋ฅ์ ํตํด ์๋ ๋ค๋ ์์ฌํ๊ณ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋๋ก ๋๊ฒ ์ต๋๋ค.
ํฌ๋ช ํ ์๋น์ค๋ก ํ์์ ๋ณ์ ๋ํ ๋งค๋์ ๋ฅผ ๋งค์นญํ๋ค, '๋ฉ๋ํฌ๊ฒ๋'
-
โ๏ธ ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
- SNS ๊ฐํธ ๋ก๊ทธ์ธ (์นด์นด์ค)์ผ๋ก ํ์๊ฐ์ ์ด ๊ฐ๋ฅํด์.
- ๋ก๊ทธ์์ ๋ฐ ํํด ๊ธฐ๋ฅ๋ ์ ๊ณตํ๊ณ ์์ด์.
-
๐๏ธ ํ์์ ํ๋กํ ๊ด๋ฆฌ
- ํ์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ ์๋ฃ ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์ด์ (์ด๋ฆ, ๋์ด, ์ฑ๋ณ, ๋ณ๋ ฅ ๋ฑ).
- ์ฃผ์น์ ์ ๋ณด๋ ๋ฑ๋กํด๋๋ฉด ์๋น์ค ์ด์ฉ์ ๋์์ด ๋ผ์.
-
๐ ์๋น์ค ์์ฝ์ผ๋ก ๋ณ์ ๋ํ์ ๋ฏธ๋ฆฌ ์ค๋นํด์
- ๋ํ ์๋น์ค ์์ฝ์ ํตํด ๋ณ์ ์ ๋ณด์ ์์ฝ ์๊ฐ์ ์ฝ๊ฒ ์ค์ ํ ์ ์์ด์.
- ์์ฝ ํ์๋ ์์ ์ด๋ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํด์.
-
๐ ์ค์๊ฐ ๋ํ ํํฉ ์๋ฆผ
- ๋ํ ์๋น์ค ์ด์ฉ ์ค ์ค์๊ฐ์ผ๋ก ํ์์ ๋ํ์์ ์์น๋ฅผ ํ์ธํ ์ ์์ด์.
- ๋ณดํธ์๋ ํ์ ๋ณธ์ธ์ด ์ดํ์์ ์ด๋ ๊ฒฝ๋ก์ ์์น๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์์ด์.
-
๐ ์ง๋ฃ ๋ฆฌํฌํธ ์ ๊ณต์ผ๋ก ์ง๋ฃ ์ ๋ณด๋ฅผ ํ๋์
- ์ง๋ฃ๊ฐ ๋๋๋ฉด ๋ฆฌํฌํธ๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค์ (์ง๋ฃ ์ ๋ณด, ์ฒ๋ฐฉ ๋ด์ญ ๋ฑ ํฌํจ).
2024.09 ~ 2024.11 (์นด์นด์ค ํ ํฌ ์บ ํผ์ค 2๊ธฐ - STEP3)
๋ ธ์ | ๋ฐ์ ํ | ์ด์ฐฝ์ฑ | |
---|---|---|---|
[email protected] | [email protected] | [email protected] | |
GitHub | Normenghub | Pjhn | ichanguk |
๊ธฐ๋ฅ | ์ค๋ช |
---|---|
๋ก๊ทธ์ธ/ํ์๊ฐ์ | ์นด์นด์ค OAuth ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ์นด์นด์ค ๋ก๊ทธ์ธ ํ ๋ฐ๊ธ๋ access token๊ณผ refresh token์ ํตํด JWT ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค. refresh token์ ๋ง๋ฃ ๊ธฐ๊ฐ์ด 7์ผ ์ด์ ๋จ์ ์์ ๊ฒฝ์ฐ ์๋ ๋ก๊ทธ์ธ๋ ์ง์ํฉ๋๋ค. |
์์ฝ | ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ(์ด๋ฆ, ์๋ ์์ผ, ์ฑ๋ณ, ์ฐ๋ฝ์ฒ, ์ถ๋ฐ์ง, ๋์ฐฉ์ง ๋ฑ) ๋ฐ์ ๊ฐ์ธ์ ๋ณด ์์ง ๋์ ํ ์์ฝ์ ์๋ฃํฉ๋๋ค. |
์ค์๊ฐ ๋ํ ํํฉ | ๋งค๋์ ์ฑ์์ ๋งค๋์ ๊ฐ ์ ๋ ฅํ ๋ํ ์ํฉ ์ ๋ณด(์: 24.11.20 21:04 ๋ถ์ฐ๋ ๋ณ์ ๋์ฐฉ)๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. |
์์ฝ ํํฉ | ํ์ฌ ์์ฝ ์ํ์ ์ง๋ ์์ฝ ๋ด์ญ์ ์กฐํํ ์ ์์ผ๋ฉฐ, ์งํ ์ค์ธ ์์ฝ์ ๋ํด์๋ ์ทจ์ ์์ฒญ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, ์ง๋ ์์ฝ์ ๋ํ ๋ฆฌํฌํธ๋ ํ์ธํ ์ ์์ต๋๋ค. |
๋งค๋์ ๋ฆฌ์คํธ ์กฐํ | ์์ฝ ์ ์ถ๋ฐ์ง๋ฅผ ๋๋ก๋ช ์ฃผ์ ๊ฒ์ API๋ฅผ ํตํด ์ ํํ๋ฉด, ํด๋น ์ถ๋ฐ์ง์ ์/๋ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ํด๋น ์ง์ญ์ ๋ง๋ ๋งค๋์ ๋ฆฌ์คํธ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค. |
๋งค๋์ ํ๋กํ ์กฐํ | ๋งค๋์ ๋ฆฌ์คํธ์์ ํญ๋ชฉ์ ์ ํํ๋ฉด ๋งค๋์ ์ฑ์ ๋ฑ๋ก๋ ๋งค๋์ ๋ค์ ํ๋กํ์ ์กฐํํ ์ ์์ต๋๋ค. ํนํ, ๋งค๋์ ํ๋กํ ์ด๋ฏธ์ง๋ Amazon S3 ์๋น์ค๋ฅผ ํตํด ๋ค์ด๋ก๋ ๋ฐ์ ํ์๋ฉ๋๋ค. |
๊ฐ ๊ตฌ์ฑ ์์(data, domain, ui)์ ์ญํ ์ด ๋ถ๋ฆฌ๋์ด ์ฝ๋ ์์ ๊ณผ ํ์ฅ์ด ์ฉ์ด
๋น์ฆ๋์ค ๋ก์ง์ด UI์ ๋ถ๋ฆฌ๋์ด ์์ด ๋จ์ ํ ์คํธ๊ฐ ๊ฐํธ
JWT ํ ํฐ ์ ์ฅ์ SharedPreferences์ ๋นํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ๋ณด์์ฑ์ด ๋์
์ฝ๋ฃจํด์ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ด ํจ์จ์
ํ ํฐ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ refresh ํ ํฐ์ ์ฌ์ฉํด ์๋์ผ๋ก ๊ฐฑ์ ๋ ์ก์ธ์ค ํ ํฐ์ ๋ฐ์ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ์ง ์๊ณ ๋ ์ฑ ๋ด์์ ๊ณ์ํด์ ์์ ์ ์ํํ ์ ์๊ฒ ํจ.
๋ชจ๋ API ์์ฒญ ํค๋์ JWT๋ฅผ ์๋์ผ๋ก ํฌํจํ์ฌ ๊ฐ ์์ฒญ๋ง๋ค ์ฌ์ฉ์ ์ธ์ฆ์ ์ฒ๋ฆฌ
๊ฐ์ฒด์ ์์ฑ๊ณผ ๊ด๋ฆฌ๋ฅผ Hilt๊ฐ ๋ด๋นํด ์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฃผ์ ๋ฐ์ ์ ์๋๋ก ํจ
ํด๋์ค ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๊ณ ์์กด ๊ด๊ณ๋ฅผ ๋ชจ๋ ๋จ์๋ก ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ ํฅ์
ViewModel์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ Fragment์์๋ UI์ ์ง์ค
StateFlow๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋์ผ๋ก UI๊ฐ ์ ๋ฐ์ดํธ๋๋๋ก ๊ตฌ์ฑ
๐ API ๋ฌธ์