์ด๋ฆ | ์ญํ |
---|---|
์กฐ๋ช ์ฌ | ํ๋ก์ ํธ ๊ด๋ฆฌ, DB ๊ตฌ์ถ, ํ์๊ฐ์ ๋ฐ ํ๋กํ ๋ณํ ๊ตฌํ |
๋ฐ์น๊ท | DB ๊ตฌ์ถ, ์ง๋ API ์ฒ๋ฆฌ ๋ฐ ๋งคํ ๊ตฌํ |
๊น์ฉํ | UI/UX, ์ฑํ ์๋ฒ ๊ตฌํ, ๋งค์นญ ์ ์ ๊ด๋ฆฌ |
์ค์์ธ | UI/UX, ํ๋กํ ๋ณํ ์๋ฒ ํต์ ๊ตฌํ |
- ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
- ๋ก๊ทธ์ธ์ ํด๋์ ํ๋ก ์ธ์ฆ ๊ฐ๋ฅ
- ์ฑ๋ณ, ์์ผ์ ์ ๋ ฅํ์ฌ ํ์๊ฐ์ ์ ํ ์ ์์
- ์ถ์ฒ
- ์ฌ์ฉ์๊ฐ ์ ํํ ํญ๋ชฉ(๊ฑฐ๋ฆฌ, MBTI, ์ฑ๊ฒฉ, ์ทจ๋ฏธ, ํก์ฐ ์ ๋ฌด)์ ๊ธฐ์ค์ผ๋ก ์๋๋ฐฉ์ ์ถ์ฒ
- ์ฌ์ฉ์๋ ์ถ์ฒ ๋ฆฌ์คํธ์ ๋ฌ ์๋๋ฐฉ์ ์ ๋ณด๋ฅผ ๋ณด๊ณ Like/Dislike๋ฅผ ์๋๋ฐฉ์๊ฒ ๋ณด๋ผ ์ ์์
- ๋งค์นญ
- ๋์๊ฒ Like๋ฅผ ๋ณด๋ธ ์๋๋ฐฉ์ ๋ฆฌ์คํธ๊ฐ ๋ธ
- ์๋๋ฐฉ์๊ฒ LIKE ๋ฅผ ๋ณด๋ผ ๊ฒฝ์ฐ : ์๋ก ๋งค์นญ์ด ๋๋ฉด์ ์ฑํ ๋ฐฉ์ด ํ์ฑ๋๋ฉฐ 1:1 ์ฑํ ์ด ๊ฐ๋ฅ
- ์๋๋ฐฉ์๊ฒ DISLIKE ๋ฅผ ๋ณด๋ธ ๊ฒฝ์ฐ : ๋์ด์ ๋งค์นญ์ด ๋ ์ ์๊ฒ ๋จ
- ์ฑํ
- ์๋ก Like๋ฅผ ๋ณด๋ธ ์ฌ์ฉ์๋ค๋ผ๋ฆฌ ๋งค์นญ๋์ด ์ฑํ ๋ฐฉ ์์ฑ
- ์ฑํ ๋ด์ฉ์ด ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ
- ํ๋กํ
- ํ๋กํ ํธ์ง์ด ๊ฐ๋ฅํ๊ณ ํ์คํ ๋ฆฌ๋ฅผ ๋ณผ ์ ์์
-
ํ๋ก์ ํธ ์ฃผ์ ๊ฒฐ์
-
์ฃผ์ : ์ฝ๋ก๋ ๋ฐ์ด๋ฌ์ค๋ก ์ธํด ๋๋ฉด ํ๋์ด ์ด๋ ค์์ง ์ฌ๋๋ค์ ์ํ ์น๊ตฌ ์ถ์ฒ APP
-
ํ๋ก์ ํธ ์ค๋ช : ์ฌ์ฉ์์ ์ ๋ณด(์ทจ๋ฏธ, ๊ด์ฌ์ฌ, ์ฑ๊ฒฉ, ๋์ด, ํ๋ ์ง์ญ, ...)์ ํ์ฌ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ถ์ฒํ๋ค.
-
ํต์ฌ์ ์ค์ ์ฌ์ง์ ์ ๋๋ฉ์ด์ ์ฒ๋ผ ๋ณํํ ์ฌ์ง์ ํ๋กํ๋ก ์ค์ ํ๋ ๊ฒ์ด๋ค.
-
์ค์ ์ฌ์ง์ด ์๋ ์ ๋๋ฉ์ด์ ์ฌ์ง์ผ๋ก ์ ํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์ต๋ช ์ฑ์ด ๋ณด์ฅ๋๋ฉฐ, ์ฌ์ง ๋์ฉ์ ๋ํ ์ฐ๋ ค๊ฐ ์๋ค.
-
ํ๋ก์ ํธ์ ๋ฌธ์ ์ , ํด๊ฒฐ๋ฐฉ์
- ์ฌ์ง ๋์ฉ ๋ฌธ์ ํด๊ฒฐ๋ฐฉ์์ ๋ํ ๋ ผ์
-
๊ฐ๋ฐํ๊ฒฝ ๊ฒฐ์
- Android App ๊ฐ๋ฐ ํ๊ฒฝ -> Android Studio
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค -> Firebase
- ์ ๋๋ฉ์ด์ ํ -> Tensor Flow
-
Github ์์ฑ
-
๋ก๊ทธ์ธ UI
- ๊ฐ์ ๋ก๊ทธ์ธ UI ๊ตฌํ
-
๋ก๊ทธ์ธ UI ๊ตฌํ ๋ฆฌ๋ทฐ
- ๊ฐ์ ๋ก๊ทธ์ธ UI ๊ตฌํํ ๊ฒ์ ์์
-
๊ฐ๋ฐ ์์, ๋ฐฉ๋ฒ
- UI ๋ง๋๋ Tool๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๊ณ ๊ตฌํํ ์ง ํ์
-
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ์ ๊ฐ์ ํ ์ด๋ป๊ฒ Firebase ์ ์ ๋ก๋ํ ์ง ํ์
-
Firebase์ ํ์ ๋ฑ๋ก ๊ตฌํ
-
Login ์ฝ๋ ๋ฆฌ๋ทฐ
-
์ฌ์ฉ์ง ํ๋กํ ํธ์ง
- ํ๋กํ ํธ์งํ ๋ ํ์ํ ์์๊ฐ ์ด๋ค ๊ฒ์ด ์๋์ง ํ์
-
๊ธฐ๋ฅ ์ถ๊ฐ ๋ ผ์
- ์ฌ์ฉ์์ ์ฌ์ฉ์๋ฅผ ๋งค์นญํ๋ ๊ฒ์ ์ด๋ค ๊ธฐ์ค์ผ๋ก ํ๋ฉด ์ข์์ง ํ์
-
๋งค์นญ ์๋๋ฆฌ์ค ๊ตฌ์ฑ
- ์ง๋์์ ์ฌ์ฉ์๊ฐ ํด๋ฆญํ๋ฉด ์ฌ์ฉ์๊ฐ ์ค์ ํ ๊ฑฐ๋ฆฌ(์ต์ 5km)๋ด์ ์ฌ์ฉ์์ ์ผ์ ํ ๊ธฐ์ค์ผ๋ก ๋งค์นญ
- ๋งค์นญํ์ฌ ์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ณด๋ด๋ฉด ์์ฒญ๋ฐ์ ์ฌ์ฉ์๊ฐ ์๋ฝํ๋ฉด ๋ํ๋ฐฉ ์๋์ผ๋ก ์์ฑ
-
recommend, matching ์ฌ์ง ๋ณ๊ฒฝ
-
ํ์๊ฐ์ ํ ๋ก๊ทธ์ธํ์ง ์๊ณ ์ข ๋ฃ ํ ๋ค์ ์ ์ ์ ์๋์ผ๋ก ํ์๊ฐ์ ํ ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ๋ก ๋ก๊ทธ์ธ ๋๋ ์ค๋ฅ ์์
-
Animation ์ฌ์ง ๋ณํ ํ์ธ
- ์ ๋๋ฉ์ด์ ๋ณํ ๊ณผ์ ํ์ธ
- ์ฃผ๋ณ์ ๋น์ด ๋ง์ ๊ฒฝ์ฐ ๋ณํ๋ ์ฌ์ง์ด ์ฝ๊ฐ ๋ญ๊ฐ์ง๋ ๋ฌธ์ ํ์ธ
-
Database JSON ๊ตฌ์กฐ ์ค๊ณ
- ํ์์ ๋ณด, ์์น, ํ๋กํ, ์ฑํ ๋ฑ์ ๊ตฌ์กฐํ
-
Recommend ๋ฐฉ๋ฒ ๊ฒฐ์
- ๋จธ์ ๋ฌ๋์ ํ์ฉํ๊ธฐ ๋ณด๋ค ๋ฐ๊ฒฝ ๋ด์ ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์ถ์ถํ์ฌ ๊ฐ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋๋ก ๋ถ๋ฅํ๋ ๊ธฐ๋ฅ ์ถ๊ฐ
-
User request, accept ๊ธฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์๋๋ฐฉ์ผ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ๊ฑฐ๋ ์๋๋ฐฉ์๊ฒ ์์ฒญ์ ํ ๋ ํ์ํ ๋ทฐ ๊ตฌ์กฐ ๋ ผ์
-
User recommend ๊ธฐ๋ฅ
- ์ง๋ API๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์ ์ถ์ฒ์ ์ด๋ป๊ฒ ํ ์ง ๋ ผ์
-
Profile ์ธํ ๊ณผ์ ์์ mbti, personality, religion, hobby ๋ฒํผ์ ๋๋ฅด๋ฉด dialog๋ก ์ ํํ data๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์์
- MbitActivity.kt, PersonalActivity.kt, ReligionActivity.kt, HobbyActivity.kt ์ ๊ฑฐ
- mbti.xml, personality.xml, religion.xml, hobby.xml ์ ๊ฑฐ
-
ํ์๊ฐ์ ์ Realtime Database ์์ users, profile ๋ด์ name ๋์ ์ uid๋ก ๊ต์ฒด
-
Profile ์ธํ ๊ณผ์ ์์ ๋์ด ์ ๋ ฅํ๋ ๋ถ๋ถ ์ ๊ฑฐ
- ํ์ ๊ฐ์ ์ year-month-day ์ ๋ ฅํ๋ ๋ถ๋ถ์์ (ํ์ฌ year) - (์ฌ์ฉ์ year) + 1 ์ ๋์ด๋ก ์ง์
-
Profile ํ๋ฉด์์ ํ์ฌ ๋ก๊ทธ์ธ ํ ์ ๋ณด๋ฅผ Realtime Database ์์ ์ด๋ฆ, ์๊ฐ๊ธ ๋ฑ์ ๊ฐ์ ธ์์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋๋ก ์์
-
Profile ์ฌ์ง ๋ณ๊ฒฝ ๋ฒํผ์ ๋๋ฅด๋ฉด ๊ฐค๋ฌ๋ฆฌ์ ์ฌ์ง์ ๊ฐ์ ธ์์ ์ด๋ฅผ Firebase Storage ์ photo/user_uid/real.jpg ๋ก ์ ์ฅ
- Animation-Server ์์ ์ฌ์ฉ์์ request ์ฒ๋ฆฌ
- ๋ค๋ฅธ ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ์๋ public IP๋ฅผ ์ด์ฉํ๊ณ pc๋ฅผ ์๋ฒ๋ก ์ฌ์ฉ
- server ์ธก์์๋ private IP๋ฅผ, client ์ธก์์๋ public IP๋ฅผ ์ฌ์ฉ
-
progress bar ์ถ๊ฐ
- ๋ก๊ทธ์ธ, ํ๋กํ ์ค์ ์ ๋ํ๋๋๋ก ํ์์
-
ํ์ ๊ฐ์ ์ ํ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ํ์ ์ ํ๋ฒํธ ์ธ์ฆ ํ๋ฉด์ผ๋ก ์ด๋ํ๋๋ก ๋ณ๊ฒฝ
- ์ ํ๋ฒํธ ์ธ์ฆ์ ํ๊ธฐ ์ํด ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ๊ฐ ๋ฑ๋ก๋์ด์ผ ํ๋ issue
- ์ ํ๋ฒํธ ์ธ์ฆ ํ๋ฉด์ผ๋ก ์ด๋ ํ home ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ฌ ์ ์ ์ realtime database ์ ์ฝ์ ๋ ๋ชจ๋ data ๋ฐ ์ด๋ฉ์ผ ๊ณ์ ์ ๊ฑฐ
-
Profile ์ค์ ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ํ ์ ์ฅ ๋ฒํผ์ ๋๋ฅด๋ฉด progress bar ๊ฐ ๋ํ๋๊ณ ๋ชจ๋ data ๊ฐ realtime database ์ ์ ์ฅ๋๋ฉด ํ๋ฉด์ ๋น ์ ธ๋์ค๋๋ก ๊ตฌํ
- ํ๋กํ ์ฌ์ง ๋ณ๊ฒฝ์ ๋๋ฅด๊ณ ๋ฐ๋ก ์ ์ฅ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ต๋ 15 ์ด ์ ๋๊ฐ ์์
-
git merge ํ NaverMap ์๋ฌ ๋ฌธ์ ์ฒ๋ฆฌ
- ๋ช ๊ฐ์ ํ์ผ์ merge ๋์ง ๋ชปํ ๊ฒ์ ํ์ธํ๊ณ ์ด๋ฅผ ์์
- ์ ์์ ์ผ๋ก map์ด ๋์์ง๋ ๊ฒ์ ํ์ธ(zoom-in, zoom-out ๋ฐ ์ด๋์ด ๊ฐ๋ฅ)
- background๋ก ํ์ฌ ์ฌ์ฉ์์ ์์น(x, y)๋ฅผ ์ค์๊ฐ์ผ๋ก update ํด์ผํจ
-
personality, hobby ๊ฐ ์ค๋ณต์ผ๋ก ๋ค์ด๊ฐ๋ ๋ฌธ์ ํด๊ฒฐ
- ์ฝ๊ฐ์ ๋ก์ง ๋ณ๊ฒฝ ๋ฐ personality ์ ๋์ผํ string ์ด ์๋ ๋ฌธ์ ๋ฅผ ํ์ธ ํ ์์
-
Phone verification ๊ตฌํ
- ๋ฒํธ ๋ฐ์ก ์ ๋ก๋ด์ฒดํฌ๊ฐ ๋จ๋ issue ๋ฐ์
- ํด๋น issue๋ "Verifying you're not a robot..." ๊ฐ ๋ฌ ํ์ ๋ฉ์์ง๊ฐ ์ ๋ฌ๋จ
-
Chatting ๊ตฌํ ์๋ฃ
- ๋งค์นญ๋ ์ฌ์ฉ์๋ค์ interactive communication ์ด ๊ฐ๋ฅ
-
email, password ๋ฅผ ์ ๋ ฅํ์ฌ ๋ก๊ทธ์ธํ๋ ๋ฐฉ์์ phonenumber ์ธ์ฆ์ ํตํด ๋ก๊ทธ์ธํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ
- ์ด 3๊ฐ์ง ํจํด์ผ๋ก ํ๋ฉด์ด ๋ณํ๋จ
- ๋ก๊ทธ์ธ ์ํ + ํ์๊ฐ์ ์ํ(๋ชจ๋ ์ ๋ณด ๊ธฐ์ ) => profile ํ๋ฉด ์ด๋
- ๋ก๊ทธ์ธ ์ํ + ํ์๊ฐ์ ์ํ ์ํ => ํ์๊ฐ์ ํ๋ฉด ์ด๋
- ๋ก๊ทธ์์ ์ํ => phonenumber ์ธ์ฆ ํ๋ฉด ์ด๋
- CheckjoinActivity ๊ฐ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ฉฐ ๋ก๊ทธ์ธ ์ํ + join ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ํ๋ฉด์ ์ด๋
- phonenumber ์ธ์ฆ์ด ์๋ฃ๋๋ฉด CheckJoinActivty ๋ก ๋์์์ join ์ฌ๋ถ์ ๋ฐ๋ผ ํ๋ฉด์ด ์ด๋
- ์ด 3๊ฐ์ง ํจํด์ผ๋ก ํ๋ฉด์ด ๋ณํ๋จ
-
ํ์๊ฐ์ ํ๋ฉด์ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด์ง
- ์๋ ์์ผ/์ฑ๋ณ ์ ๋ ฅ ํ๋ฉด
- ํ๋กํ ํธ์ง ํ๋ฉด
-
Json ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฐ ์์
- ์ธ๋ฌผ ์ฌ์ง์ธ์ง ์๋์ง ํ๋จ : Toast ๋ฌธ๊ตฌ ์ฒ๋ฆฌ
- server ๊ฐ ์ ์์ ์ผ๋ก request๋ฅผ ์ฒ๋ฆฌ : ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ๋๊น์ง progressbar ์งํ
- ํ๋กํ ๋ณ๊ฒฝ์ ๋ง์น๊ณ ์ ์ฅํ ๊ฒฝ์ฐ : ๋ณํ ์ฌ์ง์ permission ์ ๋ถ์ฌํ์ฌ ์ฌ์ง์ ์ ์์ ์ผ๋ก ๋์
-
๋ฒํธ ๋ฐ์ก ์ ๋ก๋ด์ฒดํฌ๊ฐ ๋จ๋ issue ํด๊ฒฐ
- Google Cloud Platform ์์ Android Device Verificaiton ์ ์ฌ์ฉ ์๋ฝํ์ฌ ํด๊ฒฐ
-
์ ๋๋ฉ์ด์ ์ฌ์ง์ผ๋ก ๋ณํํ๊ณ ์ ํ ์ฌ์ง์ ์ ํํ ๊ฒฝ์ฐ ๋ณํ ๊ณผ์ ์ด ๋ณด์ฌ์ง๋๋ก ํจ
- ์ฌ์ง ์ ํ ์ ํด๋น ์ฌ์ง์ด ํ๋ฉด์ ๋ํ๋๊ณ "์ฌ์ง ๋ณํ์ค..." ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ํตํด progressbar ๊ฐ ์งํ
- server ์ธก์์ ์ ๋๋ฉ์ด์ ์ฌ์ง์ผ๋ก ๋ณํํ ๊ฒฝ์ฐ ๋ณํ๋ ์ฌ์ง์ด ๋ํ๋จ
-
Firebase database ์์ data๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๋ฒํผ๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- UserInformation Class ๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐ
- ๋ก๊ทธ์ธ ์ UserInformation ๊ฐ์ฒด๋ฅผ ์์ฑํจ์ผ๋ก์จ Listener ๋ฑ๋ก
- Firebasse database ๋ด์ ์กด์ฌํ๋ data๋ค์ companion object์ flag, map, arrayList๋ฅผ ํตํด data ์ ๊ทผ
- ๋ก๊ทธ์์ ํ ๋์ผํ ๋ฒํธ or ๋ค๋ฅธ ๋ฒํธ๋ก ๋ก๊ทธ์ธํ ๊ฒฝ์ฐ
- ๊ธฐ์กด์ ์กด์ฌํ๋ listener ๋ฐ flag, map, arrayList ์ ๋ํ ์ด๊ธฐํ
- listener ์ค์ฒฉ ์ overhead ๊ฐ ์ปค์ง๋ issue ๋ฐฉ์ง
- ๋ค๋ฅธ ๋ฒํธ๋ก ๋ก๊ทธ์ธ ์ ์ด์ ์ ๋ก๊ทธ์ธํ ์ ์ ์ map ๋ฐ arrayList ์ ์ ์ฅ๋ data๊ฐ ์ง์์ ์ผ๋ก ๋จ๊ฒ ๋๋ issue ๋ฐฉ์ง
-
ํธ๋ํฐ ์ธ์ฆ ์, ๋จ ํ๋ฒ๋ง ์์ฒญ์ด ๊ฐ๋ฅํ๋๋ก ์์
-
UI Design
- progress bar, button, background, ๊ธ๊ผด ๋ฑ ๋ณ๊ฒฝ
-
Chatting
- ์ค์๊ฐ ์ฑํ ์, ํ๋ฉด์ด ๊ณ ์ ๋๋ ๋ฌธ์ ํด๊ฒฐ
- ์ ๋๋ฉ์ด์ ์ฌ์ง์ด ๋ฒํผ๋ง ์์ด ์ ์์ ์ผ๋ก ๋จ๋๋ก ํด๊ฒฐ
-
Map
- ํน์ ์ง์ ์์์ ์ ์ ์์ ๊ฑฐ๋ฆฌ ๊ณ์ฐ ํด๊ฒฐ
- ๋ฐ๊ฒฝ ๋ด์ ์กด์ฌํ๋ ์ ์ ๋ค์ listView ์ ๋์ฐ๋๋ก ํจ
-
UserInformation Class ๋ฆฌ๋ชจ๋ธ๋ง
- Profile, Animation, Recommend ์ ๋ํ data class ๋ฅผ ํตํด ์ด 3๊ฐ์ง map์ value๋ฅผ ์ธ๊ธํ ํด๋์ค ํ์
์ผ๋ก ํ ๋น์ด ๋๋๋ก ๋ณ๊ฒฝ
- PROFILE : key = userId, value = Profile
- ANIMATION : key = userId, value = Animation
- RECOMMEND : key = userId, value = Recommend
- Profile, Animation, Recommend ์ ๋ํ data class ๋ฅผ ํตํด ์ด 3๊ฐ์ง map์ value๋ฅผ ์ธ๊ธํ ํด๋์ค ํ์
์ผ๋ก ํ ๋น์ด ๋๋๋ก ๋ณ๊ฒฝ
-
CheckLoginActivity Class ์ถ๊ฐ
- ์ดํ์ ์ญ์ ํ๊ณ ์ค์นํ์ฌ ์ ๊ทผํ ๋ dummy uid ๋ก ๋ก๊ทธ์ธ๋๋ issue ๊ฐ ์กด์ฌํ์
- ๋ฐ๋ผ์, ์ค์ ๋ก ์กด์ฌํ๋ uid ์ธ์ง๋ฅผ check ํ์ฌ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ Logout ์ฒ๋ฆฌํ์์
-
Packaging
- join package
- CheckLoginActivity : uid ๊ฒ์ฌ
- JoinActivity : birth, gender ์ ๋ ฅ
- PhoneVerificationActivity : phone ์ธ์ฆ
- WelcomeActivity : ์ฒซ ํ๋ฉด
- utils package
- Animation : animation data class
- Profile : profile data class
- Recommend : recommend data class
- DBKey : db key data class
- join package
-
Code refactoring ๋ฐ annotation
- code ๊ฐ๊ฒฐํ ๋ฐ code ์ค๋ช ์ด ํ์ํ ๋ถ๋ถ์ ๋ํด์ annotation ์ถ๊ฐ
- DBKey ๋ฅผ ํตํด firebase Realtime database ์ data ์ ๊ทผ ์ฒ๋ฆฌ
- Map ์ ์ด์ฉํด key-value ํํ๋ก update ํ์ง ์๊ณ , ํด๋์ค๋ฅผ ๊ฐ์ฒดํํ์ฌ update ํ๋ ํํ๋ก ๋ณ๊ฒฝ
-
Profile UI ์์
- ์์ ์ ์๊ฐ๊ธ์ด ๊ธด ๊ฒฝ์ฐ, ์ฌ์ง๊ณผ ๋ฟ๋ issue ๊ฐ ์กด์ฌํ์
- ๋ฐ๋ผ์ ์ฌ์ง, ๋๋ค์, ์๊ฐ๊ธ ๋ฑ์ ๊ฐ๊ฐ ๊ฐ์ด๋ฐ ์ ๋ ฌ์ ํ์ฌ ํด๊ฒฐ
- ํ๋กํ ํธ์ง ์ MBTI, ์ฑ๊ฒฉ, ์ทจ๋ฏธ ๋ฑ์ ์ ํํ ๋ ๋ฌด์์ ์ ํํ๋์ง ํ์ธํ ์ ์๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐ
-
Matching ๊ตฌํ
- ๋ฐ๊ฒฝ ๋ด์ ์กด์ฌํ๋ ์ ์ ์๊ฒ LIKE ๋ฅผ ์์ฒญํ๋ค. (์ ์ ์ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ)
- ์์ฒญ์ ๋ฐ์ ์ ์ ๋ ํด๋น ์ ์ ๋ฅผ ์ ํํ์ฌ ์ ๋ณด ํ์ธ ๋ฐ LIKE ๋ฅผ ์๋ฝํ์ฌ ๋งค์นญ์ด ์ด๋ค์ง (LIKE ๊ฑฐ์ ๊ตฌํ์ด ํ์)
-
History ๊ตฌํ
- ์ด 3 ๊ฐ์ง ์ผ์ด์ค๋ก ํ๋กํ ํ๋ฉด ์๋์ ๋ ์ง ๋ฐ ๋ฌธ๊ตฌ๊ฐ ๋ฌ๋ค.
- ์๋๋ฐฉ์๊ฒ LIKE ๋ฅผ ๋ณด๋ธ ๊ฒฝ์ฐ : "... ๋์๊ฒ like๋ฅผ ๋ณด๋์ต๋๋ค." ๋ฌธ๊ตฌ๊ฐ ๋์์ง
- ์๋๋ฐฉ์๊ฒ LIKE ๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ : "... ๋์ด like๋ฅผ ๋ณด๋์ต๋๋ค." ๋ฌธ๊ตฌ๊ฐ ๋์์ง
- ์๋๋ฐฉ๊ณผ ๋งค์นญ์ด ์ด๋ค์ง ๊ฒฝ์ฐ : "... ๋๊ณผ match๋์์ต๋๋ค." ๋ฌธ๊ตฌ๊ฐ ๋์์ง
- ์ด 3 ๊ฐ์ง ์ผ์ด์ค๋ก ํ๋กํ ํ๋ฉด ์๋์ ๋ ์ง ๋ฐ ๋ฌธ๊ตฌ๊ฐ ๋ฌ๋ค.
-
UserInformation ์์
- ๋ก๊ทธ์ธ๋ ์ ์ ๊ฐ ๋ก๊ทธ์์์ ํ๊ณ ๋ค๋ฅธ ๋ฒํธ๋ก ๋ก๊ทธ์ธ ์ ์ด์ ์ ์กด์ฌํ๋ ๋งค์นญ ์ ์ ๋ค์ด ์ฑํ
์ฐฝ์ ๋์์ง๋ issue ๋ฐ์
- issue ์์ธ : ์ด์ ์ ์ ์ ๋งค์นญ๋ ์ ์ ๋ค๊ณผ์ ๋ฆฌ์ค๋๊ฐ ๊ณ์ํด์ ๋์ํ๋ค๋ ์ + ๋ฆฌ์คํธ, ๋งต์ ๋ํ ์ด๊ธฐํ ์ฒ๋ฆฌ๊ฐ ์์์
- issue ํด๊ฒฐ : ์ด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฆฌ์คํธ, ๋งต์ ์ด๊ธฐํ ๋ฐ ์ด์ ๋ฆฌ์ค๋๋ค์ ๋ํ ์ ๊ฑฐ ์์ ์ ํตํด ํด๊ฒฐ
- fragment ์์ Profile => ... => Profile ์ ๊ฐ์ด ๋ฐฉ๋ฌธ ์, History ๋ฌธ๊ตฌ๊ฐ ์ค์ฒฉ๋๋ issue ๋ฐ์
- issue ์์ธ : fragment ์ history ๋ฆฌ์ค๋๊ฐ ์ ๊ฑฐ๋์ง ์์ profile fragment ๋ฅผ ์ฌ๋ฌ๋ฒ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ฆฌ์ค๋ ์ค์ฒฉ์ผ๋ก ์ธํด ๋ฌธ๊ตฌ๊ฐ ์ค์ฒฉ๋์์
- issue ํด๊ฒฐ : UserInformation ์์ ํ์ฌ ์ ์ ์ history ๋ฆฌ์ค๋๋ฅผ ์์ฑํ์ฌ ์ป์ history ์ ๋ณด๋ค์ arrayList ์ ๋ด์์ fragment ๋ฐฉ๋ฌธ์ listener ๋ฅผ ๋ฑ๋กํ๋ ๊ฒ์ด ์๋ UserInformation ์์ ๋ง๋ค์ด์ง arrayList ๋ฅผ ๋ฐ๋ก ์ ์ฉํจ์ผ๋ก์จ ํด๊ฒฐ
- ๋ก๊ทธ์ธ๋ ์ ์ ๊ฐ ๋ก๊ทธ์์์ ํ๊ณ ๋ค๋ฅธ ๋ฒํธ๋ก ๋ก๊ทธ์ธ ์ ์ด์ ์ ์กด์ฌํ๋ ๋งค์นญ ์ ์ ๋ค์ด ์ฑํ
์ฐฝ์ ๋์์ง๋ issue ๋ฐ์
-
Dialog ๋ชจ์๋ฆฌ ๋ถ๋ถ์ ๋ฅ๊ธ๊ฒ ์์
-
Profile Setting UI ์์
- 4 x 4 ํ
์ด๋ธ ํํ์ radiobutton ์ ์ฒ๋ฆฌํ๋๋ฐ issue ๋ฐ์
- issue ์์ธ : ๋์ผํ row ์ ์กด์ฌํ๋ radiobutton ๋ค์ ํ๋์ radiogroup ์ผ๋ก ์ด 4๊ฐ์ radiogroup ์ ์์ฑํ์์ผ๋ฉฐ ๋จ ํ๋์ radiobutton ์ด ์ ํ๋๋๋ก ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ check ๊ฐ์ด ์ ๋๋ก update ๊ฐ ๋์ง ์์์
- issue ํด๊ฒฐ : radiobutton ๋ค์ ๋ฌด์กฐ๊ฑด radiogroup ์ผ๋ก ์ฒ๋ฆฌํ๋ค๋ ๊ด๋ ์ ๊นจ๋จ๋ฆฌ๊ณ , radiobutton ์ ์ ํํ ๋ ๋ฆฌ์ค๋๊ฐ ๋์ํ๊ฒ๋ ํ์ฌ ์ด์ ํ๊ณผ ์ด(prevX, prevY)์ check ๋ ๊ฐ์ false ๋ก update ํ์ฌ ํด๊ฒฐ
- 4 x 4 ํ
์ด๋ธ ํํ์ radiobutton ์ ์ฒ๋ฆฌํ๋๋ฐ issue ๋ฐ์
-
์ฑํ ๋ฐฉ ๋๊ฐ๊ธฐ ๋ฐ DISLIKE ๊ธฐ๋ฅ ๊ตฌํ
- ์ฑํ ๋ฐฉ ๋๊ฐ๊ธฐ : ํน์ ์ ์ ์ ์ฑํ ํ๋ค๊ฐ ๋ง์์ ์๋ค๋ฉด ์ฑํ ๋ฐฉ์ ๋๊ฐ๊ณ ์ฑํ ๋ชฉ๋ก์ ํด๋น ์ฑํ ๋ฐฉ์ด ์ฌ๋ผ์ง๋๋ก ํจ
- DISLIKE : ์ถ์ฒ ๋ชฉ๋ก์์ ํน์ ์ ์ ์๊ฒ DISLIKE ๋ฅผ ๋ณด๋ด๊ฒ ๋ ๊ฒฝ์ฐ ํด๋น ์ ์ ๊ฐ ์ถ์ฒ๋์ง ์๋๋ก ํจ
-
Logout ๋ฐ History ์์
- Logout : ํ๋กํ ํ๋ฉด ์ค๋ฅธ์ชฝ ์๋จ์ ์ค์ ๋ฒํผ์ ๋๋ฅด๋ฉด activity ๋ก ์ด๋ํ์ฌ ๋ก๊ทธ์์ ํ๋ ๋ฐฉ์์ด ์๋๋ฉฐ ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๋์์ ๋ก๊ทธ์์์ ํ๋๋ก ๋ณ๊ฒฝ
- History : ์ต์ history ์๋์ด ์๋ก ์ค๋๋ก ๋ณ๊ฒฝ
-
Recommend ๊ตฌํ ์๋ฃ
- ๋ฐ๊ฒฝ ๊ฑฐ๋ฆฌ๋ฅผ ์ต์ 500m ๋ถํฐ ์ต๋ 100km ๊น์ง ์์ ๋กญ๊ฒ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ฉฐ ๋ฐ๊ฒฝ ๋ด์ ์ฌ์ฉ์๋ฅผ ์ถ์ฒ
- ์ ์ ๊ฐ ์ํ๋ mbti, ์ฑ๊ฒฉ, ์ทจ๋ฏธ ๋ฑ์ ์ ํํ๊ณ ๋ฐ๊ฒฝ ๋ด์ ์ถ์ฒ๋๋ ์ ์ ๋ค ์ค์ mbti, ์ฑ๊ฒฉ, ์ทจ๋ฏธ ๋ฑ์ด ๊ฐ์ฅ ๋ง์ด ๊ฒน์น ์๋ก ์๋จ์ ๋ฐฐ์น๋๋๋ก ์ฐ์ ์์๋ฅผ ์ค์
-
Matching ๋ฐ Chatting ์ด ๋ค์ด๋๋ฏนํ๊ฒ ์คํ๋๋๋ก ์์
- ํน์ ์ ์ ์๊ฒ LIKE ๋ฅผ ๋ฐ๊ฒ ๋ ๊ฒฝ์ฐ ๋งค์นญ ํ๋ฉด์์ ์ฆ๊ฐ์ ์ผ๋ก ํด๋น ์ ์ ๊ฐ ๋์์ง๋๋ก ๋ณ๊ฒฝ
- LIKE ๋ฅผ ๋ฐ์ ์ ์ ๊ฐ ํด๋น ์ ์ ๋ฅผ ์๋ฝํ ๊ฒฝ์ฐ ์ฑํ ํ๋ฉด์์ ์ฆ๊ฐ์ ์ผ๋ก ํด๋น ์ ์ ๊ฐ ๋์์ง๋๋ก ๋ณ๊ฒฝ
-
์ฌ๋ฌ ์ ์ ์๊ฒ LIKE ๋ฅผ ๋ฐ๊ณ ๋งค์นญํ ๊ฒฝ์ฐ ์ฑํ ๋ฐฉ์ ํ๋ช ๋ง ๋จ๋ ์ค๋ฅ ์์
- setValue ๋ฅผ updateChildren ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ํด๊ฒฐ
- issue ์์ธ : setValue ๋ ๊ฐ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฉ์๋์ด๋ฏ๋ก ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ๋งค์นญ๋ ์ ์ ๊ฐ ๋จ๊ฒ ๋จ
- issue ํด๊ฒฐ : updateChildren ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๊ฐ์ ๋์ ํ์ฌ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋๋ก ํจ
- setValue ๋ฅผ updateChildren ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ํด๊ฒฐ
-
์ ์ฒด์ ์ธ UI ์์
- ํ์๊ฐ์ ํ๋ฉด : ๋ค์ด์ผ๋ก๊ทธ๋ก ์๋ ์์ผ์ ์ ํํ์ง ์๊ณ , ํ์ฌ ํ๋ฉด ๋ด์์ ์ ํ ๊ฐ๋ฅํ๋๋ก ์์
- ํธ๋ํฐ ์ธ์ฆ ํ๋ฉด : ์ธ์ฆ ๋ฒํธ๊ฐ ์ ์์ ์ผ๋ก ์ ์ก๋ ๊ฒฝ์ฐ ์ ํ ์๊ฐ ํ ์คํธ๋ฅผ ์ถ๊ฐ (ex : 02๋ถ 00์ด)
- ํ๋กํ ์ธํ ํ๋ฉด : ์ ์ฒด์ ์ธ UI ์์
- ์ถ์ฒ ํ๋ฉด : LIKE ๋ ๋ฐ๋ด ์ด๋ฏธ์ง, DISLIKE ๋ ๊ฑฐ๊พธ๋ก ๋ ๋ฐ๋ด ์ด๋ฏธ์ง๋ก ๋์ฒด
-
์ ๋๋ฉ์ด์ ํ ๋์ง ์์ ์ฌ์ง์ ๋ณดํธ
- ์๋์น ์๊ฒ ์ ๋๋ฉ์ด์
ํ ๋์ง ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํด๋น ์ฌ์ง์ ๋ณด๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด permission ํค ๊ฐ์ ํตํด true ๊ฐ ์๋๋ฉด ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ก ๋์ฒด
- ์๋ฒ๊ฐ ๋์๊ฐ์ง ์๋ ๊ฒฝ์ฐ์ ํน์ ์ ์ ๊ฐ ์ค๋ฌผ ์ฌ์ง์ ๋ณํํ๋ ค๊ณ ํ ๋, ํด๋น ์ค๋ฌผ ์ฌ์ง์ ๋์ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์
- ์๋์น ์๊ฒ ์ ๋๋ฉ์ด์
ํ ๋์ง ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํด๋น ์ฌ์ง์ ๋ณด๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด permission ํค ๊ฐ์ ํตํด true ๊ฐ ์๋๋ฉด ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ก ๋์ฒด
-
์ถ์ฒ ๋ก์ง ์์
- ์ ์ ๊ฐ ์ถ์ฒ ๋ฒํผ์ ๋๋ฌ์ ๋ชจ๋ ์ ์ ๋ค์ LIKE ๋ฐ DISLIKE ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ฒ ๋ชฉ๋ก์์ ๋น ์ ธ๋์จ ํ, ๋ค์ ์ถ์ฒ ๋ฒํผ์ ๋๋ฅด๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฐ์
- issue ์์ธ : LIKE ๋ฐ DISLIKE ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ๊ฑธ๋ฌ๋ธ ์ถ์ฒ ์ ์ ๋ค์ map ์ ์ธ์๋ก ๋ณด๋ธ ํ, ํ๋ผ๋ฉํฐ๋ก ๋ฐ์ LIKE ๋ฐ DISLIKE ๋ฅผ ๊ณ ๋ คํ๋ ๋ก์ง์ผ๋ก ์ธํด ์ถ์ฒํ ์ฌ๋์ด ์์์๋ ๋ฆฌ์คํธ๊ฐ ๋์์ง๋ issue ๋ฐ์
- issue ํด๊ฒฐ : map ์ ์ธ์๋ก ๋ณด๋ด๊ธฐ ์ ์ ํ๋ฒ ๋ map ์ ํ์ํ์ฌ LIKE, DISLIKE ๊ฐ ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฑธ๋ฌ๋ธ ํ, ์ต์ข ์ ์ผ๋ก map ์ ์ธ์๋ก ๋ณด๋ (map ์ด ๋น ๊ฒฝ์ฐ ํ ์คํธ๋ก "์ถ์ฒํ ๋์์ด ์์ต๋๋ค." ๋ฌธ๊ตฌ๊ฐ ๋ธ)
- ์ ์ ๊ฐ ์ถ์ฒ ๋ฒํผ์ ๋๋ฌ์ ๋ชจ๋ ์ ์ ๋ค์ LIKE ๋ฐ DISLIKE ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ฒ ๋ชฉ๋ก์์ ๋น ์ ธ๋์จ ํ, ๋ค์ ์ถ์ฒ ๋ฒํผ์ ๋๋ฅด๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฐ์
-
UI ๋ค๋ฌ๊ธฐ ์์
-
๋งค์นญ ๊ตฌํ ์์
- ํธ๊ฐํ๋ฉด์์ ๋งค์นญ์ด ์ ์์ ์ผ๋ก ์ด๋ค์ง๊ณ ๋ ํ์ ๋ค์ ํธ๊ฐํ๋ฉด์ผ๋ก ๊ฐ๋ฉด ๋งค์นญ์ด ์ด๋ค์ก์์๋ ๋ถ๊ตฌํ๊ณ ์ ์ ๊ฐ ๊ณ์ ๋ ์๋ ์ํฉ
- issue ์์ธ : ๋์๊ฒ ์จ receivedLike ๋ฐ ๋์๊ฒ ๋ณด๋ธ ์๋๋ฐฉ์ sendLike ์ value ๊ฐ์ ์ ๊ฑฐํ์ง ์์์ ์๊ธด ๋ฌธ์
- issue ํด๊ฒฐ : ๋์๊ฒ ์จ receivedLike ๋ฐ ๋์๊ฒ ๋ณด๋ธ ์๋๋ฐฉ์ sendLike ์ value ๋ฅผ ์ญ์ ํ์ฌ ํด๊ฒฐ
- ํธ๊ฐํ๋ฉด์์ ๋งค์นญ์ด ์ ์์ ์ผ๋ก ์ด๋ค์ง๊ณ ๋ ํ์ ๋ค์ ํธ๊ฐํ๋ฉด์ผ๋ก ๊ฐ๋ฉด ๋งค์นญ์ด ์ด๋ค์ก์์๋ ๋ถ๊ตฌํ๊ณ ์ ์ ๊ฐ ๊ณ์ ๋ ์๋ ์ํฉ
-
๋ค์ด๋๋ฏนํ ์ฑํ ๋ฆฌ์คํธ ๊ตฌํ
- ์ฑํ ๋ฆฌ์คํธ์ ๋ค์ด๋๋ฏนํจ์ ๋ถ์ฌํ์ฌ ์ฆ๊ฐ์ ์ผ๋ก ๋๊ตฌ์๊ฒ ์ฑํ ์ด ์ค๋์ง, ์ด๋ ์๊ฐ์ ๋ณด๋๋์ง๋ฅผ ์ ์ ์๋๋ก ๊ธฐ๋ฅ ๊ตฌํ
- ์๋๋ฐฉ์ด ์ฑํ ์ ๋ณด๋ด๋ฉด ์ฆ๊ฐ์ ์ผ๋ก ์ฑํ ๋ชฉ๋ก์์ ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ๋ณด๋ธ ์ฑํ ๋ก๊ทธ ๋ฐ ์๊ฐ๋๊ฐ ๋ํ๋๋๋ก ๊ธฐ๋ฅ ๊ตฌํ
- ์๋๋ฐฉ์ด ์ฑํ ๋ฐฉ์ ๋๊ฐ๊ฒ ๋ ๊ฒฝ์ฐ => "..." ๋์ด ๋๊ฐ์ต๋๋ค. ๋ฌธ๊ตฌ๊ฐ ๋ ์ ์ ์ ๊ฐ ์ฑํ ๋ฐฉ์ ๋๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋๋ก ํจ
- ์ ์ ๊ฐ ๋๊ฐ ์ฑํ ๋ฐฉ์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด ๋ฌธ์๋ฅผ ๋ณด๋ผ ์ ์์ผ๋ฉฐ ์ค์ง ์ฑํ ๋ฐฉ ๋๊ฐ๊ธฐ ๋ฐ ๋ค๋ก๊ฐ๊ธฐ๋ง ๊ฐ๋ฅํ๋ค.
-
์ถ์ฒ ๋ก์ง ๋ณ๊ฒฝ
- ์ฑ๊ฒฉ, ์ทจ๋ฏธ ๋ฑ์ ์ ํํ์ง ์๊ณ mbti ๋ง ์ ํํ ๊ฒฝ์ฐ, ์ผ์นํ๋ mbti ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ถ์ฒ์ด ๋์ง ์๋ issue ๋ฐ์
- issue ์์ธ : mbti ~> personality ~> hobby ์์๋ก ์ ์ ๋ค์ intersection ํ๊ธฐ ๋๋ฌธ
- mbti = { "ESTJ" }, ์ฑ๊ฒฉ = { }, ์ทจ๋ฏธ = { "๊ฒ์" } ์ธ ๊ฒฝ์ฐ { "ESTJ" } => { } => { }
- issue ํด๊ฒฐ : intersection ๋ฐฉ์์ union ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์์
- mbti = { "ESTJ" }, ์ฑ๊ฒฉ = { }, ์ทจ๋ฏธ = { "๊ฒ์" } ์ธ ๊ฒฝ์ฐ { "ESTJ" } => { "ESTJ" } => { "ESTJ", "๊ฒ์" }
-
์ฑํ ๋ก๊ทธ ๋ณ๊ฒฝ
- ์ฑํ
๋ ์ง "12์ 9๋ถ" ๋ฅผ "12์ 09๋ถ" ์ผ๋ก ๋ณ๊ฒฝ
- minute < 10 : "0" + minute ์ผ๋ก ์ฒ๋ฆฌ
- ํ์ฌ ๋ ์ง๋ฅผ ๋ฐ์์ฌ ๋, ์ค์ 4:14 ์ธ ๊ฒฝ์ฐ ์คํ 4:14 ์ผ๋ก ๋ฐ์์ค๋ issue ๋ฐ์
- issue ์์ธ : System.currentTimeMillis() ๋ฅผ ํธ์ถํ์ฌ ๋ฐ์๋ ์์ธ์์ ํ์ธ
- issue ํด๊ฒฐ : LocalDateTime.now() ๋ฅผ ํธ์ถํ์ฌ ํด๊ฒฐ
- ์ฑํ
๋ ์ง "12์ 9๋ถ" ๋ฅผ "12์ 09๋ถ" ์ผ๋ก ๋ณ๊ฒฝ