문제 상황



게시글만 작성되고 파일 작성은 실패되어 일관적이지 않은 작업으로 인한 데이터 유실 발생
// 게시글 작성 핸들러
function handleSubmitPost(){
postBoard().then((res) => {
const boardId = res
navigate(`/${username}/${boardId}`)
})
}
해결 방안
게시글 작성과 관련하여 다음과 같은 예외 상황이 존재
| 정상적인 실패 | 비정상적인 실패 |
|---|---|
| 401 (Unauthorized) | 500 (네트워크 에러) |
| 403 (Forbidden) | 500 (파일 용량 초과) |
정상적인 실패
사용자의 비정상적인 접근으로 인해 발생하는 예외이기 때문에 데이터 복원과는 무관한 영역 (게시글 작성 자체를 막아야 함)
비정상적인 실패
트랜잭션을 적용해야하는 케이스
500에러 발생 시, 예외 상황별 보상 트랜잭션 적용

기존에 있던 게시글을 업데이트하는 상황

네트워크(500)에러로 인해 파일 작성 실패, 기존 게시글 데이터를 복원

이전 상태의 게시글로 복원 성공
아쉬운 점