📖 오늘의 학습
제목에는 괴랄한이라고 적어놨지만, 사실 그렇게 괴랄한 구조는 아니다. 하지만 보통은 예상하기 어려운 구조로 전달을 받았다. 일반적으로 생각하고 그리고 바라는 JSON 구조는 약간 이런 식이다.
{
"key" : value
}
그러나 이번에 내가 받은 구조는 이런 식이었다.
[
"string",
"string",
"string"
]
이런식으로 들어오지 않는다고 암묵적인 약속을 받고, 전체적인 시스템을 짜놓고 개발을 하고 있었는데 이렇게 약속과 다른 형태로 넘어오니 조금 당황스러웠다. 이래서 백엔드랑 소통을 잘해야한다고 하는거구나를 정말 뼈저리게 느꼈다. (근데 저번에 이렇게 주지 말라고 했는데 계속 이렇게 주면 내가 뭘 할 수 있는게 없다...)
원래 시스템에서는 json을 `Map<String, dynamic>`으로 강제 형변환하여 받았다. json이 `List`로 들어와도 `List`의 원소들이 `Map<String, dynamic>`이면 문제없이 파싱이 가능하기에 강제 형변환을 하여 받았다. 하지만 이번에는 `List<String>`으로 들어오는데, `String`은 Map<String, dynamic>의 서브 타입이 아니기 때문에 강제 형변환이 안된다.
한참 고민하다 사수님에게 해답을 들었는데... 이런 경우 그냥 기존에 짜둔 시스템을 무시하고 코딩하는수밖에 없다는 것... 백엔드가 바꾸는게 아니라면 시스템을 바꾸는 것 말고는 답이 없는 상황이다. 그래서 기존에 짜둔 시스템을 무시하고 새로 파싱 함수를 받아서 개발했다.
=> 결론 : 이런 경우 그냥 새롭게 짜라.
🤔 오늘의 회고
많은 걸 느낀 하루다. 정확히 명시를 해야한다는 것을 확실히 느꼈다. 개발을 할 때 애매모호한 것이 있어서는 안된다. 기획부터 클래스까지 그 어떤 것도 애매한 것이 생겨선 안된다. 그렇기에 계속해서 소통해서 애매모호함을 줄이고 동상이몽을 줄여야한다.
'TIL' 카테고리의 다른 글
[TIL] 99클럽 코테 스터디 35일차 TIL : 클린 아키텍쳐 (0) | 2024.12.01 |
---|---|
[TIL] 99클럽 코테 스터디 34일차 TIL : null check (0) | 2024.11.30 |
[TIL] 99클럽 코테 스터디 32일차 TIL : 구글 맵 (0) | 2024.11.28 |
[TIL] 99클럽 코테 스터디 31일차 TIL : AutomaticKeepAliveClientMixin (0) | 2024.11.27 |
[TIL] 99클럽 코테 스터디 30일차 TIL : 팀을 위한 RestAPI 규칙 (0) | 2024.11.26 |