[ํด๋ผ์ฐ๋ฉ ์ดํ๋ฆฌ์ผ์ด์ ์์ง๋์ด๋ง TIL] 240401 - SNS ์ฑ ํด๋ก๋ ํ๋ก์ ํธ (3)
Intro
ํ๋ก์ ํธ ๋ง์ง๋ง๋ !
์ฃผ๋ง๊ณผ ์ค๋๊น์ง ํผ๋ ๊ฒ์ & ํผ๋ ๊ฒ์๊ธ ์ฌ๋ฆฌ๋ ํ๋ฉด์ ๊ตฌํํ์๋ค.
ํ๋ก์ ํธ ์งํ์ฌํญ
ํผ๋ ๊ฒ์ ๊ธฐ๋ฅ
ํ๊ทธ๋ฅผ ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค.
๊ฒ์์ด์ ๊ฐ์ ํ๊ทธ๊ฐ ํฌํจ๋์ด ์๋ ํผ๋๋ง ๋ฆฌ์คํธ๋ก ๋ณด์ฌ์ค๋ค.
๊ฒฐ๊ณผ๊ฐ ์์ ๊ฒฝ์ฐ ๊ฒ์๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ๋ณด์ฌ์ค๋ค.
์ต๊ทผ ๊ฒ์์ด๋ ๊ฐ์ฅ ์ต๊ทผ์ ๊ฒ์ํ ํค์๋๊ฐ ๋งจ ์์ ์ค๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์ Set์ ์ฌ์ฉํด ์ค๋ณต์ ์์ ์ฃผ์๋ค.
ํผ๋ ์๊ธ ์์ฑ & ์ฌ์ง ์ฌ๋ฆฌ๊ธฐ
react-native-camera-roll ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฐ์ ์ฌ์ง ์ฑ์ ์ ๊ทผํ์ฌ ์ฌ์ง์ ์ฌ๋ฆด ์ ์๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์๋ค.
const fetchImages = () => {
CameraRoll.getPhotos({
first: 100,
}).then(res => {
setImages(res.edges.map(e => e.node.image));
});
};
CameraRoll์ getPhotos ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์นด๋ฉ๋ผ ์จ๋ฒ ์ฌ์ง๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
first๋ ์ต๊ทผ n๊ฐ์ ์ฌ์ง์ ๊ฐ์ ธ์ค๊ฒ ๋ค๋ ์ต์ ์ด๋ค.
์ฌ๋ฌ ์ฌ์ง์ ๊ฐ์ ธ์ฌ ์ ์๊ณ ์ ํํ ์ฌ์ง์ ์ญ์ ํ ์ ์๋ ๋ฒํผ๋ ๊ตฌํํ์๋ค.
์ ํํ ์ฌ์ง์ ์ฌ๋ผ์ด๋ ํ์์ผ๋ก ๋ณผ ์ ์๋ค.
์ฌ์ง์ ์ ํํ ํ ๋ค์์ ๋๋ฅด๋ฉด ์ ๊ฒ์๋ฌผ ๋ด์ฉ๊ณผ ํค์๋๋ฅผ ์ ๋ ฅํ ์ ์๋ ํ๋ฉด์ด ๋ํ๋๋ค.
ํ๋ก์ ํธ ํด๋ ๊ตฌ์กฐ
๐ฆsrc
โฃ ๐apis
โ โ ๐dummyData.js
โฃ ๐assets
โ โ ๐logo.png
โฃ ๐components
โ โฃ ๐CommentsModal.tsx
โ โฃ ๐CustomBottomTab.tsx
โ โฃ ๐PageHeader.tsx
โ โ ๐RenderFeed.tsx
โฃ ๐pages
โ โฃ ๐CalendarPage.tsx
โ โฃ ๐ChatPage.tsx
โ โฃ ๐Home.tsx
โ โฃ ๐MyPage.tsx
โ โฃ ๐NewPostDetailPage.tsx
โ โฃ ๐NewPostPage.tsx
โ โฃ ๐SearchPage.tsx
โ โฃ ๐SearchResult.tsx
โ โ ๐Splash.tsx
โฃ ๐types
โ โ ๐types.ts
โฃ ๐utils
โ โ ๐setAgoDays.ts
โ ๐router.tsx
๋ง๋ฌด๋ฆฌ
์ด๋ฒ ํ๋ก์ ํธ์์ ๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ๋ค์ ์์ ํ ๊ตฌํํ์ง ๋ชปํ์ง๋ง ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ ํ๋ค๋ ์ ์ ์๋ฏธ๊ฐ ์๋ค.
์ฒ์์๋ ๋ณ์์ ํ์ ์ ์ ์ธํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ธ๋ถ ํ์ ์ ๋ถ๋ฌ์์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์๊ณผ ๊ท์ฐฎ์์ ๋๊ผ์ง๋ง, ํ๋ก์ ํธ๊ฐ ์งํ๋ ์๋ก ์ด๋ฌํ ๊ณผ์ ์ด ์ด๊ธฐ ์ค๋ฅ๋ฅผ ์ก๋ ๋ฐ ๋์์ด ๋์๋ค.
์๋ฅผ๋ค์ด, ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ ์ค์๋ก length๋ฅผ ์ ๋ ฅํ์ง ์์์ ๋ JS๋ ์ค๋ฅ ์์ด ๋์ํ๋ ๋ฐ๋ฉด TS์์๋ ํ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
์ด๋ฌํ ์ค๋ฅ๋ค์ ์ฌ์ ์ ์ฐพ์ ํด๊ฒฐํ์ฌ ์ฝ๋ ์์ ์ฑ์ ๋์ผ ์ ์์๋ค.
์ฌ๋ฌ๋ชจ๋ก ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์๋ค.