TIL

2021.05.30 기록장

Gisungcu 2021. 5. 30. 01:29

To Do

  • Oauth 리팩터링
  • 책 읽기
  •  

Done

  • Oauth 리팩터링
  • 책 읽기
  • 예외 처리

Weekly goal

  • 책 읽기
  • 블로그 읽기

Feeling

오늘은 예외 처리와 oauth 리팩터링을 진행했다.

예외처리는 dan의 코드를 보고 좀 따라 했고, oauth는 다형성으로 풀어보려 했으나 코드가 지저분해져서 성능을 포기하고 클린 코드를 가져가기로 했다.

 

예외 처리

오늘은 예외처리들을 리팩터링 했다. 계층구조를 갖게 했으며 매 예외마다 가지고 있던 상수들을 enum으로 뺐다.

비즈니스 예외와 인증 예외를 만들었다.

비즈니스 예외는 ErrorCode를 가지고 있고 ErrorCode는 enum이다. 

안에는 http code로 쓸 status와 message가 있다. 

이 예외들은 ExceptionHandler에서 잡아서 컨트롤하면 ErrorCode는  ErrorReason을 만드는 데 사용된다.

ErrorReason은 메시지만 가지고 있으며 클라이언트에 보여주기 위한 것이다.

Oauth 리팩터링

 

그냥 매번 io작업을 하기로 했다. 다형성을 중간에 껴 넣으니 코드가 복잡해지고 더러워져서..

 

intercepter에서 cors 예외

제이온님의 블로그에서 본 부분이다.오리진에 요청을 보낼 때 먼저 허락을 받는다. 그 허락의 method는 options으로 보낸다. 

허락이 돌아오면 (200 헤더와 access-con~~) 이제 하고자 했던 진짜 요청을 보낸다.

스프링 코드로 봐도 2번 요청이 들어온다.

 

 

이것을 알기 전의 내 코드는 위의 승인 허가 부분이 없었다. 

즉 처음 options로 요청이 올 때 jwt를 꺼낼 때 없으면 예외를 던지고 그 예외는 400대 에러 코드를 넘겨준다.

그래서 cors 성공 조건 중 하나인 200 ok가 아니니 cors에러가 나는 것이다.

 

하나 또 배운 것은 스프링에서 작성하는 오리진 추가 설정은 필터에서 작동한다. 나갈 때 추가해주나?

 

https://steady-coding.tistory.com/438?category=915380 

 

[우아한 테크코스 3기] LEVEL 2 회고 - 지하철 경로 조회 3단계 미션 2차 피드백을 받아 보다 (107일차

안녕하세요? 제이온입니다. 오늘은 석가탄신일이지만, 인상 깊게 배운 내용과 피드백이 있어서 기록해 두려고 합니다. 에러 핸들링 중 발견한 의문점 이번 지하철 경로 조회 미션은 많은 코드가

steady-coding.tistory.com

https://duooo-story.tistory.com/22

 

Spring을 사용하는 서버에서 CORS 설정 과정에서 발생한 이슈들

신규 기능으로 엑셀 다운로드 기능을 개발하는 도중, CORS문제가 났던 문제를 기록해보려 합니다. 먼저 간략하게 구성도를 그려보면 브라우저(A.com)에서 B.com 으로 호출을 하고 B.com에선 nginx가 프

duooo-story.tistory.com