배경: 소상공인의 콘텐츠 생성 흐름
SORI는 소상공인의 마케팅 콘텐츠 생성을 돕는 졸업작품입니다. 아이디어를 제안하고 생성 입력·결과·기록·가게 관리 화면을 개발했습니다.
개발 경험이 적은 팀원들과는 대면 스터디, 작은 작업 단위와 주간 체크인으로 협업했습니다. 아이디어를 제품 흐름으로 구체화하는 일과 팀의 개발 준비를 함께 맡은 경험입니다.
문제: 진행률이 끝나면 결과보다 먼저 이동
콘텐츠 생성에는 시간이 걸리는데 화면의 진행률이 먼저 끝나 결과를 받기 전에 홈으로 이동하는 문제가 있었습니다. UI가 표현하는 진행과 서버의 응답 완료가 서로 다른 상태였기 때문입니다.
- 입력 제출생성 요청 시작
- 진행률 표시화면에서 대기 표현
- 진행률 종료응답 완료와 무관
- 조기 이동결과를 받기 전에 홈으로
진행률은 서버가 처리한 실제 작업 비율이 아니었습니다. 표시가 끝났다는 신호를 생성 성공이나 이동 조건으로 취급하면 요청 시간이 길어질 때 문제가 드러납니다.
선택: 화면 이동의 기준을 결과 ID 수신으로
결과를 기다리는 상태와 화면 이동을 분리했습니다. 생성 요청이 진행되는 동안 화면은 대기 상태에 머물고, 실제 결과 ID를 받았을 때 결과 화면으로 이동하도록 수정했습니다.
| 판단 대상 | 수정 전 문제 | 수정 후 기준 |
|---|---|---|
| 화면 진행률 | 종료가 화면 이동으로 연결 | 대기 표현으로 사용 |
| 생성 성공 | 진행률 종료와 혼재 | 응답의 결과 ID로 확인 |
| 결과 화면 이동 | 결과 수신 전 홈 이동 가능 | 결과 ID 수신 뒤 해당 결과로 이동 |
| 지나치게 긴 대기 | 별도 정책 필요 | 기존 별도 타임아웃 유지 |
구현 흐름: 결과·대기·타임아웃 구분
- 생성 요청입력 전달
- 대기 유지진행률과 이동 분리
- 결과 ID 수신이동할 결과 식별
- 결과 화면해당 결과 표시
진행률 표시 종료:
이것만으로 홈이나 결과 화면으로 이동하지 않음
결과 ID 수신:
해당 결과 화면으로 이동
별도 타임아웃:
기존 타임아웃 정책 유지무제한으로 기다리게 하거나 모든 생성 실패를 해결한 변경은 아닙니다. 수정한 범위는 결과 수신 전 조기 이동과 결과 ID를 받은 뒤의 전환입니다.
주변 흐름과 팀에서 맡은 범위
생성 폼에 다시 들어올 때 단계와 입력 상태를 초기화하고, 사용자 조회 결과를 기준으로 대표 가게를 표시하는 작업도 맡았습니다.
제가 개발한 영역은 생성 입력을 API로 제출하고 결과를 보여주는 프론트엔드 흐름입니다. 콘텐츠 생성 모델은 담당하지 않았습니다.
결과 수신을 기준으로 화면을 전환했습니다
PR #13에서 진행률 표시와 화면 이동을 분리하고, 실제 결과 ID를 받았을 때 결과 화면으로 이동하도록 바꿨습니다. 변경·병합 기록으로 확인되는 것은 이 프론트엔드 동작이며, 운영 중 생성 성공률이나 마케팅 효과를 측정한 결과는 아닙니다.
돌아보며: 사용자가 보는 진행과 실제 완료의 차이
생성형 기능의 대기 화면에서는 시간이 흐른다는 표현과 작업이 완료됐다는 근거를 구분해야 했습니다. 이 사례에서는 결과 ID라는 실제 응답을 화면 이동의 기준으로 사용했습니다.
팀에서는 작은 작업 단위와 주간 체크인으로 구현을 이어갔습니다.