2021/08/14 ~ 2021/08/17
- ๋ก๊ทธ์ธ ํ๋ฉด ( 08/14 ) โ ( 08/16 )
- ํ์๊ฐ์ ํ๋ฉด ( 08/14 ) โ ( 08/16 )
- ํ ํ๋ฉด ( 08/15 ) โ ( 08/16 )
- ์คํ๋์ฌ ํ๋ฉด ( 08/17 )
- ๋ผ๋ ๋ ์ด์์ ๊ตฌ์ฑ(๋ค๋น๊ฒ์ด์ ํญ ๋ฑ) ( 08/14 ) โ ( 08/16 )
- ์ด๋ฏธ์ง ๋ฆฌ์์ค ๊ตฌํ๊ธฐ
- ์๋ ๋ก๊ทธ์ธ ๊ตฌํ ( 08/20 )
API
- Open API๋ก ๋๋ก๋ช ์ฃผ์ ๊ฐ์ ธ์ค๊ธฐ >> ๋์ค์ ํด๋ณด๊ธฐ
- ํ์๊ฐ์ API ์ฐ๋ ( 08/16 ) >>> ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํตํฉ API
- ๋ก๊ทธ์ธ API ์ฐ๋ >> ์๋ฒ๊ฐ ์ด๋ฆฌ๋ฉด ํ ์คํธ ํ๊ธฐ >> ( 08/17 )
2021/08/17 ~ 2021/08/24
๊ฐ์ธ ๋ชฉํ: ํ๋ฃจ์ 1.5๊ฐ ์์ฑํ๊ธฐ ( 17 ๐ / 18 ๐ / 19 ๐ / 20 ๐ญ / 21 ๐ญ / 22 ๐ / 23 ๐ )
๋ ์ด์์
- ์ํ ๋ํ ์ผ ํ๋ฉด ( 08/17 )
- ๋์ ๋น๊ทผ ํ์ด์ง ( 08/18 ) โ ( 08/19 )
- ํ๋งค๋ด์ญ ( 08/19 )
- ์ํ ๋ฑ๋ก ( 08/19 )
- ์นดํ ๊ณ ๋ฆฌ ( 08/20 )
- ๊ฒ์ํ๋ฉด ( 08/22 )
- ์ฑ ์ค์ ( 08/20 )
- ํ์๊ฐ์ ํ๋ฉด ๋ค์ ๊ตฌํํ๊ธฐ ( 08/18 )
- ์๋ ๋ก๊ทธ์ธ
- ๋๋ค์ํ
API
- ๋์ ๋น๊ทผ ํ์ด์ง API ( 08/19 )
- ์๋ก ์์ฑ๋ ํ์๊ฐ์ API >> ์๋ฒ๊ฐ ์ด๋ฆฌ๋ฉด ํ ์คํธ ํ๊ธฐ ( 08/18 )
- ์๋ก ์์ฑ๋ ๋ก๊ทธ์ธ API ( 08/19 )
- ์ ์ฒด ๊ฒ์๊ธ ์กฐํ API >> ์๋ฒ๊ฐ ์ด๋ฆฌ๋ฉด ํ ์คํธ ํ๊ธฐ ( 08/21 )
- ์ํ ๋ํ ์ผ ํ๋ฉด API ( 08/22 ) >> Image๋ฅผ vp2์ ์ฐ๊ฒฐ์ํค๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ ( 08/26 )
- ํ๋งค๊ธ ์์ฑ API >> ๋ฉ์ธํ๋ฉด์ ๋ฐ์๋๊ฒํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ >> ์๋ฒ ๋ฌธ์ >> ์๋ฒ์ ์์ ์์ฒญ ํ ์ ์ ๋ฐ์ ( 08/23 )
- ํน์ ์ ์ ๋๋ค์์ผ๋ก ๊ฒ์ API ( 08/23 )
- ๊ฒ์๊ธ ์ ๋ชฉ์ผ๋ก ๊ฒ์ API ( 08/23 )
2021/08/24 ~ 2021/08/27
- ๊ฐค๋ฌ๋ฆฌ์์ ๋ถ๋ฌ์จ ์ฌ์ง firestore์ ์ ์ฅํ๊ธฐ
- ๊ฐค๋ฌ๋ฆฌ์ ์ฌ์ง์ ๋ถ๋ฌ์ฌ ๋ users-permission ํ์ฉ, ๊ฑฐ์ ๋ฐ๊ธฐ
๋ ์ด์์
- ํ๋งค๋ด์ญ
- ๊ฒ์ํ๋ฉด
- ๋๋ค์ํ
- ์นดํ ๊ณ ๋ฆฌ ์ ํ ์ ๋์ค๋ ํ๋ฉด
API
- ๊ฒ์๊ธ ์ญ์ ํ๊ธฐ API
- ๊ฒ์๊ธ ์์ ํ๊ธฐ API
- ์ ์ ํ๋กํ ๋ณ๊ฒฝ API
- ์นดํ ๊ณ ๋ฆฌ ์กฐํ API
- ์ํ ํ๋งค๊ธ ์กฐํ์ ์ฆ๊ฐ API
- ๋๋ค๋งค๋ฌผ ์กฐํ API
- ํ๋งค์ค ์กฐํ API
- ์ํ ๊ฒ์๊ธ ๊ด์ฌ ์ค์ API
- ์ํ ๊ฒ์๊ธ ๊ด์ฌ ํด์ API
- ํ๋งค ๊ฒ์๊ธ ์ํ ๋ณ๊ฒฝ API >> ์ฎ๊ธด ํ๋๋ฐ productIdx ์ ๋ฐ์์์ง ๋ณ๊ฒฝ์ด ์๋์ ํฌ๊ธฐ
- ๋๋ค์ํ ์กฐํ API
- ๋๋ค์ํ ๊ธ์ฐ๊ธฐ API
- ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํตํฉ API
2021/08/14 ~ 2021/08/27 ๊น์ง์ ๊ณผ์ ์ ๋ด์ ๊ฐ๋ฐ์ผ์ง
- ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ ( 70% โ)
- Sourcetree ์ฌ์ฉ์ ์ด๋ ค์์ด ์์ด GitHub Desktop ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์งํํ๋๋ก ํจ.
- ๋ผ๋ ๋ ์ด์์ ๊ตฌ์ฑ ( 50 % โ)
- ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ ( 100% โ)
- ๋ก๊ทธ์ธ ํ๋ฉด ๊ตฌํ ( 90% โ)
- ์ด๋ฏธ์ง ๋ฆฌ์์ค ๊ตฌํ๊ธฐ
- ๋ก๊ทธ์ธ ํ๋ฉด ๊ตฌํ ( 100% โ)
- ํ์๊ฐ์ ํ๋ฉด ๊ตฌํ ( 100% โ)
- ํ์๊ฐ์ API ์ฎ๊ธฐ ( 90% โ)
- ํ ํ๋ฉด ( 100% โ)
- ์คํ๋์ฌ ํ๋ฉด ( 100% โ)
- ๋ผ๋ ๋ ์ด์์ ๋ํ ์ผ ๊ตฌ์ฑ ( 100% โ)
- ์ด๋ฏธ์ง ๋ฆฌ์์ค ๊ตฌํ๊ธฐ
- ๋ก๊ทธ์ธ API ์ฐ๋ ( 100% โ ) ์ง๋ง ๋ก๊ทธ์ธ ๋ฐฉ์ ๋ณ๊ฒฝ์ผ๋ก ์์ ํ๊ธฐ
- ์คํ๋์ฌ ํ๋ฉด ( 100% โ)
- ์๋ ๋ก๊ทธ์ธ
- floating action button ๋ฉ์ธ ์กํฐ๋นํฐ์ ๊ตฌํํ๊ธฐ ( ์๋ฃ โ )
- int๋ก ๋๋ ์ค์ ๋๋ค์ํ์ด๋ ๋ค๋ฅด๊ฒ ๋์ค๋๋กํ๊ณ , ๋๋จธ์ง ํ๋๊ทธ๋จผํธ ๋๋ ์ ๋๋ ์์ ์ฃผ๊ธฐ ( ์๋ฃ โ )
- ์๋ ํด๋ณธ์ ์์ด์ ๋์ด๋๋ฅผ ๋ชจ๋ฅด๊ฒ ์. ๋ค๋ฅธ ๊ฒ๋ค ์ฐ์ ์งํํ๊ณ ์๋ํด๋ณผ ์์ ( ์์ฃผ ๊ฐ๋จ )
- ๊ฐ๋ฐ ์ฐ์ ์์์ 7๋ฒ ~ 10๋ฒ ์ฌ์ด๋ก ๊ตฌํํด๋ณด๊ธฐ
- divider ์ฝํ๋ฆฐ ์ฝ๋ฉ ๋ง๊ณ item์ ์ ํ๋ ๊ทธ์ด์ค๋ ๋จ. ( ์๋ฃ โ )
- ์ฒ์ ํผ๋ธ๋ฆฌ์ฑ ํ๋ฆฌํฐ๋ฅผ ์ ์ก์๋๊ธฐ (๋์ค์ ํด์ผ์ง ํ์ง๋ง๊ธฐ !!)
- ๐จ ๋ก๊ทธ์ธ api๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์๊ฐ์ api๋ฅผ ์ฌ์ฉ์ api๋ก ์ฌ์ฉํ๊ธฐ๋ก ํจ. (ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ ๋์์ ํ๋ค.)
[์์
๋ก๊ทธ์ธ ๋ฐฉ์์ผ๋ก ์งํ]
โ ์๋ฒ์์ ๋ฌธ์ ์ธ์ฆ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ์ด๋ ค์, id/pw/profileImage/nickname์ ๋ฐ์ ํ์๊ฐ์
ํ
id/pw๋ก ๋ก๊ทธ์ธํ๋ ๋ฐฉ์์ผ๋ก ์์ ํ ๋ณ๊ฒฝํ์์ผ๋ (issue 2๋ฒ ์ฐธ๊ณ )
ํด๋ผ์์ ๊ธฐ์กด ๋์์ธ์ ๋ณ๊ฒฝํด์ ์ ์ํด์ผ ํ๋ ์ด๋ ค์์ด ๋ฐ์ํจ.
โ ๋ก๊ทธ์ธ/ํ์๊ฐ์
์์ ๊ธฐ์กด ๋์์ธ ๋ฐฉ์ (๋ฒํธ ์
๋ ฅ ํ ์ธ์ฆ๋ฒํธ๋ฅผ ๋ฐ๊ณ ์ธ์ฆ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ฉด ๋ก๊ทธ์ธ์ด ๋๋ ๋ฐฉ์)์ ์ฌ์ฉํ๋,
๋ฒํธ๋ id, ์ธ์ฆ๋ฒํธ๋ password๋ก ๊ตฌํํ๋๋ก ํจ. (์ธ์ฆ๋ฒํธ๋ ๋ฐ๋ก ๋ฐ๊ธ๋ฐ์ง ์๋๋ค.)
โ ์๋ฒ์์๋ ๊ตฌํ ์ด๋ ค์์ ์ค์ด๊ณ , ํด๋ผ์์๋ ๋์์ธ/ํผํฌ๋จผ์ค ํ๋ฆฌํฐ๋ฅผ ๋์ผ ์ ์๊ฒ๋จ !
- ์ํ ๋ํ ์ผ ํ๋ฉด ๊ตฌํ ( 100% โ)
- ๋ก๊ทธ์ธํ๋ฉด ๋ค์ ๊ตฌํํ๊ธฐ
- [Q] ์๋ฒ๊ฐ ์๋ฒ๋ฅผ ์ด์ฌ์ค์ผ๋ง ์์
ํ ์ ์์๋ issue๊ฐ ์์์ผ๋,
- [A] ์ค๋์ด๋ ๋ด์ผ aws์๋ฒ๋ก ์ฎ๊ธฐ๋ฉด ์์ผ๋ก ์๋ฒ๊ฐ ๊ณ์ ์ด๋ ค์์ ๊ฑฐ๋ผ๊ณ ๋ง์ํด์ฃผ์ฌ!
Thread๋ฅผ ์ ์ธํ๊ณ ์ฝ์ง์์ด ์ฐฉ์ฐฉ ์งํํจ !
-
[Q] ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํด๋ผ ๋ณ๊ฒฝ์ฌํญ ์๋ฒ์๊ฒ ์ ๋ฌํ๊ณ ์๋ฒ ๋ณ๊ฒฝ์ฌํญ ์ ๋ฌ๋ฐ๊ธฐ
- [A] ํ์๊ฐ์ ์์๋ ๋ฒํธ๋ฅผ ์์ด๋, ์ธ์ฆ๋ฒํธ๋ฅผ ๋น๋ฐ๋ฒํธ๋ก ๋ฐ์ง๋ง ๋ก๊ทธ์ธํ ๋๋ ์ผ๋จ DB์ ์๋ ๋ฒํธ๋ผ๋ฉด ๋ก๊ทธ์ธ๋๋ ๊ตฌ์กฐ๋ก ์์ ํ๋ค๋ ๋ต๋ณ ๋ฐ์ !
-
ํ์๊ฐ์ ํ๋ฉด ๋ค์ ๊ตฌํํ๊ธฐ ( 100% โ) >> editText ๋ํ ์ผ ์ ๊ฒฝ์ฐ๊ธฐ
- ์ฝํ๋ฆฐ์์ ์ ๊ณตํ๋ Timer ์ฌ์ฉ
- ๊ธ์ ์ง์ฐ๋ฉด ๋ค์ ์๋ ์ํ๋ก ๋์๊ฐ๊ฒ + ๊ธ์ ์ ์ถฉ์กฑ ๋ชปํ๋ฉด ๋ค์์ผ๋ก ๋ชป ๋์ด๊ฐ๊ฒ~
- ์ปค์คํ ํ ์คํธ
-
ํ์๊ฐ์ API ๋ค์ ์ฎ๊ธฐ ( 100% โ)
-
์ํ ๋ํ ์ผ ํ๋ฉด ๋ํ ์ผ ์ ๊ฒฝ์ฐ๊ธฐ ( 100% โ)
-
๋์ ๋น๊ทผ ํ์ด์ง ๊ตฌํํ๊ธฐ ( 70% โ)
-
๋์ ๋น๊ทผ ํ์ด์ง API ์ฎ๊ธฐ ( 80% โ)
-
[Q] ๋์ ๋น๊ทผ ํ์ด์ง API์ ํด์ํ๊ทธ ๊ฐ์ด ์์ด์ ์๋ฒ์ ์ฌ์ญค๋ด
- [A] userInfoIdx(์ ์ ์ธ๋ฑ์ค๊ฐ)๋ก ์๊ฐํ๊ณ ๊ตฌํํ์ จ๋ค๋ ๋ต๋ณ์ ๋ฐ์ !
- ์ ์ผํ ๊ฐ์ด๋ ์ฉ๋๊ฐ ๋ง์ ๊ฒ ๊ฐ์์ ๋ต๋ณ๋๋ก ์งํํ๋๋ก ํจ
-
[Q] ๋์ ๋น๊ทผ ํ์ด์ง์ ์ฃผ์ ๊ฐ์ด ๋น์ด์์ด์ GPS ๊ตฌํ ํ ์ถ๊ฐ ํด์ฃผ์ค๊ฑด์ง ์ฌ์ญค๋ด
- [A] ์ฃผ์ ๋ฐ์ดํฐ๋ ์๋ ผ์ด ํ์ํ ๋ฌธ์ ๋ก ์๋ฒ์์ api๋ฅผ ์ฎ์์ง ํด๋ผ์์ api๋ฅผ ์ฎ์์ง ์ ํด๋ณด๊ธฐ๋ก ํจ
- ์ฐ์ ํ ์คํธ๋ทฐ๋ก ๋จ๊ฒจ๋๊ณ ์ฒ์ฒํ ์งํํ๊ธฐ๋ก ํจ
์๋ ๋ก๊ทธ์ธ๊ณผ ๋์ ๋น๊ทผ ํ์ด์ง API ์ฎ๊ธฐ์์ ์ฝ์ง์ ์ข ๋ง์ดํ๋ค. ์ฑ๊ณต์กฐ์ฐจ ๋ชปํ๋ค ๐ฅ >> SharedPreferences ์ด์ฉํด์ ๊ฐ๋ณ๊ฒ ์ฑ๊ณตํ๋ค. ( 8/20 )
-
๋ก๊ทธ์ธ API ๋ค์ ์ฎ๊ธฐ ( 100% โ)
-
์๋ ๋ก๊ทธ์ธ
-
๋์ ๋น๊ทผ ํ์ด์ง API ์ฎ๊ธฐ ( 50% โ)
- ์ด์ ๋์ ๋น๊ทผ ํ์ด์ง API ์ฎ๊ธฐ๋ ์ฑ๊ณตํ๋๋ฐ, ๋ฐ๋ก ํ๋ฉด์ ํ์๋๋๊ฒ ์๋๋ค. >> path Variable ๊ฐ์ ์์๋ก ์ ๋ ฅํด์ฃผ๋ฉด ์ฑ๊ณตํ๋๋ฐ, ๋ฐ์์ค๋ ๋ฐฉ๋ฒ์ ์์ง ! (08/21)
- Glide ์ฌ์ฉ
-
๋์ ๋น๊ทผํ์ด์ง ๊ตฌํ ( 100% โ) >> API๋ฅผ ์ฎ์ด์ผ ํ๋๋ฐ ์ ์๋ผ์ >> ์ฑ๊ณตํ๊ธด ํ๋๋ฐ ๋ญ๊ฐ ๋ถ์กฑํจ
- ๋์ ๋น๊ทผ ํ์ด์ง์ ์๋ ๋ชฉ๋ก๋ค์
RecyclerView๋ก ๊ตฌํ ํด์ผํ ์ง ์๋๋ฉด ๊ทธ๋ฅ Linear๋ก ํด์ค์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๊ณ ๋ฏผ ํด๋ณด๊ธฐ - ์นดํ ๊ณ ๋ฆฌ ํ๋ฉด๊ฐ์ ๊ฒฝ์ฐ ์ฑ์ด ์ ๋ฐ์ดํธ ๋ผ์ ์์ ์ด ๋ฐ์ํ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํด๋ณด๋ฉด RecyclerView GridLayoutMananger ํน์ GridView ๋ก ๊ตฌํํ๋ ๊ฒ์ด ์ ์ ํ๋ค.
- ์ฌ์ง ๋ฐ์์ฌ ๋ oval ๋ชจ์์ผ๋ก ๋ฐ์์ค๊ธฐ ์์ง ์ ํจ. ( 08/22 )
- ๋์ ๋น๊ทผ ํ์ด์ง์ ์๋ ๋ชฉ๋ก๋ค์
-
ํ๋งค๋ด์ญ ๊ตฌํ ( 60% โ)
- TabLayout + Viewpager2 ์ฐ๊ฒฐ ์ฑ๊ณต
-
[Q] ๋์ ๋น๊ทผ ํ์ด์ง ๊ฐ์ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ํ ๋๋ง ๋ณผ ์ ์๋ ํ์ด์ง์ธ๋ฐ api ํค๋ ๋ถ๋ถ์ jwt๊ฐ์ ํ ํฐ์ด ์์ด์ ๋ด๊ฐ ์๋ ๋ค๋ฅธ ์ ์ ๋ค๋ ์ธ๋ฑ์ค ๋ฒํธ๋ง ์ ๋ ฅํ๋ฉด ์กฐํํ ์ ์๋ค๋ ์๊ฐ์ด ๋ฆ
- [A] ์๋ฒ์๊ฒ ๋ง์๋๋ ธ๋๋ ๊ทธ ๋ถ๋ถ์ ์ ๊น ์๊ฐ ๋ชปํ์ จ๋ค๊ณ ์ถ๊ฐ ํด์ฃผ์๊ฒ ๋ค๊ณ ๋ต๋ณ์ ์ฃผ์ฌ ( ์๋ฃ โ )
- [A+] ์ถ๊ฐ์ ์ผ๋ก [ํ๋กํ ์กฐํ] ํ์ด์ง๋ ์ ์ ์ธ๋ฑ์ค๋ก๋ง ์กฐํํ ์ ์๋๋ก ํด๋ ๊ด์ฐฎ์ ๊ฑฐ ๊ฐ์์ ์ถํ์ ํ์ด์ง ์ ์ํ ๋๋ ์ด ๋ฐฉ์์ผ๋ก ์งํํ๋๋ก ํจ.
-
[Q] api๋ฅผ ๊ณ์ ์๋ํ๊ณ ์ถ์๋ฐ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋๋๊ณ ์๊ฐ์ ์ฐ๊ฒ ๋จ. ์๊ณ ๋ณด๋ ์๋ฒ๊ฐ ๋ซํ์์ด์ ๋ฐ์ํ ๋ฌธ์ . ์๋ฒ์ ๋ถํธํจ์ ๋ง์๋๋ฆผ.
- [A] aws๋ก ์งํํ๋ฉด ์๋ฌ๋ ๋ง์ด ๋๊ณ ๋ถ์์ ํ์ฌ ๋น๋ถ๊ฐ์ ์ด๋ ๊ฒ ์งํํ ๊ฒ ๊ฐ๋ค๋ ๋ต๋ณ์ ๋ค์
- [Q] ์๋ฒ๊ฐ ๋ซํ์์ผ๋ฉด ๊ฒช๋ ๋ถํธํจ์ ๋ค์ ๋ง์ ๋๋ฆฌ๊ณ ์์
์๊ฐ๋(PM 2:00 ~ AM 3:00) ์ฌ์ด์ ์๋ฒ๋ฅผ ์ฅ์๊ฐ ๋ซ์ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์๋ ค์ฃผ์ค ๊ฒ์ ์์ฒญํจ.
- [A] ์๋ฒ๊ฐ ์ด๋ฆฌ๊ณ ๋ซํ๋ ๊ฒ์ ์ฌ๋๊ณผ ๋ช ์ธ์์ ์๋ ค์ฃผ์๊ธฐ๋ก ํจ >> ์์ฃผ์์ฃผ ์ํํ ์ํต์ผ๋ก ๋ฌธ์ ์์ด ์งํ ์ค
- [Q] ์๋ฒ๊ฐ ๋ซํ์์ผ๋ฉด ๊ฒช๋ ๋ถํธํจ์ ๋ค์ ๋ง์ ๋๋ฆฌ๊ณ ์์
์๊ฐ๋(PM 2:00 ~ AM 3:00) ์ฌ์ด์ ์๋ฒ๋ฅผ ์ฅ์๊ฐ ๋ซ์ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์๋ ค์ฃผ์ค ๊ฒ์ ์์ฒญํจ.
- [A] aws๋ก ์งํํ๋ฉด ์๋ฌ๋ ๋ง์ด ๋๊ณ ๋ถ์์ ํ์ฌ ๋น๋ถ๊ฐ์ ์ด๋ ๊ฒ ์งํํ ๊ฒ ๊ฐ๋ค๋ ๋ต๋ณ์ ๋ค์
๊ฑด๊ฐ Issue,,
- ์ํ ๋ฑ๋ก ๊ตฌํ ( 70% โ)
Contextual menu,popupMenu ?, Custom Dialog โผ >> ๋ค์ด์ผ๋ก๊ทธ ๋ฆฌ์คํธ๋ก ๋ณด์ฌ์ฃผ๊ธฐ
- ์นดํ ๊ณ ๋ฆฌ ๊ตฌํ ( 80% โ)
- ์ฑ ์ค์ ๊ตฌํ ( 100% โ)
- ์๋ ๋ก๊ทธ์ธ ( 100% โ)
๊ผญ ํด์ผํ๋ ์ผ: ์ด๋ฒ ์ฃผ๊น์ง ์์ ํ๋ ๊ฒ๋ค ๊ฒํ ํ๋ฉฐ ๋ํ ์ผ ๋ ๋ง์ด ์ ๊ฒฝ์จ๋ณด๊ธฐ + ๋ฏธ๋ฌ๋ก์ด๋ ์ฌ์ด์ฆ ๊ณ ๋ คํ๊ธฐ
- ์ํ ๋ฑ๋ก ๊ตฌํ ( 100% โ)
- ๋์ ๋น๊ทผ ํ์ด์ง API path Variable ๊ฐ ๋๊ฒจ์ฃผ๊ธฐ // ๋์ ๋น๊ทผ ํ์ด์ง API ์๋ฃ ( 100% โ)
- ์ ์ฒด ๊ฒ์๊ธ ์กฐํ API >> ์๋ฒ ์ด๋ฆฌ๋ฉด ํ์ธ..
๊ผญ ํด์ผํ๋ ์ผ: ์ด๋ฒ ์ฃผ๊น์ง ์์ ํ๋ ๊ฒ๋ค ๊ฒํ ํ๋ฉฐ ๋ํ ์ผ ๋ ๋ง์ด ์ ๊ฒฝ์จ๋ณด๊ธฐ
-
[Q] ์ด์ ํ๋ฃจ์ข ์ผ + ์ค๋ ์ ์ฌ๊น์ง ์๋ฒ๊ฐ ๋ซํ์์ด์ api ์์ ์ ๋ชปํ๋ค. api๋ฅผ ์ฎ์ด๋ ํ์ด์ง๋ ์๋ฒ๊ฐ ๋ซํ๋ฉด ๋ค์ด๊ฐ ์ ์์ด์ ์ด ์ํ๋ก๋ ๋์ด์ ์์ ์ด ๋ถ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ์ ๋ค์ ํ๋ฒ ์์ฒญ ๋๋ฆผ
- [A] ์ด์ ๋ ์ด์ด๋๊ณ ๋๊ฐ์ ์ค ์์๋ค๊ณ ํ์ จ๋ค. ์ค๋๋ ์ด์ด๋์ผ์ ์ค ์์ จ๋ค ํ๋ค..! ์์ผ๋ก๋ ๊ณ์ ์๋ฒ ์ ์งํ์ค๊ฑฐ๋ผ๋ ๋ต๋ณ ๋ฐ์ !
-
์ด๋ฏธ์ง๋ค ๋ฅ๊ทผ ๋ชจ์๋ฆฌ๋ก ๋ง๋ค๊ธฐ
-
์ํ ๋ํ ์ผ ํ๋ฉด API ( 90% โ)
- ์ด๋ฏธ์ง๋ ํ๋์ฉ ์ค๋๋ฐ, vp2์ ์ด๋ฏธ์ง๋ฅผ ์ด๋ป๊ฒ ๋ฃ์ด์ค์ผ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ ( ์๋ฃ โ )
- ์ ์ ์จ๋๋ง๋ค temIcon ๋ฐ๊พธ๊ธฐ // ์์ง
-
์ ์ฒด ๊ฒ์๊ธ ์กฐํ API ( 100% โ)
- [Q] ~ ์ด์ , ~ ๋ถ์ ํ์์คํฌํ๋ก ๊ณ์ฐ๋ ์ํ์ธ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ์ค ์ ์๋์ง ์ฌ์ญค๋ด //ํด๋ผ์์๋ ์ฒ๋ฆฌํ ์ ์์ผ๋ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฒ ๋ง๋๊ฑฐ ๊ฐ์์
- [A] ์์ ๋ค ๋ง์น์๊ณ ์๊ฐ๋์ค ๋ ํด์ฃผ์ ๋ค๊ณ ๋ง์ํด์ฃผ์ฌ. ์ฐ์ ์์ฑ๋ ๋ ์ง ๋ฃ์ด๋ //์๊ฐ๋จ์ผ๋ฉด ๋ด๊ฐ ํด๋ณด๊ธฐ
- price ๊ฐ int๋ก ๋์ด์ค๋๊ฑฐ 3๊ธ์๋ง๋ค ์ผํ ์ฐ์ด์ฃผ๊ธฐ >> DecimalFormat ์ฌ์ฉํด์ ๊ตฌํ
- [Q] ~ ์ด์ , ~ ๋ถ์ ํ์์คํฌํ๋ก ๊ณ์ฐ๋ ์ํ์ธ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ์ค ์ ์๋์ง ์ฌ์ญค๋ด //ํด๋ผ์์๋ ์ฒ๋ฆฌํ ์ ์์ผ๋ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฒ ๋ง๋๊ฑฐ ๊ฐ์์
-
๋ก๋ฉ dialog ๋ง๋ค๊ธฐ
- progress bar๋ฅผ ์ฌ์ฉํด์ ๋ง๋ค์ด์ผ ํ ๊ฒ ๊ฐ์๋ฐ, ์ผ๋จ SpinKitView๋ก ์์๊ณผ ๋ชจ์ ๋ฐ๊ฟ์ ์ ์ฉํด๋์
-
ํ๋งค๊ธ ์์ฑ API ( 70% โ)
- ์ฎ๋๊ฑด ์ฑ๊ณตํ๋๋ฐ ์ฑ๊ณต ํ ํ๋ฉด์ ๋์ฐ๋๊ฑธ ๋ชปํจ ( ์๋ฒ์์ ์์ ํ ์๋ฃ โ )
-
๊ฒ์๊ธ ์ ๋ชฉ์ผ๋ก ๊ฒ์ API ( 100% โ)
-
ํน์ ์ ์ ๋๋ค์์ผ๋ก ๊ฒ์ API ( 100% โ)
-
๊ฒ์ํ๋ฉด ๊ตฌํ ( 80% โ)
- ๊ตฌํํ๋๊ฒ ๊ต์ฅํ ์ด๋ ค์ ๋ค. tab์ ํญ๋ชฉ์ ์ ํํ์ฌ ๋ฉ์ธ์ ์๋ edt ํ๋๋ก ๊ฒ์ํ๋๋ฐ ์ด๊ฑธ ํ๋๊ทธ๋จผํธ์ ์ด๋ป๊ฒ ๋๊ฒจ์ฃผ๊ณ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ ์ง ๊ณ ๋ฏผ์ด ๋ง์๊ณ , ํ์ธ์ ๋๋ฅด๋ฉด get์ด ์ ์ก๋๋๋ก ํ๋ ๋ฐฉ์๋ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ๋ ์ฌ๋ฆฌ๊ธฐ ํ๋ค์๋ค. ๋ํ edt ์์ ๋ํ
์ผํ ๊ธฐ๋ฅ๋ค์ด ์๋นํ ๋ง์์ ์ต๋ํ ๋๊ฐ์ด ๊ตฌํํด๋ณด๋ ค๊ณ ๋
ธ๋ ฅํ๋ค.
- ํ๋๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ค ๋, intent๋ ์กํฐ๋นํฐ๊ฐ์ ์ด๋์ด ํ์ํ๊ฑฐ ๊ฐ์์ SharedPreferences๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ฒจ์คฌ๋ค. >> Bundle๋ก ๋๊ฒจ์ฃผ๊ธฐ !
ํ๋๊ทธ๋จผํธ ๋ณ ๊ฒ์์ TabLayoutMediator์์ position == 0 ์ผ๋, position == 2 ์ผ๋, ๋ฑ๋ฑ ๋๋ ์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์๋ค.์ค์ ์ฑ์์๋ ํ๋๊ทธ๋จผํธ ๋ณ ๊ฒ์์ด ์๋ ํตํฉ๊ฒ์์ผ๋ก ์ฌ์ฉ๋๋๊ฑฐ ๊ฐ์ ์์ ํจ.- edt์๋ setOnEditorActionListener, InputMethodManager, addTextChangedListener ๋ฑ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ , ํ๊ตญ์ด ์ํ์ด ๊ฐ๋ฅํ๋๋ก ์ค์ ํด์ฃผ์๋ค.
- edt์์ ํค๋ณด๋์ ํ์ธ์ ๋๋ ์ ๋, ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ก ๋จ๋๋ก ํ๋ ๋ฐฉ๋ฒ ๋ชจ๋ฅด๊ฒ ์ >> Bundle ์ฌ์ฉํ๊ธฐ !
- ๊ตฌํํ๋๊ฒ ๊ต์ฅํ ์ด๋ ค์ ๋ค. tab์ ํญ๋ชฉ์ ์ ํํ์ฌ ๋ฉ์ธ์ ์๋ edt ํ๋๋ก ๊ฒ์ํ๋๋ฐ ์ด๊ฑธ ํ๋๊ทธ๋จผํธ์ ์ด๋ป๊ฒ ๋๊ฒจ์ฃผ๊ณ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ ์ง ๊ณ ๋ฏผ์ด ๋ง์๊ณ , ํ์ธ์ ๋๋ฅด๋ฉด get์ด ์ ์ก๋๋๋ก ํ๋ ๋ฐฉ์๋ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ๋ ์ฌ๋ฆฌ๊ธฐ ํ๋ค์๋ค. ๋ํ edt ์์ ๋ํ
์ผํ ๊ธฐ๋ฅ๋ค์ด ์๋นํ ๋ง์์ ์ต๋ํ ๋๊ฐ์ด ๊ตฌํํด๋ณด๋ ค๊ณ ๋
ธ๋ ฅํ๋ค.
-
ํ๋งค๊ธ ์์ฑ API ( 70% โ) >> ( 100% โ)
- Activity -> Fragment ๋ฐ์ดํฐ ์ ๋ฌ์๋ intent๊ฐ ์๋ Bundle์ ์ฌ์ฉํ๋๊ฑฐ๋ผ๋๋ฐ ์๊พธ null์๋ฌ ๋ธ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์์ง๋ ๋ฏ //์๊ฐ ๋๋ฌด ์ค๋์ >>์ด๊ฑฐ ํ์์์์ ! ์๋ฒ ๋ฌธ์
- [Q] ์ ์ฒด ๊ฒ์๊ธ์ ์กฐํํ๋ฉด ๋๋ฏธ๋ฐ์ดํฐ๋ง ํ์๋๊ณ ํ๋งค ๋ฑ๋กํ ๊ฒ์๋ฌผ์ ์๋ฌ๋ค. ํน์ ๋ฐ๋ก ๊ด๋ฆฌํ์๋์ง ์ฌ์ญค๋ด
- [A] ๋ฐ๋ก ๊ด๋ฆฌํ์ง ์๊ณ , ๋ฑ๋กํ ์ ์ ์ํ๊ฐ normal์ด๊ณ , ์ ์ ๊ฐ ๋ฑ๋กํ ์ง์ญ ์์ด๋(regionId)๊ฐ ์ ์ ์์ด๋(sellerId)์ ๋ง๊ฒ ๋ฑ๋กํด์ผ ๋์ ๊ทธ๋ฐ ๊ฒ ๊ฐ์. ๋๋ฏธ ๋ฐ์ดํฐ์๋ regionId๋ฅผ ์ถ๊ฐํ ํ
๋ ๋ค์ ์๋ํด๋ณด๋ผ๊ณ ๋ต๋ณ์ฃผ์ฌ --> ์ง์ ๋ค์ ํ์ธํด๋ดค๋๋ฐ ์ ๋๋ค๊ณ ํ์ฌ ! post ํ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ ๊ฑด ํ์ธ๋๊ธฐ ๋๋ฌธ์ ๋ถ๋ฌ์ค๋ ๊ฒ์์ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ ๊ฐ๋ค๊ณ ๋ต๋ณ์ฃผ์ฌ --> ์์ ํ ์๋ ค์ฃผ์ ๋ค๊ณ ํจ!!
- ์ฐ์ ๋์ค ์์๋ก ๋ฏธ๋ฃจ๊ณ api๊ฐ ์์ ๋ ํ ์์ ํด๋ณด๊ธฐ
- ์์ ํ ํ ์คํธ ํ์ ๋ ์ฝ๋ ์์ ์์ด ์ ์์ ์ผ๋ก ์ ๋ก๋ ๋จ! ( ์๋ฃ โ )
- [A] ๋ฐ๋ก ๊ด๋ฆฌํ์ง ์๊ณ , ๋ฑ๋กํ ์ ์ ์ํ๊ฐ normal์ด๊ณ , ์ ์ ๊ฐ ๋ฑ๋กํ ์ง์ญ ์์ด๋(regionId)๊ฐ ์ ์ ์์ด๋(sellerId)์ ๋ง๊ฒ ๋ฑ๋กํด์ผ ๋์ ๊ทธ๋ฐ ๊ฒ ๊ฐ์. ๋๋ฏธ ๋ฐ์ดํฐ์๋ regionId๋ฅผ ์ถ๊ฐํ ํ
๋ ๋ค์ ์๋ํด๋ณด๋ผ๊ณ ๋ต๋ณ์ฃผ์ฌ --> ์ง์ ๋ค์ ํ์ธํด๋ดค๋๋ฐ ์ ๋๋ค๊ณ ํ์ฌ ! post ํ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ ๊ฑด ํ์ธ๋๊ธฐ ๋๋ฌธ์ ๋ถ๋ฌ์ค๋ ๊ฒ์์ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ ๊ฐ๋ค๊ณ ๋ต๋ณ์ฃผ์ฌ --> ์์ ํ ์๋ ค์ฃผ์ ๋ค๊ณ ํจ!!
-
์ ์ฒด์ ์ธ ๋ํ ์ผ ์์
- ์คํฌ๋กค๋๋ฉด ์๋จ๋ฐ ๋ณํ๋๊ฑฐ -> ๋ฆฌ์ค๋ ํตํด์ ์ฒ์ ์์ํ ๋ ๋๊ฐ์ง๋ก ๋ง๋ค๊ณ visible ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก ํด๋ ๋จ
[๊ฐ๋ฐ ์ฐ์ ์์]- ์คํฌ๋กค๋ง ์กํฐ๋นํฐ >> ์๋ก ์กํฐ๋นํฐ ํ์ ์คํฌ๋กค๋ง ์กํฐ๋นํฐ ๊ตฌ์กฐ ๋ฏ์ด๋ณด๊ธฐ ( ์๋ฃ โ )
- ํ์ด์ด๋ฒ ์ด์ค ์ด๋ฏธ์ง >> ์ค๊ณ ๊ฒ์๊ธ ์ถ๊ฐ ์์ //ํ์ด์ด๋ฒ ์ด์ค ( ์๋ฃ โ )
- ํ๋ฉด ๊ฐ์, api ๊ฐ์ ๋๋ ค๋ณด๊ธฐ
- ํ์ด์ด๋ฒ ์ด์ค ์ฐ๋ ( ์๋ฃ โ )
- ์คํฌ๋กค ๋ ์ด์์ ๋ฏ์ด๋ณด๊ธฐ ( ์๋ฃ โ )
ํผ๋๋ฐฑ ๋ด์ฉ ๋ฐ์ํ๊ธฐ
-
๊ฐค๋ฌ๋ฆฌ์์ ๋ถ๋ฌ์จ ์ฌ์ง firestore์ ์ ์ฅํ๊ธฐ ( ์๋ฃ โ )
-
์ ์ ํ๋กํ ๋ณ๊ฒฝ API ( 100% โ)
-
ํ๋งค๊ธ ์์ API ์ฐ๋ ( 100% โ)
- [Q] ์ฌ์ง ๋ณ๊ฒฝ์ ์๋ ์๋๋์ง?
- [A] ์ฌ์ง ๋ณ๊ฒฝ๋ฐฉ๋ฒ์ ์ฟผ๋ฆฌ๋ฌธ์ด ๊ผฌ์ฌ์ ์๋๋คํ์ฌ
- [Q] ์ฌ์ง ๋ณ๊ฒฝ์ ์๋ ์๋๋์ง?
-
ํ๋งค๊ธ ์ญ์ API ์ฐ๋ ( 100% โ) >> ์ด์ง๋ง ์๋ฒ์์ ๊ฒ์๊ธ๋ง๋ค status ๊ฐ์ ์ฃผ์ง ์์ ์ญ์ ๋ ์ํ์ธ ๊ฒ์๋ฌผ๋ ์ฑ ์์์ ๋ณด์ด๊ฒ ๋๋ค.
- [Q] ์๋ฒ์ ๊ฒ์๊ธ๋ง๋ค status ๊ฐ์ response๋ก ์ฃผ์๊ธธ ์์ฒญํจ
- [A] ์ํ ๊ด๋ฆฌ๋ ์๋ฒ์์ ํ๊ณ ์๊ณ , deleted ๋ ์ํ์ ํ์ ์๋๋๋ก ํด๋์์
- [Q] ๊ทธ๋๋ ํ์๋๋ค. >> ์์ ํด์ฃผ์ฌ ! ( ์๋ฃ โ )
- [A] ์ํ ๊ด๋ฆฌ๋ ์๋ฒ์์ ํ๊ณ ์๊ณ , deleted ๋ ์ํ์ ํ์ ์๋๋๋ก ํด๋์์
- [Q] ์๋ฒ์ ๊ฒ์๊ธ๋ง๋ค status ๊ฐ์ response๋ก ์ฃผ์๊ธธ ์์ฒญํจ
-
[Q] PATCH, DELETE๊ฐ ์๋ผ์ ใ
- [A] ๋ค์ ํฌํธ ๋ฒํธ ๋ฃ์ด์ค์ผ ํจ. get์์๋ ํฌํธ ๋ฒํธ ์ ๋ฃ์ด๋ ์๋ํ๋๋ฐ patch, post, delete๋ ๋ญ๊ฐ ์๋ชป๋ ๊ฒ ๊ฐ๋ค. ๊ณ ์น๋ ค๋ฉด ์๋ฒ๋ฅผ ๊ฐ์์ผ ํด์ ์๋ฒ ๊ฐ๋ฐํ์ฅ๊ณผ ์์ํด์ ๊ทธ๋๋ก ๊ฐ๊ธฐ๋ก ํ์! ์์ฑํ๋ค ๋ณด๋ฉด ํท๊ฐ๋ฆฌ์ค ํ ๋ ๊ทธ๋ฅ ํฌํธ๋ฒํธ ๋ถ์ฌ์ ์์ ํ๊ธธ ๊ถ๊ณ >> ํฌํธ๋ฒํธ ๋ฃ๊ธฐ๋ก ! ( ์์ ์๋ฃ โ )
-
์ํ ํ๋งค๊ธ ์กฐํ์ ์ฆ๊ฐ API ( 100% โ)
-
[Q] ์กฐํ์๋ ์์ธ์กฐํ์ response์ ํฌํจ๋์์ง ์์์ ํฌํจ๋์ด์ผํ๋ ์ด์ ์ ํจ๊ป ์์ฒญ ๋๋ฆผ
- [A] response์ viewCount๋ก ํ์ํด์ฃผ์๊ธฐ๋ก ํจ ! ( ์์ ์๋ฃ โ )
-
์นดํ ๊ณ ๋ฆฌ ์กฐํ API ์ฐ๋ ( 100% โ)
-
๋๋ค๋งค๋ฌผ ์กฐํ API ( 100% โ)
-
ํ๋งค๋ด์ญ ๋ ์ด์์ ์์ฑํ๊ธฐ ( ์๋ฃ โ )
-
ํ๋งค์ค ์กฐํ API ( 100% โ)
-
์ํ ๊ฒ์๊ธ ๊ด์ฌ ์ค์ API ( 100% โ)
-
์ํ ๊ฒ์๊ธ ๊ด์ฌ ํด์ API ( 100% โ) >> tag ๊ฐ์ผ๋ก ๋์ด ์ํ ๋ณ๊ฒฝ
- Non-body HTTP method cannot contain @Body. ์๋ฌ ๋ฐ์ >> ( ์๋ฃ โ )
-
ํ๋งค ๊ฒ์๊ธ ์ํ ๋ณ๊ฒฝ API ( 80% โ)
- [Q] ํ๋งค์ค ์กฐํ API์ productId๊ฐ response ๋์ด์ผ ์ด API๋ฅผ ์ฎ์ ์ ์์ด์ ์์ฒญ๋๋ฆผ
๋ฏธ๋ค๋๋ ๊ฒ๋ค ํด๊ฒฐํด๋๊ธฐ
- vp2์ ์ด๋ฏธ์ง ์ฐ๊ฒฐ
- ํ๋กํ ๋ณ๊ฒฝ ์ ์๋ฌ๊ฐ ๋จ๊ณ ์ฑ์ด ๊บผ์ง๋ ๋ฌธ์ ํด๊ฒฐ
- ๊ฐค๋ฌ๋ฆฌ์์ ์ด๋ฏธ์ง ๊ฐ์ ธ์์ผ ํ๋ ํ์ด์ง์ ํ์ด์ด์คํ ์ด ๋ค ์ฐ๊ฒฐํด์ฃผ๊ธฐ
- ํ๋งคํ๊ธฐ/์์ ํ๊ธฐ ๋ ์ด์์ ๋ํ ์ผ ์์ ํ๊ธฐ
- ๋ฐํ ๋ค๋น๊ฒ์ด์ ๋ํ ์ผ
- ๊ฒ์ํ์ด์ง์์ ์กํฐ๋นํฐ > ํ๋๊ทธ๋จผํธ๋ก ๋ฒ๋ค์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋๊ฒจ์ฃผ๊ณ ์ถ์๋ฐ ์๊พธ ViewPager2 does not support direct child views ์๋ฌ ๋ฐ์
- tablayout์ ๋ทฐํ์ด์ง ์์ ๋ฃ์ด์ ์๊ธฐ๋ ๋ฌธ์ & ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก vp2์ ๋ฃ์ด์ค์ ์๊ธฐ๋ ๋ฌธ์ ๋ผ๊ณ ํ๋ค. ๊ทธ๋์ vp2๋ฅผ ํ๋ ์ ๋ ์ด์์์ผ๋ก ๋ณ๊ฒฝ //๊ฐ๋จํ ํ๋ฉด์ด ์๋๋ผ๋ฉด ๋ฐ์ดํฐ ์ ๋ฌ๋ ๊ณ ๋ ค ํด์ผ๋๋ ํ๋ ์ ๋ ์ด์์์ผ๋ก ๊ตฌ์ฑํ๋๊ฒ ๋ง๋ ๊ฒ ๊ฐ๋ค.
- 4์ผ ๊ฑธ์ณ ๋๋์ด ์ฑ๊ณต!!!!!!!!!!!!!!!!!!!!!!!!!
- ์ ํ ๊ฒ์๋ ๋๊ณ ์ ์ ๊ฒ์๋ ๋๋ค !
- API ์ฎ๊ธฐ ์์ฑ๋ ๋์ด๊ธฐ
- ํ๋งค ๊ฒ์๊ธ ์ํ ๋ณ๊ฒฝ API ( 80% โ) >> ํฌ๊ธฐ ! ์๋: adapter์ ์ฐ๊ฒฐํด๋ด >> productId๊ฐ ์๋ฐ์์ง
- userIdx๋ ํด์ํ๊ทธ ๊ฐ ์ฐ๊ฒฐํ๊ธฐ
- ๋๋ค์ํ ๋ ์ด์์ ๋ง๋ค๊ธฐ
- ๋๋ค์ํ ์กฐํํ๊ธฐ API ( 100% โ)
- ๋๊ธ ์์ ๋๋ ์์ ๋ ๊ตฌ๋ถํ๊ธฐ
- ํํธ ๋๋ฅด๋ฉด ์ปค์คํ ํ ์คํธ
- ์คํฌ๋กค ๋ ์ด์์ ๊ธฐ๋ฅ ๋ฏ์ด๋ณธ๊ฑธ ๊ธฐ๋ฐ์ผ๋ก ๋ํ ์ผ ํ๋ฉด ์๋จ๋ฐ ์คํฌ๋กค ์ ๋ฐฐ๊ฒฝ ๋ณ๊ฒฝ ๋๋๋ก ์ ์ฉ
- ๋๋ค์ํ ๊ธ์ฐ๊ธฐ ๋ ์ด์์
- [๋ณ๊ฒฝ ๊ตฌํ] ์๊ฐ ๊ด๊ณ์ ์นดํ ๊ณ ๋ฆฌ ์ ํ ๋ฐฉ์์ dialog ๋ฐฉ์์ผ๋ก ๊ตฌํ
- ๋๋ค์ํ ๊ธ์ฐ๊ธฐ API ( 100% โ)
- ์จ๋์ ๋ฐ๋ผ์ ์ ํ ๋ํ ์ผ ํ๋ฉด์ ์จ๋ ๋ฐ ๊ธฐํ ์์ ๋ฐ๊ฟ์ฃผ๊ธฐ
๋ง์ง๋ง ๋
- ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
ํตํฉ API ( 100% โ)
- 2์๊ฐ์ ์๋ฒ์ ์ ๋ฐ์ดํธ๋ ,, api,, ์ ๋ฐ์ดํธ ํ ์ด api๋ฅผ ์ฎ์ง ์์ผ๋ฉด ๋๋จธ์ง ๊ธฐ๋ฅ๋ค์ด ์๋ํ์ง ์๋๋ค๋๊ฑธ 1์๊ฐ ์ ์ ๋ฐํ๋๋ค,,,..
- ๊ธฐ์กด ํ์๊ฐ์ API๋ฅผ ์ด API๋ก ๋ณ๊ฒฝ ๊ตฌํํจ..
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ํ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์
- ๋ฌธ์ ๐คฆ๐ปโโ | ์์ดํฐ๊ณผ ์๋๋ก์ด๋์ ๋์์ธ์ด ๋ฌ๋ผ ๋ ์ด์์ ๊ตฌ์ฑ์ ์ด๋ ค์์ ๊ฒช์.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ์๋๋ก์ด๋ ๊ณต๊ธฐ๊ณ๋ฅผ ์ด์ฉํ๊ธฐ๋ก ํจ !
2. ํ์๊ฐ์ ์ ์ค์ ๋ฐ์์ค๋ ๋ฐ์ดํฐ์ ์๋ฒ api์์ ์ ๊ณตํด์ฃผ๋ ๋ฐ์ดํฐ ์ฐจ์ด
- ๋ฌธ์ ๐คฆ๐ปโโ | ์ค์ ๋น๊ทผ๋ง์ผ ํ์๊ฐ์ ์์๋ ๋ฒํธ๋ง ์ ๋ ฅ๋ฐ์ ํ์๊ฐ์ /๋ก๊ทธ์ธ์ ์งํํ์ง๋ง, ํ์ ์ ์งํํ๋ ์๋ฒ ์ธก์์ ์ ๊ณตํด์ฃผ๋ api์์๋ ์์ด๋/ํจ์ค์๋/ํ๋กํ ์ฌ์ง์ ์ ๊ณตํด์ค๋ค. ๋ ์ด์์ ๊ตฌ์ฑ ์ ๊ธฐ์กด ๋ฒํธ๋ง ๋ฐ๋ ๋ ์ด์์์ผ๋ก ๊ทธ๋๋ก ์งํํด์ผ ํ ์ง ์๋๋ฉด ์๋ฒ api์์ ์ฃผ๋ ์ ๋ณด๋๋ก ๊ตฌ์ฑํด์ผ ํ ์ง ์ด๋ ค์์ ๊ฒช์.
- ์์ธ ๐๐ปโโ๏ธ | ์๋ฒ ์ธก ๊ฐ๋ฐํ์ฅ๋๊ป์ ๋ฒํธ ๋ฌธ์ ์ธ์ฆ์ด ์ด๋ ค์ ์ผ๋จ ์์ด๋/ํจ์ค์๋๋ฅผ ๋ฐ์ jwt๋ก ๋ก๊ทธ์ธํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ผ๊ณ ๋ง์ํ์ จ์.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ์๋ฒ ๊ฐ๋ฐ์ + ์๋ฒ์ธก ๊ฐ๋ฐํ์ฅ๋์ ์๊ฒฌ์ ๋ฐ๋ผ ์์ด๋/ํจ์ค์๋์ ๋ฐ์์ค๋ ๋ ์ด์์์ผ๋ก ์ฌ๊ตฌ์ฑ ํจ !
๐จ ์๋ ๋ฐฉ์์ผ๋ก ์งํ ํ๊ธฐ๋ก ๋ค์ ๋ณ๊ฒฝ๋จ ! (๊ฐ๋ฐ์ผ์ง 2021๋
08์ 17์ผ ์ฐธ๊ณ )
- ๋ฌธ์ ๐คฆ๐ปโโ | ํ์๊ฐ์ API์ ๋ฐ๋ ๊ฐ์ด 4๊ฐ (id/pw/profileImage/nickname)์ธ๋ฐ, A ์กํฐ๋นํฐ์์ id/pw ๊ฐ์ ๋ฐ๊ณ B ๋์ด๊ฐ ํ, B ์กํฐ๋นํฐ์์ profileImage/nickname์ ์ ๋ ฅ๋ฐ๊ณ ์ถ์๋ฐ ๋ฐฉ๋ฒ์ ์ฐพ๋๋ฐ ์ด๋ ค์์ ๊ฒช์.
- ๋ป์ง ๐ ๐ปโโ๏ธ | A ์กํฐ๋นํฐ์์ id/pw ๊ฐ์ ๋ฐ๊ณ profileImage/nickname ๊ฐ์ ์์๋ก ์ ๋ ฅํ์ฌ ๋ค์์ผ๋ก ๋์ด๊ฐ๋ฉด ์ ์ฅ๋ id/pw ๊ฐ์ ๋ถ๋ฌ์ค๊ณ ๋ค์ ์์ฒญ์ ๋ณด๋ธ๋ค. >> ์์ฒญ์ด 2๋ฒ ๋ฐ์ํจ (X)
- ์์ธ ๐๐ปโโ๏ธ | ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ๋ ๊ฒ ๊ฐ๋ค !
- ํด๊ฒฐ ๐๐ปโโ๏ธ | A ์กํฐ๋นํฐ์์ intent๋ก id/pw๊ฐ์ ๋๊ฒจ์ฃผ๊ณ B ์กํฐ๋นํฐ์์ ์ต์ข ํ์๊ฐ์ ์ ์ฑ๊ณต์ํจ๋ค. >> ์๋ฒ ์ธก์์ ์ ์ด์ค vaildation ์ฒ๋ฆฌ๋ ์ด๋ป๊ฒ ๋๋๊ฑด์ง ์ถ์์ง๋ง ํด๋ผ์์๋ ํ์๊ฐ์ ์ด ์๋๋ ๋ก์ง์ด ๋ง๋ค์ด ์ ์ฉํด์ผ ๋๊ธฐ ๋๋ฌธ์ ์๊ด์์ ๊ฒ ๊ฐ๋ค.
- ๋ฌธ์ ๐คฆ๐ปโโ | Activity(RecyclerView)์ Adapter๋ฅผ ์ฐ๊ฒฐํด์ค ๋, LoginLocationActivity.kt์์ ์์ฑํ๋ ๊ฒ์ฒ๋ผ this๋ฅผ context์ ๋๊ฒจ์ฃผ๋๋ฐ, Fragment์์๋ ๋์ผํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์๋๋ thist์ ๋นจ๊ฐ ์ค์ด ๋ฐ์ํ์๋ค.
[Activity] LoginLocationActivity.kt
loginLocationAdapter = LoginLocationAdapter(this, locationArrayList)
binding.loginLocationRvAround.adapter = loginLocationAdapter
- ๋ป์ง ๐ ๐ปโโ๏ธ | [1] this๋ฅผ ์ด๋ป๊ฒ๋ ์ฌ์ฉํ๊ธฐ ์ํด @๋ฅผ ์ฌ์ฉํด๋ณด์๋ค. [2] ์๋ฐ์์ ์ฒ๋ผ getActivity๋ฅผ ์ฌ์ฉํด๋ณด์๋ค. [3] Activity()๋ฅผ ์ฌ์ฉํด๋ณด์๋ค.
- ์์ธ ๐๐ปโโ๏ธ | ์ด ๋ถ๋ถ์ Activity์ ์์ฑํ ๊ฒฝ์ฐ getActivity()๋ฅผ this๋ก ์์ฑํ ์ ์๋๋ฐ, ์ด ํด๋์ค๋ Fragment๋ฅผ ์์๋ฐ์ผ๋ฏ๋ก ํด๋น Fragment๋ฅผ ๊ด๋ฆฌํ๋ Activity๋ฅผ ๋ฆฌํดํ๋ ํจ์(getActivity())๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ผ ํ๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ์ฝํ๋ฆฐ์ ๊ฒฝ์ฐ Activity๋ฅผ ์ด์ฉํ์ฌ ๋ถ๋ชจ ์กํฐ๋นํฐ์ context ๊ฐ์ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์๋ค. null ๊ฐ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ณด์ฅํ๋ ค๋ฉด requireActivity() ๋ฅผ ์ฌ์ฉํด์ผํ๋ฏ๋ก, requireActivity() ์ฌ์ฉ์ด ๊ถ์ฅ๋๋ค๊ณ ํ๋ค. (requireContext()๋ ํด๋ดค๋๋ฐ ๋๋ค!) //DividerItemDecoration์์ this ๊ฐ์๋ ์ฌ์ฉํ์๋ค.
[Fragment] HomeFragment.kt
homeAdapter = HomeAdapter(requireActivity(), productArrayList)
binding.homeRv.adapter = homeAdapter
- ๋ฌธ์ ๐คฆ๐ปโโ | Floating Action Button์ Icon Color๊ฐ ๋ณ๊ฒฝ๋์ง ์๊ณ ๊ฒ์ ์์ผ๋ก ์ ์ฉ๋์๋ค.
- ์์ธ ๐๐ปโโ๏ธ | ์๋์์ฑ์์๋ android๋ก ํด์ฃผ๋๋ฐ ์ ์ด๋ฌ๋์ง ๋ชจ๋ฅด๊ฒ ์ //v23 ์ดํ ์ค๊ณ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ app ์ด๋ผ๊ณ ํ๋ค.
- ๋ป์ง ๐ ๐ปโโ๏ธ | [1] android:Tint (x)
- ํด๊ฒฐ ๐๐ปโโ๏ธ | app:Tint="@color/white"๋ก ํด๊ฒฐ !
- ๋ฌธ์ ๐คฆ๐ปโโ | Floating Action Button๋ฅผ ๋๋ฅด๋ฉด ๋ฐฐ๊ฒฝ์ด ํฌ๋ช ํ ๊ฒ์ ์์ด ๋๋๋ก ํ๊ณ ์ถ์ด์ View๋ฅผ ๋ฃ์ด์คฌ๋๋ฐ, ์ ์ฒด๋ฅผ ๋ฎ๋๊ฒ ์๋๋ผ ์ด๋ฏธ์ง๋ ํ๋ฐ์ border ๊ฐ์ ๊ฑฐ๋ ํนํ ์นด๋๋ทฐ๊ฐ View๋ณด๋ค ์์ ๋์์๋ค. bringToFront()์ ํด์ฃผ๋ฉด ๊ฐ์ฅ ์์ผ๋ก ๋์จ๋ค๊ธธ๋ ํด์ฃผ์๋๋ฐ, ์นด๋๋ทฐ๋ ์ ๋ฎ์๋ค.
- ์์ธ ๐๐ปโโ๏ธ | Android์ ๋ทฐ์๋ X ๋ฐ Y ์์ฑ ์ธ์๋ Z ์์ฑ์ด ์๋ค. Z ๊ฐ์ด ๋ ๋์ ๋ทฐ๊ฐ ๋ค๋ฅธ ๋ทฐ ์์ ํ์๋๋ค๊ณ ํ๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ๊ฒ์ํด๋ ๋ชจ๋ฅด๊ฒ ์ด์ ํน์๋ํ๊ณ ์นด๋๋ทฐ์ elevation ๊ฐ์ ์กฐ์ ํด๋ณด์๋๋..
<androidx.cardview.widget.CardView
...
app:cardElevation="0dp"
... />
- ๋ฌธ์ ๐คฆ๐ปโโ | ๋ก๊ทธ์ธ api๋ฅผ ์ฎ๋ ์ค์ ํฌ์คํธ๋งจ์์ "error": "Not Found" ๊ฐ ๋ฐ์ํ๋ค.
- ์์ธ ๐๐ปโโ๏ธ | uri๋ฅผ ํ์ธํด๋ณด๋ logIn(I ๋๋ฌธ์)๋ก ์ ์ผ์ จ๋๋ฐ, ์ฌํ login์ผ๋ก post๋ฅผ ๋ณด๋ด๊ณ ์์๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง api ๋ฌธ์๋ฅผ ๋์ง์ด ๊ฐ๋ฉฐ ํด๊ฒฐ !
- ์์ธ ๐๐ปโโ๏ธ | ScrollView ์์ ์์์ ํ๋๋ง ์กด์ฌํด์ผ ํ๋๋ฐ ์ฌ๋ฌ ๊ฐ์ View๊ฐ ์์ ๊ฒฝ์ฐ ๋ฐ์
- ํด๊ฒฐ ๐๐ปโโ๏ธ | Layout์ผ๋ก ๊ฐ์ธ์ฃผ๊ธฐ
- ๋ฌธ์ ๐คฆ๐ปโโ | SwitchCompat์ on/off ํด์คฌ์ ๋ ๊ฐ๋จํ๊ฒ thumbTint์ trackTint๋ง ์์๋ง ๋ฐ๋๋๋ฐ ์ปค์คํ ํ๊ธฐ์ํด drawable์ ๋๋ฌด๋ง์ xml์ ์ถ๊ฐํด์ผ ํ๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ์ ๋ฎฌ๋ ์ดํฐ์์ ์ง์ on/off๋ฅผ ํด๋ณด๋ on์ด ๋์์ ๋ colorSecondary ์์์ผ๋ก ๋ณํ๋ ๊ฒ์ ์๊ฒ๋์ด colorSecondary ์์์ ๋ณ๊ฒฝ ํด์ฃผ์๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | int๋ก ๋๋ ์ค์ ๋๋ค์ํ์ด๋ ๋ค๋ฅด๊ฒ ๋์ค๋๋กํ๊ณ ํด๋ฆญ ์ ์กํฐ๋นํฐ ์ด๋, ๋๋จธ์ง ํ๋๊ทธ๋จผํธ ๋๋ ์ ๋๋ ์์ ์ฃผ๊ธฐ (๋๋ต์ ์ธ ์ฝ๋๊ณ ์ค์ ๋ ๋ค๋ฅด๊ฒ ์์ฑํจ)
[Activity] MainActivity.kt
private var fabState: Int = 1
when (fabState) {
1 -> { binding.fabMain.visibility = View.VISIBLE }
2 -> { binding.fabMain.setImageResource(R.drawable.pencil_icon)
binding.fabMain.visibility = View.VISIBLE }
...
5 -> { binding.fabMain.visibility = View.GONE }
}
...
binding.mainBtmNav.setOnNavigationItemSelectedListener(
BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.menu_main_btm_nav_1_on -> {
fabState = 1
...
}
...
}
- ๋ฌธ์ ๐คฆ๐ปโโ | fabState ๊ฐ์ ๋ฐํ ๋ค๋น๊ฒ์ด์ ์์ด์ฝ์ ํด๋ฆญ ํ ํ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ ํด๋ฆญํด์ผ ์ ์ฉ๋๋ค. ๊ทธ๋์ ๊ทธ๋ฅ ๋ฐ๋ก ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ๋ ์์ผ๋ก ์์ ๊ตฌํํ์๋ค.
- ๋ฌธ์ ๐คฆ๐ปโโ | ํ๋กํ ์ก์ ๋ฒํผ์ด ์๊พธ ๋ค๋ชจ๋ก ๋ณด์ด๊ณ , ์คํ๋ ์๋๊ณ ๋ฐํ ๋ค๋น๊ฒ์ด์ ๋ฐ๋ ์ฌ๋ผ์ก๋ค. view ๊ฐ์ฒด ์์ฑ์ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด์๊ณ , themes์ ์์ ํด์ฃผ๋ ๊ด์ฐฎ์์ก๋ค.
[res/themes.xml]
<item name="colorPrimary">@null</item>
<item name="colorPrimaryVariant">@null</item>
โฌ
<item name="colorPrimary">@color/mainColor</item>
<item name="colorPrimaryVariant">@color/mainColor</item>
- ๋ฌธ์ ๐คฆ๐ปโโ | ์ด๋ฐ ๋ฉ๋ด๋ ์ด๋ค ๊ฑธ ์ฌ์ฉํด์ ๋ง๋ค๊น ํ๋ฉด์ ๊ฒ์ํด๋ณด๋ค๊ฐ ์ด ์ฌ์ดํธ๋ฅผ ๋ณด์๋๋ฐ Context Menu๊ฐ ๋ด๊ฐ ์ฐพ๋ ๋ฉ๋ด ์ฌ์ ๋ง๋ค์ด ๋ณด์๋ค. ๊ทผ๋ฐ Context Menu๋ ๋กฑํด๋ฆญ์ ํด์ผ์ง ๋ฉ๋ด๊ฐ ์๊ธฐ๊ณ ๋ด๊ฐ ์ํ๋ ๋ชจ์ต์ด ์๋์๋ค. ๊ทธ๋์ Popup Menu๋ก ๋ง๋ค์ด ๋ณด์๋ค. ํด๋ฆญํ๋ฉด ๋์ค๊ธด ํ๋๋ฐ ๋ด๊ฐ ์ํ๋ ์์น์๋ ์ ๋์จ๋ค. ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ gravity ๊ฐ์ ์กฐ์ ํ ์ ์๋คํ๋๋ฐ, ์๊ฐํ ๋ชจ์ต๊ณผ ์ ํ ๋ค๋ฅธ ๋ชจ์ต์ด์๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋๋ค ..
[Activity] ProductWriteActivity.kt
fun showDialog() {
val write_cate = resources.getStringArray(R.array.write_cate)
val builder = AlertDialog.Builder(this)
builder.setItems(write_cate, DialogInterface.OnClickListener { dialog, which ->
binding.productWriteTxtCate.text = write_cate[which].toString()
}
)
var alertDialog: AlertDialog = builder.create()
alertDialog.show()
}
- ๋ฌธ์ ๐คฆ๐ปโโ | ํค๋์ ํ ํฐ ๋ฃ์ด์ฃผ๋๊ฒ ๊ฐ๋จํ๊ฑฐ ๊ฐ์๋ฐ ์๊พธ jwt ๊ฐ์ด ์๋คํด์ ์คํธ๋ ์ค ๋ฐ์๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ | ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด๋ฉฐ ์์ธ์ ์ฐพ์๋ค. ์ ๋ง ๊ฐ๋จํ๊ณ ์๊ฐ ํฌ์ํ ์ผ์ด ์๋๋ฐ ๋ฉ๋ฆฌ ๋์๊ฐ ๊ฒ ๊ฐ๋ค. ๋ค์ ๊ฐ์ ์ฝ์ง์ ํ์ง ์์์ผ ๊ฒ ๋ค!
[Interface] ProductsRetrofitInterface.kt
//ํ๋งค๋ด์ญ ์กฐํ API
@GET("/app/products/status")
fun getIng(
@Header("x-access-token") X_ACCESS_TOKEN:String,
@Query("status") status:String,
@Query("sellerId") sellerId: Int
):Call<IngResponse>
[Service] MyPageService.kt
fun tryGetMyPage(X_ACCESS_TOKEN:String ,userInfoIdx: Int){ //ํ๋งค๋ด์ญ ์กฐํ๋ผ๋ฉด status๋ ๋ฃ์ด์ฃผ๋ฉด๋จ
val myPageRetrofitInterface =
ApplicationClass.sRetrofit.create(UsersRetrofitInterface::class.java)
myPageRetrofitInterface.getMyPage(X_ACCESS_TOKEN,userInfoIdx).enqueue(object:
...
[Fragment] MyPageFragment.kt
sSharedPreferences =
requireActivity().getSharedPreferences(X_ACCESS_TOKEN, AppCompatActivity.MODE_PRIVATE)
val jwt = sSharedPreferences.getString(X_ACCESS_TOKEN, null)!!
Log.e("jwt10", jwt.toString()) // ๊ฐ์ด ์ ๋์ด์ค๋์ง ๋ก๊ทธ ์ฐ์ด๋ณด๊ธฐ ๐
sSharedPreferences =
requireActivity().getSharedPreferences("userIdx", AppCompatActivity.MODE_PRIVATE)
val userIdx = sSharedPreferences.getInt("userIdx", 0)
Log.e("userIdx2", userIdx.toString()) // ๊ฐ์ด ์ ๋์ด์ค๋์ง ๋ก๊ทธ ์ฐ์ด๋ณด๊ธฐ ๐
MyPageService(this).tryGetMyPage(jwt, userIdx)
- ํด๊ฒฐ ๐๐ปโโ๏ธ | DecimalFormat ์ฌ์ฉํ๊ธฐ >> ์ด๊ฑธ๋ก ๋ก๊ทธ์ธ ๋ ์ ํ๋ฒํธ ํฌ๋งท์ ("### #### ####")์ผ๋ก ์ค์ ํ๋ฉด ๋์ด์ฐ๊ธฐ ๋๋?
[adapter] HomeAdapter.kt
val decimalFormat = DecimalFormat("###,###")
val priceDecimalFormat =decimalFormat.format(productDataList[position].price)
holder.binding.homeItemPrice.text = "$priceDecimalFormat ์"
15. java.net.UnknownServiceException: CLEARTEXT communication to prod.carrotmarket2.shop not permitted by network security policy
- ๋ฌธ์ ๐คฆ๐ปโโ | ์๋ฒ url์ด https๊ฐ ์๋ http๋ก ๋์ด์์ด์ ์๊ธด ๋ฌธ์
- ํด๊ฒฐ ๐๐ปโโ๏ธ |
[Manifest] android:usesCleartextTraffic="true"
- ๋ฌธ์ ๐คฆ๐ปโโ | ์นดํ ๊ณ ๋ฆฌ idx๋ฅผ adapter์ ํฌ์ง์ ๋ณ๋ก ์ด๋ป๊ฒ ๋งค์นญ ์์ผ์ค์ผํ๋์ง
- ํด๊ฒฐ ๐๐ปโโ๏ธ | position๊ณผ categotyIdx๋ฅผ ๋งค์นญ์์ผ์ ์ ๋ฌ์ํจ๋ค.
[Adapter] HomeCategoryAdapter.kt holder.binding.homeCategoryItemLl.setOnClickListener { var intent = Intent(context, CategorySelectActivity::class.java) intent.putExtra("categoryName", homeCategoryDataList[position].category_name) var category:Int = position+1 Log.e("categoryAdapter", category.toString()) intent.putExtra("category",category) context.startActivity(intent) }
- ์์ธ ๐๐ปโโ๏ธ | DELETE๋ BODY ๊ฐ์ ํฌํจ ํ์ง์๋๋ค๊ณ ํ๋ค.
- ํด๊ฒฐ ๐๐ปโโ๏ธ |
[Interface] ProductsRetrofitInterface
@DELETE("/app/products/wish")
โฌ
@HTTP(method = "DELETE", path = "/app/products/wish", hasBody = true)
- ํด๊ฒฐ ๐๐ปโโ๏ธ | tag ์ฌ์ฉํ๊ธฐ
[Activity] ProductDetailActivity.kt
binding.detailImgHeart.setOnClickListener {
if (binding.detailImgHeart.tag.toString() == "true") {
binding.detailImgHeart.setImageResource(R.drawable.heart_icon)
ProductDetailService(this).tryDeleteWishProduct(requestWishDel)
binding.detailImgHeart.tag="false"
} else {
binding.detailImgHeart.setImageResource(R.drawable.heart_on_icon)
ProductDetailService(this).tryPostWishProduct(requestWish)
binding.detailImgHeart.tag="true"
}
}
19 java.lang.SecurityException: com.example.carrotmarket has no access to content://media/external/images/media/12196
- ๋ฌธ์ ๐คฆ๐ปโโ | ํผ๋ฏธ์ ๋ฌธ์ ์ธ๊ฑฐ ๊ฐ์์ ํผ๋ฏธ์ ์์ฒญ๊น์ง ๋ฃ์๋๋ฐ, ์ฝ๋๊ฐ ์ค๋ณต์ผ๋ก ์ด์ํ๊ฒ ์ ๋ ฅ๋์ ๋ํ๋ ๋ฌธ์ ์๋ค. ์์ ์ฃผ๋ ํด๊ฒฐ ๋จ
- ์ฆ์ ๐คฆ๐ปโโ | ํ๋กํ์ ์ ์ ๋ณ๊ฒฝ๋๊ณ , ํ์ด์ด์คํ ์ด์๋ ์ ์ ์ ์ฅ๋์์ผ๋ ์ฑ์ด ํ ๊ฒผ๋ค.
- Fragment Context
- Floating action button Animation
- CardView Z ์์ฑ
- Viewpager2 Indicator custom
- Timer
- TabLayout+Viewpager2
- Retrofit-Header
- ์๋๋ก์ด๋์์ JWT ์ฌ์ฉํ๊ธฐ ์ดํดํ๊ธฐ ์ข์ ๋ธ๋ก๊ทธ
- ๋ก๊ทธ์ธ
- ScrollView can host only one direct child
- PopupMenu (x)
- Context Menu (x) >> ๊ธธ๊ฒ ๋๋ ์ ๋ ๋์ค๋ ๋ฉ๋ด
- ๋ค์ด์ผ๋ก๊ทธ ๋ฆฌ์คํธ๋ก ๋ณด์ฌ์ฃผ๋ ๋ฐฉ๋ฒ (o)
- Activity, Fragment ๊ฐ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ //Bundle
- Activity -> Fragment ๋ฐ์ดํฐ ์ ๋ฌ
- ํค๋ณด๋ ์ฌ๋ผ์ฌ ๋ ๋ทฐ๋ ๊ฐ์ด ์ฌ๋ผ๊ฐ๋๋ก ํ๊ธฐ //Manifest android:windowSoftInputMode="adjustResize"
- ํ์ด์ด๋ฒ ์ด์ค์ ์ฌ์ง ์ ์ฅ ํ ๋ถ๋ฌ์ค๊ธฐ
- ์ ์ ํผ๋ฏธ์ ์์ฒญ
- ๋์ค์ ๋ณผ ํผ๋ฏธ์ ์์ฒญ
- ๋์ค์ ๋ณผ ํผ๋ฏธ์ ์์ฒญ ๋ธ๋ก๊ทธ
- ํผ๋ฏธ์
- ์๋๋ก์ด๋ firebase glide ์๋ณด์ ํ์
- DELETE์ BODY ๊ฐ ๋ฃ๊ธฐ
- ๋ฐํ ๋ค๋น๊ฒ์ด์ ์์ด์ฝ ๋ณ๊ฒฝ
- Collapsing Tool bar = ์ด๋ฏธ์ง๋ทฐ์ ์์ ๋ฃ๊ธฐ ์ ์ ๋ฆฌ๋จ