더북(TheBook)

프런트엔드 개발을 많이 해보지 않았다면 컴포넌트라는 개념이 익숙하지 않을 수도 있습니다. 컴포넌트는 재사용 가능한 유저 인터페이스 블록이라고 이해하면 됩니다.

리액트 네이티브에는 Text 컴포넌트 말고도 Button, View, TextInput, FlatList 등 수많은 컴포넌트가 내장되어 있습니다. 컴포넌트를 사용할 때는 자바스크립트 형식의 파일에 페이스북에서 만든 JSX라는 문법을 사용해 코드를 작성합니다. JSX로 코드를 작성하면 리액트 네이티브로 만든 앱 안에 내장된 스레드에서 이를 인식해 어떤 네이티브 컴포넌트를 보여줘야 할지 연산한 다음, 우리가 원하는 UI를 화면에 보여줍니다.

또한, 리액트 네이티브는 네이티브 플랫폼의 API들을 자바스크립트로 호출할 수 있게 해줍니다. 이를테면 알림, 날짜 선택, 클립보드, 키보드 제어, 진동과 같은 작업들을 자바스크립트로 구현할 수 있습니다. 하지만 네이티브 플랫폼의 모든 API를 바로 사용할 수 있는 것은 아닙니다. 리액트 네이티브로 호출할 수 있는 API는 리액트 네이티브 라이브러리 안에 API 래퍼(Wrapper)가 내장되어 있지만, 동영상 재생, 카메라 촬영, 파일 선택 등의 기능은 자체적으로 탑재되어 있지 않습니다. 대신 리액트 네이티브는 네이티브 플랫폼의 코드(자바, 코틀린, Objective-C, 스위프트)로 작성한 기능을 자바스크립트로 연동해 호출할 수 있게 해주는 도구들을 제공합니다.

앞으로 리액트 네이티브로 앱을 만들 때, 리액트 네이티브에 자체적으로 탑재되지 않은 기능을 사용해야 할 때도 있을 것입니다. 이 경우 대부분은 서드 파티 라이브러리를 설치해 원하는 기능을 구현할 수 있습니다. 리액트 네이티브의 생태계는 꽤나 성숙한 편이고, 정말 많은 라이브러리가 오픈 소스로 공개되어 있기 때문에 상황에 따라서는 네이티브 코드를 전혀 작성하지 않고 자바스크립트만 사용해 원하는 앱을 완성할 수도 있습니다.

하지만 복잡한 애플리케이션을 만들다 보면 필요한 라이브러리가 존재하지 않거나, 관련 라이브러리가 있어도 여러분의 요구사항에 충족되지 않는 경우가 발생하기도 합니다. 따라서 앱을 개발하는 과정에서 특정 기능을 구현하기 위해 자바(Java), Objective-C 등의 언어를 사용해야 하는 상황이 올 수도 있음을 꼭 염두에 두기 바랍니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.