인프런 커뮤니티 질문&답변

김용민님의 프로필 이미지
김용민

작성한 질문수

Next.js 시작하기

API 라우트를 이용한 장바구니 삭제 기능 구현

API Routes를 사용하는 기준과 장/단점에 대해서 알고 싶습니다!

해결된 질문

작성

·

446

1

안녕하세요, 강사님 좋은 강의 감사합니다!! 시간 가는지 모르고 빠르게 완강을 하게 되었습니다.API Routes 부분이 조금 헷갈려, 이 부분에 대한 궁금증이 생겨 질문을 남기게 되었습니다.Next.js를 사용하여 API 라우트를 통해 클라이언트에서 서버로 직접 데이터베이스나 외부 서버에 접근하여 클라이언트 단에서 사용할 수 있다는 것을 알게 되었습니다.
  1. API 라우트를 통한 외부 서비스 URL 숨기기 
  2. 서버의 env 사용, 외부 서비스 안전하게 접근.
일반, 서버 DB에 접근해서, 사용하는 것보다 어떤 부분에서 장점이 있는지 크게 와닿지 않아서, 혹시 조금 더 구체적인 실무에서의 API Routes를 활용하는 예시를 좀 더 자세하게 알 수 있을까요? 이를 사용했을 때 서버 DB에 직접 접근했을 때 얻는 것에 비해 가질 수 있는 장점과 단점에 대해 알고 싶습니다.

답변 2

1

안녕하세요 용민님, 좋은 질문 주셨는데 제가 답이 좀 늦었네요 🙂 API 라우트의 장점은 적어주신 2가지가 대표적인거 같아요. 기본적으로 클라이언트에서 바로 REST API를 호출할 때 민감한 개인 정보나 인증 값 때문에 client to server로 하지 않고 server to server로 통신하게 되는 경우가 있는데요. API 라우트로 이런 부분들이 해소될 수 있을 것 같습니다 :)

그리고, 개인적인 경험을 하나 더해드리자면 API Route를 통해서 Next 서버가 서비스 페이지 렌더링 뿐만 아니라 다른 서비스에 API를 제공해 줄 수 있는 API 통로의 역할도 할 수 있는데요. 요건 조직에서 어떻게 API 라우트의 역할을 정의하느냐에 따라 달라질 것 같습니다. 답변이 충분히 됐을지 모르겠네요. 빠르게 수강평 남겨주셔서 감사드리구 좋은 질문 남겨주셔서 감사합니다 :)

jangkeehyo@gmail.com로 메일 주세용 테스팅 강의 수강권 보내드릴게요 ㅋㅋ

김용민님의 프로필 이미지
김용민
질문자

어떻게 활용되는지, 항상 헷갈렸는데, 덕분이 이해가 됐습니다!! 감사합니다!!
메일도 남겼습니다! 좋은 강의 정말 감사합니다!!

0

안녕하세요, 인프런 AI 인턴입니다. 제공해주신 정보 사이에서 Next.js와 관련된 내용은 없기 때문에 직접적으로 Next.js의 API 라우트를 사용하는 기준과 장/단점에 대해 설명드릴 수는 없습니다. 하지만 일반적인 관점에서 Next.js의 API 라우트 사용의 장점은 다음과 같습니다:

  1. 외부 서비스 URL 숨기기: API 라우트를 사용하면 클라이언트 사이드에서 바로 외부 API를 호출하지 않고, 내 서버를 거치게 하여 외부 서비스의 URL이나 키 같은 민감한 정보를 숨길 수 있습니다. 이는 보안상의 이점을 갖습니다.

  2. 서버의 환경변수 사용: 서버에서만 접근 가능한 환경변수를 통해 API 키나 데이터베이스의 비밀번호와 같은 정보를 안전하게 관리할 수 있습니다. 클라이언트에 그러한 정보를 노출하지 않게 됨으로써 보안을 강화할 수 있습니다.

실무에서의 API Routes 활용 예시로는 다음과 같은 경우를 들 수 있습니다:

  • 사용자 인증: 사용자의 로그인 요청을 처리하기 위해 API 라우트를 사용하여 서버측에서 사용자의 인증을 처리하고, 인증 토큰을 클라이언트에 전달할 수 있습니다.
  • 데이터 필터링 및 가공: 클라이언트에서 직접 외부 API를 호출하는 대신, 서버에서 API 요청을 중계하고 응답 데이터를 필터링하거나 가공하여 클라이언트에 전달할 수 있습니다. 이는 네트워크 트래픽을 줄이고, 클라이언트 애플리케이션의 성능을 향상시킬 수 있습니다.

단점으로는 서버 리소스 사용 증가, 서버를 통한 요청 처리에 따른 지연 시간 발생 가능성 등이 있습니다. 항상 프로젝트의 요구사항과 리소스를 고려하여 API 라우트의 사용을 결정하는 것이 중요합니다.

김용민님의 프로필 이미지
김용민

작성한 질문수

질문하기