라우터(Router)와 엔드포인트(Endpoint)의 차이점

Daehyeon Yun·2024년 8월 7일

라우터(Router)엔드포인트(Endpoint) 는 비슷한 개념이지만, 서로 다른 역할과 의미를 가지고 있다.
이 둘을 정확히 구분하고자 포스팅하였다.


🌟 라우터(Router)란?

라우터(Router) 는 클라이언트의 요청을 처리할 특정 경로 와 해당 경로에 매핑된 비즈니스 로직을 정의하는 역할이다.

NestJS 에서 라우터는 컨트롤러(Controller)메소드 데코레이터 를 통해 정의된다. 라우터는 URL 경로와 HTTP 메소드 (GET, POST, PUT, DELETE 등) 를 기반으로 요청을 적절한 비즈니스 로직 으로 전달한다.

import { Controller, Get, Post } from '@nestjs/common';

@Controller('dogs') // 'dogs' 경로를 처리하는 컨트롤러
export class DogsController{
	@Get() // HTTP GET 요청 처리
	findAll(): string{
		return `해당 라우터는 모든 강아지들을 반환합니다.`;
	}
	
	@Post() // HTTP Post 요청 처리
	create(): string{
		return `해당 라우터는 새로운 강아지를 생성합니다.`;
	}
}
  • /dogs : 해당 URL에 대한 요청을 DogsController 가 처리한다. → 라우터 클래스 정의
  • @Get() : 해당 데코레이터는 HTTP GET 요청을 findAll 메소드에 매핑한다.
  • @Post() : 해당 데코레이터는 HTTP POST 요청을 create 메소드에 매핑한다.

🌟 엔드포인트(Endpoint)란?

엔드포인트(Endpoint) 는 특정 URLHTTP 메소드 의 조합으로, 실제로 클라이언트가 접근하는 URI(Uniform Resource Identifier) 를 의미한다.

→ 즉, 엔드포인트는 라우터를 통해 정의되고 특정 기능을 수행하는 컨트롤러 메소드 에 매핑된다.

라우터 예시에서 총 2개의 엔드포인트를 정의할 수 있다.

  • GET /dogs : 모든 강아지를 반환하는 엔드포인트 (findAll 메소드 매핑)
  • POST /dogs : 새로운 강아지를 생성하는 엔드포인트(create 메소드 매핑)

💡요약!

  • 라우터(Router) : 클라이언트의 요청을 적절한 컨트롤러와 메소드로 전달하는 역할을 하는 경로를 정의
  • 엔드포인트(Endpoint) : 특정 URLHTTP 메소드 의 조합으로, 클라이언트가 실제로 접근하는 URI 를 의미한다. 라우터를 통해 정의된다.
profile
열심히 살아야지

0개의 댓글