JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] API Gateway를 활용해 클라이언트가 접근할 API 제한하기

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
MSA
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 MSA 입문/실전
slug
practice-restrict-access-with-gateway
type
post
updatedAt
Dec 6, 2025 05:47 AM

✅ API Gateway를 활용해 클라이언트가 접근할 API 제한하기

notion image
이전 강의에서 클라이언트가 사용하는 외부용 API와 마이크로서비스 내부에서만 사용하는 내부용 API를 분리했다. 이 구성에서 클라이언트는 내부용 API에 접근할 수 없게 막아야 한다. 그러려면 2가지 처리를 해주면 된다.
  1. 클라이언트는 API Gateway로만 요청을 보낼 수 있게 만들면 된다. (마이크로서비스를 VPC 내부에 구성함으로써 외부에서 접근할 수 없게 만들면 된다.)
  1. 클라이언트가 API Gateway를 통해 요청을 보낼 수 있는 API를 외부용 API에 한해서만 오픈하면 된다.
 
여기서 첫 번째 언급한 VPC 구성은 클라우드 환경 내에서 구성해야 하기 때문에 이번 강의에서는 다루지 않을 것이다. 대신에 두 번째 언급한 내용은 API Gateway에 작성한 코드 일부만 수정해주면 된다. 따라서 API Gateway의 코드를 수정해 클라이언트가 외부용 API에만 접근할 수 있도록 바꿔보자.
 
 

✅ 코드 수정하기

api-gateway-service에서 코드를 수정하면 된다.
  1. API Gateway의 라우팅 설정 변경하기
    1. 외부 API가 존재하는 user-service와 board-service만 라우팅을 설정하면 된다.
      application.yml
      server: port: 8000 spring: cloud: gateway: server: webflux: routes: - id: user-service uri: http://localhost:8080 predicates: - Path=/api/users/** - id: board-service uri: http://localhost:8081 predicates: - Path=/api/boards/** - id: point-service uri: http://localhost:8082 predicates: - Path=/points/**
       
  1. 잘 작동하는 지 테스트하기
    1. [게시글 전체 조회 API - 외부용 API]
      notion image
       
      [사용자 정보 조회 API - 내부용 API]
      notion image
      API Gateway 설정에 해당 주소를 작성해주지 않았더니, 해당 마이크로서비스에 접근이 차단되는 걸 알 수 있다. 즉, 클라이언트가 API Gateway에서 설정해놓은 외부용 API에만 접근이 가능하고, 내부용 API에는 접근이 차단된 걸 확인할 수 있다.
       
 
author
JSCODE 박재성
category
MSA
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 MSA 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:45 AM
📎
이 글은 비전공자도 이해할 수 있는 MSA 입문/실전 강의의 수업 자료 중 일부입니다.