숨고의 react-native 엔지니어들이 생태계 전반의 유용하고 흥미로운 소식들을 소개합니다.
숨고 React Native 뉴스레터
#4

숨고의 react-native 엔지니어들이 생태계 전반의 유용하고 흥미로운 소식들을 소개합니다.

🎥 Conference
개발자와 디자이너가 함께 새로운 디자인 시스템을 만들면서 경험한 것들을 공유해주셨습니다. 편안하게 듣기 좋은 내용이지만 가볍지 않은 깨달음을 얻을 수 있는 세션입니다. 디자인 시스템에 한정된 이야기가 아닌, 개발자와 디자이너가 협업하면서 서로에 대해, 각자의 일하는 방식에 대해 이해하는 과정이 흥미롭습니다. “디자이너도 비효율을 싫어하지만, 비효율을 감수하고서라도 창의적인 일을 하는 생명체가 디자이너”라는 내용이 인상적입니다.
💡 Insight
use, useFormState, useFormStatus, useOptimistic 훅을 데모와 함께 간단히 소개하는 글입니다. use 훅은 인자로 Promise를 전달하여 비동기 처리에 사용하거나, React Context를 전달하여 값을 참조할 수 있습니다. 기존의 훅과 달리 if 문이나 반복문 등에서 호출할 수 있다는 점이 특이합니다. useFormState 등은 form action과 조합하여 비동기 처리에 활용됩니다. useOptimistic 훅은 Optimistic UI에 필요한 상태 구현을 도와줍니다.
REST API 호출을 하거나 외부 종속성을 갖는 컴포넌트를 React Testing Library와 Jest를 사용해 테스트할 때, HTTP 통신이나 의존성을 mocking 하는 방식을 주로 사용하게 되는데요, 이 글은 그 대신 React Context를 사용해 React 컴포넌트에 의존성 주입을 구현하는 아이디어를 소개합니다.
Software Mansion이 진행한 2023년 React Native 개발자 설문의 결과가 공개됐습니다. 많은 RN 개발자들이 디버깅 경험을 가장 큰 pain point로 생각하며, 그다음으로는 패키지들이 잘 유지보수되지 않는 점을 꼽았습니다. 상태관리 도구는 여전히 Redux 및 Redux Tool Kit의 점유율이 높고 react-query의 점유율도 상당합니다. 작년 한 해 동안 스타일 관련 라이브러리가 많이 등장했지만, StyleSheet API 및 in-line 스타일을 활용하는 개발자들이 대다수이며, Styled Component가 그나마 많이 활용되고 있습니다.
React Native Core 팀은 얼마 전 ‘React Native Frameworks’ (이하 RNF) 라는 개념을 RFC(Request For Change)의 형태로 공개했습니다. RNF는 프로덕션 앱을 개발/운영/배포하는 데 필요한 라이브러리, 도구, 자동화 스크립트 등의 집합을 의미하는 개념으로, Expo가 현재 이에 유일하게 부합합니다. 이 개념을 공개하며 RN 팀은 모바일 환경에서 개발자가 React 개발 경험을 지속하고 모바일 네이티브 접근에 필요한 API를 마련하는 데 집중하는 등 React Native 패키지가 수행할 역할, 하지 않을 역할을 명확히 했습니다. 또한 RNF를 개발하여 오픈소스로 운영하는 팀은 파트너 상태가 되며, 팀이 아니더라도 프레임워크 개발자들의 PR 및 issue 들은 높은 우선순위로 처리하는 등 추가적인 이득을 부여할 예정입니다.
요약하지 못한 많은 내용이 담겨있으니 관심 있으신 분들께서는 원문을 읽어보시기를 추천드립니다.
📂 Library
SQLite in-app DB 라이브러리입니다. 자체 벤치마크 결과, 현존하는 React Native in-app DB 라이브러리 중 가장 빠른 react-native-mmkv보다 조금 더 빠르다고 합니다.
release 빌드에서 JS 프로파일을 수행하기 위한 라이브러리입니다. 측정 시작과 종료는 제공되는 함수를 호출하여 프로그램적으로 수행할 수 있고, 측정 결과는 기기에 파일로 저장됩니다. 파일을 별도의 GUI 도구로 열어 분석해 볼 수 있습니다. 도구는 ReadMe에 함께 소개하고 있습니다.
Skia 엔진을 활용한 lottie 재생 라이브러리입니다. GPU 가속을 활용하여 lottie-react-native보다 CPU 사용량이 줄어든 것이 특징이며 고성능을 지향합니다.
많은 React Native 스타일 라이브러리들 중 거의 유일하게 내장 StyleSheet API와 동등한 성능을 냅니다. API가 StyleSheet와 유사하여 사용하기 쉽고, 멀티 플랫폼을 지원하며 theme, breakpoints, media query 등을 구현했습니다.
🧰 Tool
BAM tech가 만들어 공개한 ChatGPT 챗봇입니다. "React Native 개발에 특화된 지식과 기술을 가진 언어 모델로, TypeScript, React Query, react-hook-form, zod 등의 기술 스택에 익숙합니다. 또한, clean code, SOLID 원칙, 단일 책임 원칙 등의 개발 원칙을 준수하며 코드를 작성하는 데 도움을 드릴 수 있습니다."라고 스스로를 소개하네요. 🙂
(ChatGPT Plus 구독을 필요로 합니다.)
App Store와 비교할 수 없을 정도로 빠른 속도로 Xcode를 다운로드 및 설치하는 유용한 툴인 XcodesApp이 새 버전을 출시했습니다. 여러 버전의 Xcode를 설치하고 쉽게 스위칭할 수도 있습니다. 이번 버전에서는 UI의 변화와 함께, iOS 시뮬레이터 등 Platform/Runtime 다운로드도 빠른 다운로드 및 설치를 지원하기 시작했습니다. 이제 30분이면 새 Xcode를 설치하고 사용할 수 있게 됐습니다.
이번 소식이 유용하다면? 다음 소식도 받아보세요! 😊

(주)브레이브모바일 / techmobile@soomgo.com
서울특별시 강남구 테헤란로 415, L7 강남타워 5층
stibee

이 메일은 스티비로 만들었습니다