API Routes를 사용하는 기준과 장/단점에 대해서 알고 싶습니다!
889
74 asked
안녕하세요, 강사님 좋은 강의 감사합니다!! 시간 가는지 모르고 빠르게 완강을 하게 되었습니다.API Routes 부분이 조금 헷갈려, 이 부분에 대한 궁금증이 생겨 질문을 남기게 되었습니다.Next.js를 사용하여 API 라우트를 통해 클라이언트에서 서버로 직접 데이터베이스나 외부 서버에 접근하여 클라이언트 단에서 사용할 수 있다는 것을 알게 되었습니다.
- API 라우트를 통한 외부 서비스 URL 숨기기
- 서버의 env 사용, 외부 서비스 안전하게 접근.
Answer 3
1
안녕하세요 용민님, 좋은 질문 주셨는데 제가 답이 좀 늦었네요 🙂 API 라우트의 장점은 적어주신 2가지가 대표적인거 같아요. 기본적으로 클라이언트에서 바로 REST API를 호출할 때 민감한 개인 정보나 인증 값 때문에 client to server로 하지 않고 server to server로 통신하게 되는 경우가 있는데요. API 라우트로 이런 부분들이 해소될 수 있을 것 같습니다 :)
그리고, 개인적인 경험을 하나 더해드리자면 API Route를 통해서 Next 서버가 서비스 페이지 렌더링 뿐만 아니라 다른 서비스에 API를 제공해 줄 수 있는 API 통로의 역할도 할 수 있는데요. 요건 조직에서 어떻게 API 라우트의 역할을 정의하느냐에 따라 달라질 것 같습니다. 답변이 충분히 됐을지 모르겠네요. 빠르게 수강평 남겨주셔서 감사드리구 좋은 질문 남겨주셔서 감사합니다 :)
jangkeehyo@gmail.com로 메일 주세용 테스팅 강의 수강권 보내드릴게요 ㅋㅋ
0
안녕하십니까. 강의 정말 잘 듣고 있습니다. 감사합니다!
nextjs를 풀스택으로 사용하는 관점에서
api route를 사용하여 db접근까지 모두 하는 것이 일반적일까요?
0
안녕하세요, 인프런 AI 인턴입니다. 제공해주신 정보 사이에서 Next.js와 관련된 내용은 없기 때문에 직접적으로 Next.js의 API 라우트를 사용하는 기준과 장/단점에 대해 설명드릴 수는 없습니다. 하지만 일반적인 관점에서 Next.js의 API 라우트 사용의 장점은 다음과 같습니다:
외부 서비스 URL 숨기기: API 라우트를 사용하면 클라이언트 사이드에서 바로 외부 API를 호출하지 않고, 내 서버를 거치게 하여 외부 서비스의 URL이나 키 같은 민감한 정보를 숨길 수 있습니다. 이는 보안상의 이점을 갖습니다.
서버의 환경변수 사용: 서버에서만 접근 가능한 환경변수를 통해 API 키나 데이터베이스의 비밀번호와 같은 정보를 안전하게 관리할 수 있습니다. 클라이언트에 그러한 정보를 노출하지 않게 됨으로써 보안을 강화할 수 있습니다.
실무에서의 API Routes 활용 예시로는 다음과 같은 경우를 들 수 있습니다:
- 사용자 인증: 사용자의 로그인 요청을 처리하기 위해 API 라우트를 사용하여 서버측에서 사용자의 인증을 처리하고, 인증 토큰을 클라이언트에 전달할 수 있습니다.
- 데이터 필터링 및 가공: 클라이언트에서 직접 외부 API를 호출하는 대신, 서버에서 API 요청을 중계하고 응답 데이터를 필터링하거나 가공하여 클라이언트에 전달할 수 있습니다. 이는 네트워크 트래픽을 줄이고, 클라이언트 애플리케이션의 성능을 향상시킬 수 있습니다.
단점으로는 서버 리소스 사용 증가, 서버를 통한 요청 처리에 따른 지연 시간 발생 가능성 등이 있습니다. 항상 프로젝트의 요구사항과 리소스를 고려하여 API 라우트의 사용을 결정하는 것이 중요합니다.
클로드 초기 설정
0
2
1
사용자 스코프 설정 파일 적용 문제
0
6
1
클로드코드 유료플랜 할인 방법이 있을까요?
0
18
0
API Error : 400 에러의 원인과 해결방법이 궁금합니다!!
0
16
2
퍼미션 권한 설정 문의
0
18
2
Next.js + Tanstack Query BFF 구조 질문
0
12
1
커서에서 shift+enter가 안됩니다.
0
19
2
mcp 설치를 못하겠어요
0
33
2
라이브러리 관련 질문 있습니다!
0
24
2
노션 학습 자료 권한 요청
0
17
1
globals.css를 삭제하니 404가 나옵니다
0
73
1
ESLint + Prettier 설정 관련해서 질문있습니다
1
305
2
EsLint flat config format 으로 만들어질 때 참고
0
333
1
<img /> 요소 대신 <Image /> 컴포넌트를 사용해야 하는 이유 (성능 최적화)
0
233
2
컴포넌트가 렌더링되어 HTML이 생성되는 곳 (getServerSideProps VS useEffect)
0
229
1
router를 사용할 때 왜 페이지가 갱신되는지에 대한 질문
1
335
2
Image 컴포넌트 width, height 속성
1
239
2
스페이스 + 컨트롤 눌러도 활성화 안되시는분 참고하세요...
3
340
3
파일명 명명 규칙에 대해서 묻고 싶습니다
1
867
2
getServerSideProps에서 axios 호출시
1
369
2
next create-next-app@latest 설치 문제
1
590
2
bun, biome 사용 질문
0
343
2
eslint 오류..
1
626
2
Link 컴포넌트의 prefetching 기능
1
262
1

