앱이 카드·스쿼드를 서버에서 받습니다
Flutter 앱(flutter/)이 그동안 자기 데이터를 모르고 있었습니다. 스쿼드 판과 선수 카드는 화면만 옮겨져 있었고, 붙박이로 「내 카드 한 장 + 빈 자리」를 그렸습니다. 이번에 그것을 서버에 붙였습니다.
이제 웹에서 만든 팀·팀원·카드가 앱 홈 판에 그대로 뜹니다.
무엇이 달라졌나
| 전 | 후 |
|---|---|
| 판이 붙박이로 빈 자리를 그렸다 | GET /teams/{id}/squad 의 등재가 자기 칸에 앉는다 |
| 붓자국 씨앗이 사용자 id 였다 | 카드의 공개 슬러그 — 같은 카드가 웹과 앱에서 같은 무늬가 된다 |
| 내 자리가 포메이션에 박혀 있었다 | 등재했을 때만, 내가 앉힌 칸에 선다 |
| 카드가 없다는 상태가 없었다 | 안 만들었으면 빈 카드를 그린다(예외가 아니라 정상) |
세 가지 판단
내 팀을 얻는 데 새 경로가 필요 없었습니다. 처음엔 「내 팀 목록」 경로를 요청해야 하는 줄 알았는데, 계약이 이미 GET /me 에 teams[] 를 실어 주고 있었고 앱이 그걸 버리고 있었을 뿐입니다. 요청을 올리기 전에 계약 문서를 먼저 읽어서 막았습니다.
「없음」을 예외로 던지지 않습니다. 카드가 없을 때의 404 는 오류가 아니라 「아직 안 만들었다」입니다. 예외로 올리면 화면마다 try/catch 로 정상 상태를 가려내야 하고, 그러면 진짜 오류(네트워크 끊김·로그인 만료)와 구분이 사라집니다. 404 만 null 로 바꾸고 401·403·500 은 그대로 올립니다.
자리 배치 로직은 웹 것을 재해석하지 않고 옮겼습니다. 웹이 여러 번 데여서 굳은 3단계(내 등재 → 칸이 저장된 등재 → 칸 없는 등재)라, 줄이면 그 사고가 돌아옵니다. 실제로 되돌려 보며 시험이 그 사고를 붙드는지 확인했습니다.
남은 것과 부탁
카드 꾸미기(색·글자 자리·붓 그림·사진) 렌더는 2단계입니다. 사양은 설계 문서에 받아 두었습니다.
미결 항목 둘을 올렸습니다 — 자세한 것은 그쪽에 있습니다:
- 스쿼드 등재의
accepted_at이 계약 문서에 없습니다 (paik47번, 담당 정어진) — 값은 실제로 오는데 3-7절에 안 적혀 있습니다. 문서 보강 부탁이고 코드 변경 요청이 아닙니다 - 카드
mode: 'full'이 카드 폭 전체를 안 덮습니다 (paik48번) — 주석과 CSS 가 어긋나 있습니다. 버그인지 의도인지 눈으로 보고 정할 일이라 어느 쪽도 안 고쳤고, 앱은 웹과 픽셀 동일로 옮깁니다
확인: 테스트 117 → 230, flutter analyze 0건.