일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링
- react 심플캡차
- 리액트 심플캡차
- error
- react 상태
- Spring Boot
- spring security 로그인
- SpringBoot
- 스프링 시큐리티
- build
- 깃
- Security 로그인
- react 자동입력방지
- react simple captcha
- 에러
- 백엔드 아키텍처
- spring
- REACT
- spring error
- 스프링 시큐리티 로그인
- Spring Security
- react 캡차
- Docker
- maven
- 계층구조vs도메인구조
- 속도기능개선
- 배치파일로 JDK 버전변경
- 리액트 캡차
- git
- react captcha
Archives
- Today
- Total
I can do it(Feat. DEV)
예약 관련 프로세스 오류 처리 본문
728x90
시설을 대관해주는 사이트를 개발하여 유지보수를 맡고 있었는데
시설이 사용 중이 아닌데 예약이 되었다는 담당자의 연락을 받음.
사용자 화면에서 예약 1, 예약 2 화면이 있는데
시설이 사용 중이지 않으면 예약 1 화면에서 예약 2 화면으로 넘어가지 못하도록 처리를 했었음(개발 당시).
사용자가 뚫은 건지 오류 때문인지 확실히 알 수 없으나,
재발하면 안되는 상황이기에 처리가 필요했음.
먼저 react를 사용한 뷰단에 처리를 시작할려는데, react는 데이터를 주고받는 게 rest ful API형태라서
jsp 같이 화면에서 화면으로 넘어갈 때 처리를 할 수가 없었음.
고심 끝에 이와 같이 처리하기로 함.
1. 예약 1 화면 > 예약 2 화면으로 넘어갈 때 클릭 이벤트 맨 위에 시설의 사용 유무를 판단하여 처리.
if (!facility.enabled) { //시설이 사용중이지 않다면
alert("현재 예약가능한 시설이 아닙니다.");
history.push({ //시설목록화면으로 return
pathname: "/sisulSearch/" + facility.type.id
});
return;
}
2. 예약 2 화면에서 예약 데이터를 insert 할 때 서버 쪽에서 시설 사용 유무를 판단하여 true/false를 리턴하여 처리.
//서버 코드(예약 isnert하는 메소드 부분)
if(!rent.getFacility().isEnabled()){ //시설이 사용중이지 않다면 null 리턴
return null;
}
axios.post(url, {data}) //해당 부분은 실제 코드가 아님.
.then(response => {
if (
response.data //서버와 통신했을 때 data가 있으면 예약완료
) {
history.push({
pathname: "/rent/result",
state: {
result: response.data
}
});
} else { //시설 미사용으로 인해 null을 받으면 에러창 표시 후 시설목록화면으로 리턴
alert(
"해당 시설 예약이 가능하지 않거나 예약 신청에 오류가 발생하였습니다. 관리자에게 문의해주세요."
);
history.push({
pathname:
"/sisulSearch/" + rent.facility.type.id
});
}
})
2번은 결과적으로 뷰단과 서버단 모두 처리를 한 것임.
이와 같이 처리한 이유는 먼저 사용자 편의 때문임.
예약을 하는데 예약 1 화면> 예약 2 화면까지는 잘 넘어갔는데 마지막 예약 완료 때 실패 처리가 되면,
사용자 입장에서는 불만이 나올 것이고 결국 코드를 수정해야 할 수 있음.
두 번 째는 예약을 할 때 오류가 난 것이라서 결국 예약을 insert 할 때 체크하는 게 로직 상 깔끔하다고 생각했음.
이상 끝. 이제 똑같은 오류는 안 떴으면..
728x90
'개발자 모드 > 오류처리' 카테고리의 다른 글
[Git] Spring Boot + React 프로젝트 git에 add 안될 때 (0) | 2023.05.04 |
---|---|
Spring에서 ajax return 404 Error 날 때 (0) | 2023.03.08 |
[Error]The current branch master has no upstream branch. (0) | 2022.12.17 |
Could not determine type for:,at table:,for columns: ... (0) | 2022.10.26 |
[Error]Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: (2) | 2022.10.26 |