프로젝트

RN(React Native) 시작 전 마음의 준비: RN이 뭔데?

불닭냠냠 2026. 5. 17. 17:35

요즘 RN으로 앱 만들어보려고 이것저것 알아보는 중인데, 처음엔 진짜 단순하게 생각했다.

React 할 줄 아는데 앱도 비슷하지 않을까?

근데 알아볼수록 느낀 건 React Native는 React 느낌의 모바일 개발이지, 웹 React를 그대로 가져온 건 아니었다.

그리고 이걸 먼저 이해해야 멘탈이 덜 흔들릴 것 같았다.


React Native는 왜 이름이 React Native일까?

처음엔 그냥 React로 Native 앱 만든다 정도로 이해했는데, 조금 다르다...

핵심은 1. React는 그대로 사용 2. 대신 렌더링 대상이 브라우저가 아니라 모바일

 

웹은 React → 브라우저 DOM 인데,

RN은 React → iOS / Android 네이티브 UI로 간다.

 

그러니까 RN은 웹사이트를 앱에 넣는 게 아니라, 실제로 네이티브 UI를 그리는 방식이었다.


그래서 div가 없음

이거 보고 제일 충격받았다. <div> 못 쓴다...!!

대신 <View> / <Text> 이런 거 사용한다... RN에는 DOM 자체가 없기 때문이다 ㅠ

 

생각해보면 당연한 게, 앱에는 브라우저가 없으니까 HTML도 없는 거였다.


CSS도 내가 알던 CSS가 아니었음

이 부분이 제일 신기했다.

처음엔 "Tailwind 쓰면 거의 웹처럼 하겠네?" 라고 생각했는데 아니었다.

RN은 브라우저 CSS 엔진이 아니라서

  • grid 없음
  • hover 없음
  • pseudo element 없음
  • fixed 느낌도 다름

즉 CSS처럼 보이는데 사실은 네이티브 View 속성 조작에 가까운 느낌이라고 한다.

여기서 약간 "아… 이건 웹이 아니구나" 감각이 왔다.


내가 제일 걱정되는 부분

사실 React 자체는 별로 안 무서울 것 같다.

  • hooks
  • 상태관리
  • TS
  • API
  • 컴포넌트 구조

이런 건 거의 비슷해보였는데, 문제는 모바일 플랫폼 자체였다.

특히 많이 보이고 들리는건 (회사에서 다른 팀에서도 겪고 있는 문제라 자주 들린다ㅎ)

  • keyboard 지옥
  • Android/iOS 차이
  • safe area
  • 네이티브 권한
  • 빌드 환경
  • 앱스토어 배포

특히 "Android 왜 이래?" 이걸 많이 겪는다고 해서 벌써 무섭다.

사실 몇 년전 졸업프로젝트 때 안드 에뮬레이터가 너무 느려 화가 났던 경험도 있어서 더더욱 두려워졌다....


근데 또 재밌어보이긴 함

웹보다 오히려 단순한 부분도 있다는 점도 흥미 포인트

Next.js처럼

  • SSR
  • hydration
  • SEO
  • 서버 컴포넌트

이런 게 없어서 상태 흐름은 더 단순하다고 합니다. 오....

대신 "운영체제 위에서 동작하는 앱" 이라는 감각이 강한 느낌...?


아직 시작도 안 했지만 느낀 점

지금까지 알아본 걸 정리하면 RN은 React를 배우는 느낌보다, 모바일 개발 감각에 적응하는 느낌에 가까워 보인다.

그리고 웹 개발자가 생각보다 많이 착각하는 게 "React니까 거의 비슷하겠지" 인 것 같다.

딱 알맞은 예시는 아니지만 java랑 javascript 관계가 뭐야? => 인도와 인도네시아 급

 

나도 지금 딱 그 단계라서, 일단은 마음의 준비부터 하고 차차 도전해보려고 한다.

AI 활용해서 개발을 하긴 할거지만, 의문 점이나 배운 점 등을 꾸준히 작성해야겠다.