이번 글은 에러 페이지를 만들던 중 맞이한 띠용하는 상황을 간단하게 적어 볼 예정이다. 가볍게 보자.
repository에서 쿼리 메서드를 사용한 경우 Optional 타입을 값을 반환받는 경우가 있다. 원래는 그럴 일 없어. 라 생각하고 무조건 .get()으로 꺼내서 사용했다. 하지만 리팩토링을 진행하면서 이 부분을 확인하는 코드를 작성하여 null일 경우 따로 작성한 error 페이지로 이동하도록 하였다. error 페이지는 간단하게 error임을 알려주고 main화면으로 돌아가는 버튼을 넣어 두었다.
이때 처음보는 것을 봤다. 이름하여 상태 코드 999,,,
처음 보는 상태 코드에 당황한 나는 여러 검색을 해보았다. 하지만 999의 의미는 없고 커스텀한 가능성이 높다고 했다. 하지만 나는 상태 코드를 커스텀한 적이 없던걸.... 당황해서 검색만 계속하다가 느낌상 한번 url을 /error -> /errorPage로 바꾸었더니 내가 만들어둔 페이지로 잘 연결되었다. 그래서 /error라는 것이 문제구나. spring 사용할 때는 /error url은 뭔가 처리가 되어있으니 사용하지 않아야겠다라고 결론 내리고 끝났다.
그래도 궁금해서 나중에 더 찾아보니 100프로 정확하다 할 수 없다. 자료가 거의 없기 때문이다. 그 정보들을 모아모아 내린 결론은 /error는 springboot에서 오류를 처리하기 위해 이미 설정해둔 기본 url이여 서다. springboot가 자체적으로 /error를 오류를 처리하기 위해 설정해 둔 url인 것은 팩트이다. 그걸 아마 내가 같은 url로 접근해 다른 view를 호출하도록 해서 나온 오류인 것 같다.
'My project > inflearn_clone?' 카테고리의 다른 글
@ModelAttribute 동작 방식, 타임리프 th:object th:field 사용하기, dto에 setter 사용 (0) | 2023.08.20 |
---|---|
다대다 관계 해결하기. (@ManyToMany, @JoinTable, 연결 테이블 기본키) (0) | 2023.08.11 |
Repository와 Service 분리하기 (단일 책임 원칙) (1) | 2023.07.30 |
@Transactional 이해하고 사용하기 (트랜잭션이란?) (0) | 2023.07.24 |
절대 경로 VS 상대 경로 (a 태그 href 속성에 /를 작성해야 할까?) (0) | 2023.07.19 |