-
1월 28일 -Flutter 3CodeingTestPrac 2022. 1. 29. 18:09
Flutter 와 서버를 서로 연결하는법
server - serving , 서빙하는 직업에서 온 단어 ,
지금 이해한 바로는 데이터를 전달, 요청을 들어주는 역할로 이해를 한다.
server ex)
FireBase , Spring cloud , gcp ?
JSON :
JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다.
데이터의 자료구조 중하나로 서버 api 를 통해 전달 받는 데이터의 형식중 하나.
JSON 의 문자열 1 . map (key - value) : { } 로 포장되어있다. , 2 . List of Maps [] 로 포장되어있다.
JSON 을 서버에서 받아올때 우리는 dart (flutter 언어) 에 맞는 형식이 필요하다.
즉 변환하는 코드가 필요하다. 표현을 하면 : JSON -> PODO (Plain Old Dart Object)
----------------------------------------------------------------
의문 : flutter 는 why ? Dart ?
dart : 2011 Google 이 개발한 Client-side language
Client-side : a.k.a front-end / opposite Server-side ,
Dart 는 배포시 사용하는 컴파일 방식과 개발시 사용하는 컴파일 방식이 다르다.
JIT (Just In Time compile , ex Hot Reload.). pros : more confidence in Develop app , / cons : slow building at compile verse as native app
AOT(Ahead Of Time Compile) : pros : progress in runtime ,
Snapshot :최초 실행시 파일 몇개를 미리 올려서 로딩속도를 빠르게 한다.
Flutter 코어 개발자가 Dartlang 코어 개발자다.
json_serializable/
->>>>> flutter 에서 제공하는 JSON 을 다루는 라이브러리 같다 .
----------------------------------------------------------------
다시 돌아와서 , 변환하는 코드가 필요하다. 표현을 하면 : JSON -> PODO (Plain Old Dart Object)
이를 위해 factory method 를 이용한다,
factory User.fromJson(Map<String, dynamic> userMap) { return User( userId: userMap['id'], name: userMap['name'], email: userMap['email'], phone: userMap['phone'], company: userMap['company'], );
factory method : Json deserialize
serialize : data -> string 변환
deserialize : 위작업의 반대
Map<String, dynamic> 은 String key 와 dynamic value로 이루어진 map 이라고 정의.
key 는 언제나 문자열 , value 는 유동성을 위해 dynamic
if , json is map's list -> Map<String, String>
post mode : ?
import 'package:http/http.dart' as http;
응답 예상 json file code maybe { "id": 1, "name": "Leanne Graham", "username": "Bret", "email": "Sincere@april.biz", "address": { "street": "Kulas Light", "suite": "Apt. 556", "city": "Gwenborough", "zipcode": "92998-3874", "geo": { "lat": "-37.3159", "lng": "81.1496" } }, "phone": "1-770-736-8031 x56442", "website": "hildegard.org", "company": { "name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets" } },
'CodeingTestPrac' 카테고리의 다른 글
2월 9일 (0) 2022.02.09 2월 1일 -Flutter,Flash app ,Class, navigation button, Heroaction (0) 2022.02.01 1월 31일-Flutter 4 /json 파싱 (0) 2022.01.31 Flutter2 (0) 2022.01.21 Flutter 1 (0) 2022.01.20