Community

"예외 케이스의 끝판왕" - 기획서에서 가장 많이 놓치는 '엣지 케이스' 10가지

서비스의 완성도는 '해피 패스(Happy Path, 정상 흐름)'가 아니라 '언해피 패스(Unhappy Path, 예외 흐름)'에서 결정됩니다. 사고를 막고 사용자 이탈을 최소화하는 기획자의 디테일을 챙겨보세요. 1. 데이터가 '0'일 때 (Zero State) 상황: 검색 결과가 없거나, 장바구니가 비었거나, 게시글이 하나도 없을 때. 기획 포인트: 단순히 빈 화면을 보여주지 말고, "검색 결과가 없어요. 이런 상품은 어때요?"와 같이 다음 행동을 유도하는 가이드를 제공해야 합니다. 2. 네트워크 연결이 불안정할 때 (Offline/Timeout) 상황: 엘리베이터나 터널에서 앱을 사용할 때, 혹은 서버 응답이 너무 늦어질 때. 기획 포인트: 무한 로딩 스피너만 보여주기보다 "인터넷 연결을 확인해 주세요"라는 메시지와 함께 [재시도] 버튼을 제공해야 합니다. 3. 입력값의 '길이'가 극단적일 때 (Text Length) 상황: 이름이 20자인 외국인, 혹은 상품명이 100자가 넘을 때. 기획 포인트: UI가 깨지지 않도록 최대 글자 수를 제한하거나, 말줄임표(...) 처리, 혹은 줄바꿈 규칙을 미리 정의해야 합니다. 4. 권한 거부 상태 (Permission Denied) 상황: 카메라, 위치 정보, 알림 권한을 사용자가 '거부'했을 때. 기획 포인트: 기능을 사용할 수 없는 이유를 친절히 설명하고, [설정으로 이동]하여 권한을 켤 수 있는 링크를 제공해야 합니다. 5. 중복 클릭 및 요청 (Double Click) 상황: 결제 버튼이나 전송 버튼을 성격 급한 사용자가 연타할 때. 기획 포인트: 첫 클릭 시 버튼을 비활성화(Disable) 처리하거나, 중복 요청 방지(Debounce/Throttle) 로직을 개발팀과 논의해야 합니다. 6. 시스템 업데이트 및 버전 불일치 (Version Mismatch) 상황: 구버전 앱을 사용하는 유저에게 신규 기능이 포함된 데이터를 보낼 때. 기획 포인트: 강제 업데이트가 필요한 상황인지, 하위 호환성을 유지할 것인지 정의하고 업데이트 안내 팝업을 설계해야 합니다. 7. 로그인 세션 만료 (Session Timeout) 상황: 앱을 켜둔 채 한참 뒤에 버튼을 눌렀는데 로그인이 풀려있을 때. 기획 포인트: 수행하던 작업 데이터가 날아가지 않도록 임시 저장하거나, 다시 로그인 후 원래 페이지로 돌아오게 하는 '리다이렉트' 처리가 필요합니다. 8. 특수문자 및 이모지 입력 (Input Validation) 상황: 닉네임에 이모지(😀)를 넣거나, 주소창에 SQL 주입 공격성 특수문자를 넣을 때. 기획 포인트: 허용하는 문자 범위를 명확히 정의하고, 불가한 문자가 입력되면 실시간으로 에러 메시지를 노출해야 합니다. 9. 결제/처리 중 앱 종료 (Process Interruption) 상황: 결제 승인 중 전화가 오거나 배터리가 다 되어 폰이 꺼질 때. 기획 포인트: '처리 중' 상태를 DB에 기록하고, 다시 앱을 켰을 때 복구 프로세스(승인 확인 후 완료 처리 등)를 타게 해야 합니다. 10. 계정 상태의 변화 (Account Status) 상황: 탈퇴한 회원, 정지된 회원, 혹은 휴면 회원이 로그인을 시도할 때. 기획 포인트: 각 상태 코드별로 노출할 안내 문구와 복구 절차(본인 인증 등)를 세밀하게 분리해서 기획해야 합니다. 포스팅 마무리 꿀팁 "기획서의 두께는 예외 케이스의 수에 비례합니다." 완벽한 기획이란 모든 케이스를 막는 것이 아니라, 어떤 상황에서도 사용자가 '막다른 길'에 갇히지 않게 출구를 만들어 주는 것입니다. 다음 기획서 작성 시 위 10가지만 체크리스트로 활용해 보세요. 팀 내 신뢰도가 급상승할 것입니다!

알림

알림이 없습니다