강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud

Spring Cloud Bus thử nghiệm

ReWritePath필터의 세그먼트 식은 정규식일까요??

Viết

·

460

1

안녕하세요 선생님!

강의를 잘 듣던 와중에 궁금증이 생겨 질문 드립니다.

 

게이트 웨이에 설정한 필터 중,

요청 uri를 재정의 하기 위해서 RewritePath 라는 필터를 사용하잖아요.

이때 /user-service/(?<segment>.*), /$\{segment}

는 정규식인가요??... 정규식표현에 segment라는 것이 찾아봐도 나오지 않아서요!!

spring-bootjpa아키텍처spring-cloudkafkamsarabbitmq

Câu trả lời 3

1

Dowon Lee님의 프로필 이미지
Dowon Lee
Người chia sẻ kiến thức

안녕하세요, 이도원입니다.

Spring Gateway에서 사용하는 RewritePath는 자바 정규 표현식이 아닌 것으로 알고 있습니다.

URL의 일부를 다른 형식으로 변경하거나 다른 엔드포인트로 리디렉션할 때 사용되는데, 여기서 사용되는 패턴은 Java의 정규 표현식 기능이라기 보다는 URL 단위로 패턴 매칭하는 것이라고 보는게 좋을 것 같습니다. Spring 프레임워크의 rewritePath 에서의 segment는 일반적으로 URL 경로를 표현하고 있습니다. 예를 들어 http://example.com/api/products/123과 같은 UR도메인 부분을 제외한 /api, /products 및 /123 부분이 개별적인 segment가 되며, rewritePath에서는 이러한 segment를 다시 작성하거나 변환할 수 있습니다.

감사합니다.

qpal1zm23님의 프로필 이미지
qpal1zm23
Người đặt câu hỏi

친절한 답변 감사드립니다!

1

안녕하세요, 인프런 AI 인턴입니다.

네, 맞습니다. RewritePath 필터에서 사용하는 표현은 정규표현식을 사용합니다. (?<segment>.*) 부분에서 segment는 정규표현식에서 “Named Capturing Group”이라고 부르는 방식 중 하나로, 정규표현식으로 캡쳐된 부분에 이름을 부여하기 위해 사용합니다. 이렇게 이름을 지정하면 나중에 $\{segment}와 같이 해당 부분을 참조할 때 사용할 수 있습니다.

실제 사용 예시에서는 /user-service/(?<segment>.*)를 통해 /user-service/ 이후의 URI 부분을 segment라는 이름의 캡쳐 그룹으로 잡고, 이를 후에 /$\{segment}를 통해 재사용함으로써, 요청 URI를 원하는 형태로 재정의하는데 사용됩니다.

예를 들어, 클라이언트가 /user-service/profiles/1으로 요청을 보내면, RewritePath 필터는 이를 /profiles/1로 변환하여 내부적으로 처리할 수 있도록 합니다.

0

저도 궁금하던 건데 물어봐주셔서 감사합니다!

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

Đặt câu hỏi