HTTP 및 RESTful API
HTTP(Hyper Text Transfer Protocol)
- 링크(html 등)를 전달하는 통신 규격
- HTTP는 기본적으로 네트워크 연결로 인해 통신 가능
- 기본적으로 Bit를 전송하는데 좀 더 추상화하면 문자열을 전송
- 문자열을 어떠한 규칙으로 주고받느냐에 대한 규격 설정
- 크게 Request(요청)과 Response(응답) 2가지로 구성
- 스택오버 플로우 HTTP 설명 참조
REST(REpresentational State Transfer)fUL API
- URI(Uniform Resuorce Identifier) : 특정 자원의 위치를 나타내는 유일한 주소
- https://www.naver.com/news
- HTTP method : HTTP request가 의도하는 action을 정의(POST,GET)
- Payload : HTTP request에서 보내는 실제 데이터(Body)
- 여러 리소스들을 URI로 표현하고 그 리소스에 대한 행위를 HTTP method로 정의하는 방식(주로 GET,POST만 사용, PUT,DELETE 밀림)
- 대문자 보단 소문자를 사용하며, 명사로만 구성
장점
- Self-descriptiveness
- 그 자체만으로도 목적이 쉽게 이해가 됨
React Native란?
- 네이티브 웹 어플리케이션을 빌드하게 도와주는 UI 라이브러리
- HTML, CSS을 생성하지 않음
- objective-c(IOS) 및 Java(안드로이드), 마지막 컴파일 시 각각 IOS(objective-c) andoride(java) 네이티브 코드로 실행
- JSX,JS로 작성하면 js가 Objective-c or java로 변환 됨(페이스북 기술)
- 브릿지 역할을 해줌
- 동시 개발 가능
장점
- 자바스크립트를 사용하여 사용 가능
- 커뮤니티가 굉장히 큼
- 많은 회사들이 현재 사용 중
- 수시로 계속 변화 및 발전 중
네이티브 코드란❓
- CPU와 운영체제(OS)가 직접 실행할 수 있는 코드를 네이티브 코드
Andriod vs IOS
- 자바와 코틀린 기반의 andriod (mac ,windows 개발 가능)
- ios objective-c 와 swift (mac에서만 개발 가능)
expo.io
설치
npm install expo-cli --global
expo init my-project
expo.io 특징
- 동일한 JavaScript / TypeScript 코드베이스에서 iOS, Android 및 웹 앱을 개발, 빌드, 배포 및 빠르게 반복
- Xcode 또는 Android Studio를 건드리지 않고 Expo 개발 환경에서 React Native 앱을 빌드 할 수 있도록하는 개발 환경 및 애플리케이션 프레임워크
- 네이티브 기반으로 만들어 진 네이티브를 쉽게 만들 수 있도록 도와주는 툴
- 애뮬레이터 실행, 네이티브 API 호출, 로그 확인, 빌드 등 다양한 기능