JavaScript/React Native 4

리액트 네이티브 안드로이드 앱에서 HTTP 프로토콜 제한 해제

리액트 네이티브에서 웹 서버로부터 데이터를 가져오는 가장 보편적인 방법 중 하나가 바로 fetch() 메소드의 사용이다. 그런데, 안드로이드 9 (Oreo) 버전부터 이 fetch() 메소드와 같이 데이터를 가져오기 위한 통신을 할 때에 HTTP 프로토콜을 사용할 수 없게 된다. 별다른 설정을 하지 않을 경우, HTTP 프로토콜을 사용해서 데이터를 가져오려고 하면 에러가 나게 되는 것이다. 이에 대한 해결 방법으로는 크게 2가지가 있다 - 1) HTTP 대신 HTTPS 사용 2) AndroidMenifest.xml 파일 수정하기 1) HTTP 대신 HTTPS 사용 당연히 가장 기본적인 방법은 HTTP 대신 HTTPS 프로토콜을 사용하는 것이다. HTTPS를 사용하는 것이 보안 상으로도 더욱 안전하니 별다..

bind()와 화살표 함수 (arrow function)

bind()와 화살표 함수 (arrow function) 리액트에서도 마찬가지겠지만, 리엑트 네이티브에서 컴포넌트에 이벤트 리스너를 추가할 때 (예를 들면 TouchableOpacity의 onPress에 이벤트 리스너를 추가할 때) 흔히 bind()와 화살표 함수를 사용한다. 예를 들어, 버튼을 누르면 "generateList('product')"가 실행되도록 만들고 싶다면 다음과 같은 2 가지 방법으로 구현할 수 있다. 1) bind() Product 2) 화살표 함수 (arrow function) this.generateList('product')}> Product 두 방법 모두 렌더링 시에 함수를 실행시키지 않고, 함수 자체를 리턴시켜서 이벤트 리스너로서 장착시키지만, 한 가지 차이점이 있다. 화살..

리액트 네이티브의 위험과 단점

리액트 네이트비의 위험과 단점 모든 것이 그렇듯 리액트 네이티브도 단점이 없진 않다. 리액트 네이티브가 모든 앱 개발 프로젝트에 적합한 것은 아니니 진행하려는 (혹은 진행하는) 프로젝트에 리액트 네이티브의 도입이 적합한지 잘 판단하고 사용하기를 바란다. 이제 시작한 지 얼마 안 되다 보니 리액트 네이티브의 가장 큰 위험 요소는 다름 아닌 성숙도이다. iOS를 지원하는 버전은 2015년 3월에 공개되었고, 안드로이드의 경우는 같은 해 9월에 공개되었다. 문서들은 아직 미흡하지만 지속적으로 개선되고 있다. iOS와 안드로이드의 일부 기능들은 아직 지원하지 않고 있으며 커뮤니티에서는 여전히 어떻게 개발하는 것이 바람직한 방법인지 찾고 있는 중이다. 희망적인 뉴스는 아직 구현되지 않은 API를 누구나 직접 구현..

리액트 네이티브의 이점

리액트 네이티브의 이점 리액트 네이티브는 기존의 크로스 플랫폼 애플리케이션 개발 방법과는 눈에 띄는 차이점이 있다. 바로 대상 플랫폼의 표준 렌더링 API를 사용한다는 점이다. 자바스크립트, HTML, CSS를 사용하여 모바일 앱을 만드는 기존의 방법들은 웹뷰를 이용하여 렌더링한다. 이러한 기존 방식은 앱을 실행할 때 유난히 성능이 떨어지는 단점이 있다. 게다가, 대상 플랫폼의 UI 요소들을 대개 이용하지 않는다. 이러한 프레임워크들은 네이티브 UI 요소들을 흉내 내려 하지만 결과는 어색하기 일쑤이다. 애니메이션과 같이 아주 섬세한 부분에 대한 리버스 엔지니어링은 엄청나게 노력이 많이 들고 쉽게 구식이 되어버린다. 그에 반해, 리액트 네이티브는 작성한 마크업을 플랫폼에 따라 그에 상응하는 진짜 네이티브 ..