Daily Study : 13

dazzling:0
|2025. 9. 30. 01:36
반응형

 

Git Hooks 


git 상의 이벤트마다 자동으로 실행될 스크립트를 지정한다. 

 

.git 폴더 안에 hooks라는 폴더가 있고, 파일의 이름은 각각이 언제 실행되는가를 나타낸다. 

예시)

pre-commit : 커밋이 이뤄지기 전(커밋 명령어 직후~)

pre-push : 푸시가 이뤄지기 전(푸시 명령어 직후~)

 

 

Java


| 문제와 풀이 

(복습 #2) 

 

 

Spring Boot Restful


데이터베이스에 존재하지 않는 것을 조회 했는데 실패가 아니라 성공하게 되는 문제가 발생했다. 상태값이 200 OK로 나오는 문제인데, 이것을 적절하게 예외를 처리 해줘야 한다는 것을 알게되었다. 

 

직접 예외 클래스를 만들어서 진행을 하였고, 그 클래스에서 RuntimeException을 상속 받아서 사용을 하였다. 

그런데도 발생하는 문제는 상태값이 500번대로 나오는 것이다. 500번대로 나오면 안되는 이유가 서버 에러가 발생했을 때 나오는 상태 값이 5xx 번대 인데, 클라이언트가 잘못 요청하여 서버측에 없는 데이터를 요청 하는 것은 404 not found 에러가 맞기 때문이다. 

 

그래서 이러한 해결을 위해 해당 클래스 위에 @ResponseStatus 애너테이션을 추가하면서 옵션 값으로 HttpStatus.NOT_FOUNT를 추가해주고 테스트를 하였더니 404에러가 성공적으로 발생하였다. 의도대로 흘러갔음. 

 

 

여기서 해결 해주어야 하는 문제는.. 500번대 상태값이든 400번대 상태값이든 클라이언트에게 트레이스 정보가 계속 노출이 된다는 것이다. 

 

해결을 해주기 위해 Exception 클래스를 하나 더 만들어주는데 이 만들어주는 클래스는 ResponseEntityExceptionHandler를 상속받아서 해결을 해보았다. 

 

 

첫 번째 해결방법으로 아래 사진에 있는 ExceptionResponse 클래스를 생성하여 사용자에게 보여줄 응답에 대한 것만 필드로 가지고 있게 한 다음 위 사진에서 보는 것처럼 모든 예외가 발생했을 때 handleAllExceptions 라는 메서드가 받을 수 있게 하였다. 

사용자에게 전달해줄 목적으로 만들 ExceptionResponse 라는 클래스를 생성하면서 예외가 발생한 메시지를 생성할 때 넣어주고 트레이스 정보는 false 설정으로 보여주지 않음으로 설정하였다. 

 

 

그럼 이제 남은 것은 아직도 사용자가 잘못된 접근이나 데이터정보 요청으로 인한 에러가 아직 500번대로 나온다는 것인데, 

 

 

이 메서드로 해결할 수 있었다. ExceptionHandler 애너테이션에서 옵션값으로 모든 예외가 아닌 내가 만든 예외 클래스, 예외로 잡을 수 있게 지정을 해주었더니 500번대 상태값도 해결할 수 있었다. 

728x90
반응형

'TIL & STUDY' 카테고리의 다른 글

TIL 15 : URI 버전관리와 다국어 언어 처리  (0) 2025.10.02
Daily Study : 14  (0) 2025.10.01
Daily Study : 12  (1) 2025.09.29
Daily Study : 11  (0) 2025.09.27
Daily Study : 10  (0) 2025.09.26