Apr 5, 2021, TIL (Today I Learned) - JSON, UITableView

Inwoo Hwang·2021년 8월 26일
0
post-thumbnail

나 자신을 알자..

부족한 점을 깨닫고 DEADLINE 까지 할 수 있을만큼 최선을 다해서 하자

학습 내용


JSON

JavaScript Object Notation

  • 컴퓨터끼리 데이터를 주고 받을 때 변환 형태를 거쳐서 가게 된다.

  • JSON은 통신할 때 쓰는 데이터 양식이다.

  • JSON은 문자열로 특정한 인스턴스 또는 오브젝트를 표현하는 표기법이다.

  • JSON은 key와 value로 구성된 데이터이다.

Screen Shot 2021-04-05 at 10 10 34 AM

"JavaScript Object Notation is an open-standard file format or data interchange format that uses human-readable text to transmit data objects consisting of attribute-value pairs and array data types (or any other serializable value)"

[출처] 위키페디아

JSON 포맷의 활용방법

  • API에서 데이터를 받을 때

    • 특정 앱에서 facebook으로부터 데이터를 받아야 할 경우 facebook의 API endpoint에게 데이터를 요청하고 API는 필요한 데이터를 JSON 데이터 포맷으로 변환하여 앱으로 전달 해 준다.

Parsing이 정확히 뭐지?

"It is a technical term for processing JSON data into a usable format for your app.

[출처][What is JSON - JSON Parsing in Swift - YouTube](https://www.youtube.com/watch?v=_TrPJQWD8qs)

JSON파일을 사용하려는 앱에 맞게 변환 시키는 작업을 Parsing이라고 봐도 무방하다.

UI Table View

연락처, 친구목록에서 많이 쓰이는 UI

UI TableView의 작동방식

TableView corporation (주) 테이블뷰

TableView == 사장

Table View Datasoure == 데이터관리 총괄 비서

Table View Delegate == UI interaction 총괄 비서

  • 유저가 할일 목록 앱 실행 시 회사는 바빠진다.

목록에 배치되어야 하는 Section(섹션)과 Row(열)을 생성하기 위해

TableView → TableViewDataSource

👨‍🎤 "유저에게 보여줘야 하는 섹션과 Row의 숫자가 어떻게 되는지 또 보여줘야할 cell이 무엇인지 0.01초 안에 정리하고 보고하세요.

  • 졸지에 야근하게 된 TableViewDataSouce는 내리갈굼으로 야근을 피하려 한다.

TableDataSource → CellReuseQueue

😤 "1초 줄게 모든 index path에 해당되는 cell 가져와. 한꺼번에 가져오지말고 각 path당 끝낼 때 마다보고하세요."

  • 겁에 질린 CellReuseQueue는 울먹이며 대답합니다.

CellReuseQueue → TableDataSource

😥 "아직 만들어진 Cell이 없어요ㅠㅜㅠㅜ. 새로 만들어 드릴게요"

테이블뷰 컴퍼니의 밤은 깊어간다. 유저가 목록을 드래그하며 할일 목록을 작성하기 위해 cell을 터치하기 전까지 위 작업은 반복 된다.

  • 수정해야 할 할 일을 발견한 유저는 해당 cell을 터친한다.

TableView → TableViewDelegate

👨‍🎤사용자가 드디어 5번 째 row를 선택했네. 얼른 반응해야 하는데 TableViewDelegate비서 어디갔나?

  • UI interaction 총괄 비서 또한 이제 바빠진다.

🤦‍♂️ 얼른 유저가 원하는 작업물을 화면에 띄어야 겠네! 바쁘다 바빠

이렇게 테이블뷰 컴퍼니의 밤은 깊어갑니다~ 💤

profile
james, the enthusiastic developer

0개의 댓글