[React Native] 데이터 설계1 - 설계할 때 생각할 것들
Nadan Dev Blog
개요
데이터 흐름은 ‘설계’해야 한다. 설계하지 않아도 필요할 때마다 하나씩 만들어 쓸 수 있긴 한데, 그러면 실력이 늘지 않을 뿐만 아니라 십중팔구 끼워맞추기식으로 개발하게 된다. 가설을 세우고, 검증하는 과정을 통해 먼저 생각하는 힘을 기르자.
원칙을 정해서 개발하자. 아직 판단 기준이 서지 못했을 때는 끼워맞추기식으로 하면 안 되고, 먼저 좋든 안 좋든 원칙대로 하고 그 결과를 봐야 한다. 뭘 한지도 모르면 그 결과가 나와도 성장할 수 없다. 데이터 설계할 때도 잘 모르겠으면 스스로 원칙을 정하되, 다만 근거는 두자. 예를 들어 state 값의 위치, component가 온전히 컨트롤할 것인지 아니면 부모에게 access할 수 있도록 할 것인지.
1) 어떤 데이터가 쓰일까
- api 데이터
-
로컬 데이터
- asyc storage
- sqlite
-
디바이스 데이터
- location
2) 데이터 위치 : 어디서 관리하면 좋을까
- context에서 관리할 데이터
- 화면(screen page)에서 관리할 state
- 컴포넌트에서 관리할 state
3) 데이터(state) 흐름 : 데이터가 어떻게 움직일까
- 데이터(state)가 각 컴포넌트(component, hook, screen, context)에서 어떻게 흘러다니는지
- 데이터 flow 설계는 state가 어디에 있고, 어디로 흘러가지는지 파악해 내는 것
opt1) state를 component가 아니라 부모 screen에서 관리해주자. 현재 SearchBar에 term state가 있는데, state 관리는 부모에서 할 것
opt2) food에서 좀 착각한 게 있는 듯. component에 state를 다룰 때 무조건 부모에게 state가 있어야 하는 것이 아니고 해당 데이터를 사용하는 곳에 있어야 하는 듯. food에서는 result값을 받아오고 세팅하는 곳이 메인 화면이었던 것이고, blog에서 InputForm은 save를 눌렀을 때 그 데이터를 처리하는 곳에 InputForm이니까 외부에서 받아올 이유는 없음
• 결정할 사항
- searchbar에 term이 있는 것과 메인 스크린에 있는 것의 차이는?
-
item을 클릭했을 때 넘어가는거랑, import 한 곳에서
→ state를 부모에서 관리해줄 것인지 각 component에서 관리해줄 것인지