React Native ์ฑ ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด
๋ฒ๊ทธ๋ ๋ฐ๋์ ์๊ธด๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ๋๋ฐ์ด์ค์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ์ฑ์ ๋๋ฒ๊น ๋ฅ๋ ฅ์ ์ฑ ํ์ง์ ๊ฒฐ์ ์ง๋ ํต์ฌ์ด๋ค.
์ด๋ฒ ๊ธ์ React Native ์ฑ์ ๋๋ฒ๊น
ํ๊ณ ์ฑ๋ฅ์ ๋ถ์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์
์ค์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ ๊ธ์ด๋ค.
console.log
npx react-native log-android
or Android Studio Logcatreact-native-logs
npm install react-native-logs
const logger = createLogger();
logger.info('ํ์ด์ง ์ง์
');
logger.error('์๋ฌ ๋ฐ์', error);
โ
๋ก๊ทธ ๋ ๋ฒจ ๊ด๋ฆฌ (info
, warn
, error
)
โ
๋ก๊ทธ ๊ธฐ๋ก ํ์ผ ์ ์ฅ ๊ฐ๋ฅ
โ
ํ๋ก๋์
๋ชจ๋์์ ๋ก๊ทธ ์จ๊ธฐ๊ธฐ ๊ฐ๋ฅ
redux-devtools-extension
๊ณผ ํตํฉ ๊ฐ๋ฅflipper
๋ณด๋ค ์ค์ ์ด ๋จ์ํด์ ๋น ๋ฅด๊ฒ ์ฌ์ฉ ๊ฐ๋ฅbrew install --cask react-native-debugger
react-native-flipper
์ค์น ํ์npm install react-native-flipper
โ
๋๋ฐ์ด์ค ์ฐ๊ฒฐํด์ ์ค์๊ฐ ๋๋ฒ๊น
โ
๋ค์ดํฐ๋ธ์ JS ๋ธ๋ฆฌ์ง ์ฐ๊ฒฐ ์ํ ํ์ธ ๊ฐ๋ฅ
const start = performance.now();
// ๋ ๋๋ง ์ฝ๋
const end = performance.now();
console.log(`๋ ๋๋ง ์๊ฐ: ${end - start}ms`);
React.memo
, useMemo
, useCallback
๋ฑ ์ต์ ํ ํ๋จ ๊ธฐ์ค ์ ๊ณตnpm install @sentry/react-native
npx @sentry/wizard -i reactNative
โ ์ค์๋น์ค ์ฑ์์๋ ๊ฑฐ์ ํ์
ํญ๋ชฉ | ํ์ธ ํฌ์ธํธ |
---|---|
์คํฌ๋กค ์ง์ฐ | FlatList ์ต์ ํ, ์ด๋ฏธ์ง ์ฉ๋ ํ์ธ |
ํ๋ฉด ๊น๋นก์ | ๋ฆฌ๋ ๋๋ง ์์ธ ์ฒดํฌ (state ์ถ์ ) |
๋ค๊ตญ์ด ์ค๋ฅ | ๋ฒ์ญ ๋๋ฝ ํค, fallback ํ์ธ |
๋คํธ์ํฌ ์คํจ | API ์๋ฌ ์ UI fallback ์ ๊ณต |
์ฑ์ ํ
์คํธํ ๋๋ ์ ๋์๊ฐ์ง๋ง
๋ฐฐํฌ ํ์์ผ ํฐ์ง๋ ์ด์๊ฐ ํญ์ ์๊ฒผ๋ค.
๊ทธ๋ด ๋๋ง๋ค ๋๋ฒ๊น
ํด๊ณผ ๋ก๊ทธ๊ฐ ๋ถ์กฑํด์ ๊ณ ์ํ ์ ์ด ๋ง๋ค.
์ง๊ธ์ Flipper
+ Sentry
+ react-native-logs
์กฐํฉ์ผ๋ก
๋๋ฒ๊น
, ์๋ฌ ์ถ์ , ์ฑ๋ฅ ๋ถ์๊น์ง ํ ๋ฒ์ ์ปค๋ฒํ๊ณ ์๋ค.
๐ โ์ฑ์ ์์ฑ๋๋ ๋ณด์ด๋ ๊ฒ๋ณด๋ค, ๋ณด์ด์ง ์๋ ๊ณณ์์ ๊ฒฐ์ ๋๋ค.โ