07_트러블슈팅

김민창·2022년 7월 27일
0

trouble shooting

목록 보기
8/11
post-thumbnail

이슈

  • 인터셉터를 사용해 공통적으로 처리하고자 한 부분이 있었는데, 인터셉터가 걸리면 안되는 부분도 인터셉터가 걸린다

  • 원래코드는 보시다시피 /boards/{boardId}/**로 지정했으며 Long타입인 boardId값이 들어오는 경우만 인터셉터에 들어가야한다

  • /boards/1, /boards/2/members와 같은 API는 인터셉터에 걸리게,
    /boards/members, /boards/tags/1와 같은 API는 인터셉터에 걸리지 않게 하고싶었다

  • 하지만 예시로 적은 API 모두 인터셉터에 걸리며, boardId를 활용하여 검증하는 과정에 타입에러가 발생한다

  • 원래코드

해결

  • 정규 표현식을 사용했다

정규표현식

표기설명
^문자열의 시작
$문자열의 끝
.임의의 한 문자
*문자가 0번 이상 발생
+문자가 1번 이상 발생
?문자가 0번 혹은 1번 발생
[ ]문자의 집합 범위를 나타냄
[0-9]: 숫자 (0부터 9)
[a-z]: 알파벳 (a부터 z)
앞에 ^가 나타나면 not을 의미
{ }횟수 또는 범위를 의미
( )소괄호 안의 문자를 하나의 문자로 인식
|or 조건
\s공백문자
\S공백문자가 아닌 나머지 문자
\w알파벳이나 숫자
\W알파벳이나 숫자를 제외한 문자
\d[0-9]와 동일
\D숫자를 제외한 모든 문자

출처 및 더 자세한 설명

profile
개발자 팡이

0개의 댓글