예외 처리에 대한 질문입니다.
안녕하세요 강사님.
15강. 유저 업데이트 API, 삭제 API 예외 처리 하기
유저 업데이트 API, 삭제 API 에 예외 처리해 주는 부분을 수강 중인데요
궁금한 점이 있어서 질문 남깁니다.
존재하지 않는 사용자에 대해서 수정하거나 삭제하려는 상황에 대해서 예외 처리를 해주고 있는데,
'존재하지 않는 사용자에 대해서 수정하거나 삭제하려는 경우'가 포스트맨을 이용하여 요청할 때는 일어날 수도 있는 경우겠지만,
사용자는 웹 UI를 이용해서 수정, 삭제하기 때문에 저런 경우가 아예 생기지가 않을 것 같은데,
(화면에 보이는 유저 리스트에서 선택하여 수정하거나 삭제하기 때문에)
그런데도 예외 처리를 해줘야 하는 이유가 있는지 궁금합니다.
답변 1
1
안녕하세요, alice님! 정말 좋은 질문 감사드립니다~ 🙂
alice님께서 말씀해주신 내용이 맞아요! 👍 현재 웹 UI 상으로는 화면에 보여지는 유저를 대상으로만 업데이트 / 삭제 처리를 할 수 있기 때문에 굳이 존재하지 않는 사용자에 대해 처리를 해줄 필요가 없다고 느끼실 수 있습니다.
다만, 2가지 관점에서 말씀드려보겠습니다.
[1. 정말 존재하지 않는 사용자에 대한 요청이 오지 않을까?]
이런 경우를 생각해봅시다!
크롬 창을 2개 열겠습니다. 그리고 2개의 창 모두 유저 목록을 들어가겠습니다.
자 이제 1번 크롬창에서 보이는 첫 번째 유저를 삭제 하도록 하겠습니다.
그럼 실제 DB에는 첫 번째 유저가 없지만 2번 크롬창에서는 여전히 삭제된 유저가 보일겁니다!
그리고 이제 2번 크롬창에서 해당 유저를 삭제하려고 하면
"존재하지 않는 사용자에 대한 요청이 웹 UI를 통해" 일어날 수 있게 되죠
[2. 요청이 웹 UI로만 올까?]
https://techblog.woowahan.com/2645/ 의 "사용자는 다 안다, 사용자의 입력은 무조건 검증한다"를 읽어보시면 도움이 될 거에요!
또한 사실 개발을 조금 아는 사용자라면 꼭 웹 UI로 접근하는 것이 아니라, 개발자 도구를 이용해 API를 확인한 이후 API로 직접 접근할 수 있습니다.
"물론, 직접 API가 호출되어 존재하지 않는 유저를 삭제하려고 할 때 그냥 성공했다고 200 내려주면 될 것 같다"라고 생각하셔도 매우 일리가 있습니다만 (보안상의 이유로 그렇게 할 수도 있습니다!)
아무래도 본 영상이 교육을 목적으로 하고 있고, "예외 처리"에 대한 가장 간단한 방법을 설명드리기 위해서 이런 예제를 집어 넣었다~ 라고 봐주시면 될 것 같습니다. 😊
정말 좋은 질문 감사드립니다. 🙏
답변이 도움이 되었으면 좋겠습니다! 🙇
패키지 구분에 대해 궁금한게 있습니다
0
25
2
리액트 관련 질문이 있습니다.
0
65
2
스프링부트 버전
0
76
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
59
2
33강. UserLoanHistory의 관계성에 대한 질문
1
56
2
Java JDK 버전 문의의 건
0
135
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
90
3
h2 console 접속했을 테이블 질문
1
67
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
79
2
15강. updateUser() 질문
0
57
2
깃허브 질
0
84
2
여기까지 다 끝냈다고 하셨는데
0
79
2
왜안될까요
0
72
2
MySQL 창이안ㄴ뜹니다
0
59
2
포스트맨
0
52
1
spring 개념적인 질문
0
72
2
인텔리제이 샘플코드 실행 안됨 오류
0
142
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
87
1
마이그레이션 오류입니다.
0
175
3
Whitelabel Error Page 오류가 났습니다.
0
166
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
94
3
궁금한게 있습니다.
0
60
2
DTO 관련
0
70
2
궁금한게 있습니다!
0
69
2





