axios 인스턴스를 사용하는 이유는 여러 가지가 있습니다. 주된 이유는 다음과 같습니다:
1. 공통 설정 관리
- axios.create()로 생성된 인스턴스는 기본 URL, 타임아웃, 헤더, 파라미터 직렬화 방식 등 공통적으로 사용되는 설정을 하나의 인스턴스에 정의할 수 있습니다. 이렇게 하면 특정 API와 통신할 때 매번 동일한 설정을 반복할 필요 없이, 인스턴스를 사용해 간단하게 요청을 보낼 수 있습니다.
- 예를 들어, API의 기본 URL이나 공통적으로 필요한 인증 토큰, 또는 기본 헤더 등을 인스턴스에 설정해 두면, 개별 요청 시에 이러한 정보를 일일이 지정할 필요가 없어집니다.
2. 코드의 재사용성 향상
- 공통된 설정을 가진 인스턴스를 여러 곳에서 재사용할 수 있어 코드의 중복을 줄일 수 있습니다. 이는 코드의 유지보수성을 높이고, 일관된 방식으로 API 요청을 관리할 수 있도록 해줍니다.
- 또한, 인스턴스를 사용함으로써 새로운 API와의 통신을 설정해야 할 때 기존 인스턴스를 복사하거나 참조해 쉽게 확장할 수 있습니다.
3. 인터셉터(interceptors) 활용
- 인스턴스에 인터셉터를 추가하면 요청이 발송되기 전이나 응답이 도착한 후에 공통으로 처리할 로직을 정의할 수 있습니다. 예를 들어, 모든 요청에 인증 토큰을 자동으로 추가하거나, 응답에서 특정 데이터를 공통적으로 가공하는 등의 작업을 쉽게 처리할 수 있습니다.
- 인터셉터는 특정 API 호출에 공통적으로 필요한 로직(예: 에러 처리, 데이터 전처리 등)을 관리하는 데 유용합니다.
4. 환경 분리 및 관리
- 같은 애플리케이션 내에서도 서로 다른 API를 호출해야 하는 경우가 있습니다. 예를 들어, 하나의 인스턴스는 사용자 인증 API와 통신하고, 다른 인스턴스는 주소 검색 API와 통신할 수 있습니다. 이를 통해 서로 다른 API에 대해 개별적인 설정을 유지할 수 있으며, 환경에 따라 인스턴스를 다르게 설정할 수도 있습니다.
- 예를 들어 개발, 스테이징, 프로덕션 환경에 따라 각각 다른 설정을 적용할 수 있습니다.
5. 유연성
- 인스턴스를 사용하면 특정 요청에서만 별도의 설정을 적용할 수 있습니다. 예를 들어, 기본적으로는 타임아웃을 10초로 설정하지만, 특정 요청에 대해서는 타임아웃을 더 짧거나 길게 설정하는 식으로 유연하게 대응할 수 있습니다.
'STUDY' 카테고리의 다른 글
[라이브러리] react-spring 애니메이션 구현 (1) | 2024.09.29 |
---|---|
[라이브러리] react hook form 유효성 검사하는 폼 만들기 (2) | 2024.09.18 |
<E2E 테스트> playwright E2E 테스트 및 깃허브 CI 설정하기 (1) | 2024.09.14 |
[react-signature-canvas] 전자서명 구현하기 (1) | 2024.09.13 |
session 방식의 개념 및 한계와 JWT token 인증 방식 (0) | 2024.09.04 |