스프링
뉴스피드 프로젝트 예외처리
148june
2025. 4. 8. 13:29
친구 삭제 기능에서 RuntimeException 사용 이유
상황 설명
친구 기능 구현 중, 친구 삭제 기능을 만들면서 이런 조건이 필요했어:
친구 관계에 있는 사람만 삭제할 수 있어야 함
즉, 내가 친구 관계에 포함되지 않았는데 누군가를 삭제하려 하면 예외가 발생해야 함.
그래서 다음과 같이 예외 처리를 넣었어:
if (!friend.getUserrequest().equals(currentUser) && !friend.getUserreceiver().equals(currentUser)) {
throw new RuntimeException("친구 목록에 없는 사용자입니다.");
}
여기서 사용된 RuntimeException이란?
RuntimeException은 자바에서 실행 중 발생하는 예외를 처리할 때 사용하는 클래스.
- 컴파일 시점에 강제로 예외 처리를 요구하지 않기 때문에 (unchecked exception) 비교적 간단하게 사용할 수 있음
- 코드의 흐름에서 개발자가 명시적으로 예외 상황임을 표현할 때 자주 사용
왜 RuntimeException을 사용했나?
이 상황은 사용자 입장에서 보자면 “삭제할 수 없는 대상에 대한 요청”이기 때문에,
정상적인 흐름이라기보다는 예외 상황입니다.
예외가 발생할 수 있는 대표적인 조건은:
- 친구 관계가 아닌 유저가 삭제를 시도했을 때
- 이미 삭제된 친구 요청을 또 삭제하려 할 때
이럴 땐 RuntimeException을 통해 흐름을 중단시키고,
적절한 에러 메시지를 반환하는 것이 적절합니다.
정리
- RuntimeException은 비정상적인 실행 중 상황을 처리할 때 사용
- 친구 삭제 기능에서는 삭제 요청자가 해당 친구 관계에 없을 때 예외 발생
- 메시지를 개선하여 더 직관적인 사용자 경험 제공