상세 컨텐츠

본문 제목

[nestJS] return { accessToken }; 이거 왜 String 리턴을 안하는가

카테고리 없음

by esoesmio 2024. 5. 10. 13:09

본문

JavaScript와 TypeScript에서 객체를 반환하는 방식을 사용하는 이유는 구조와 확장성 측면에서 몇 가지 이점을 제공하기 때문입니다. 코드에서 `{ accessToken }` 형태로 객체를 반환하는 것은 실제로 객체 리터럴을 사용하는 ES6(ECMAScript 2015) 문법의 한 예시입니다. 이 방식을 사용하는 주된 이유들은 다음과 같습니다:

### 1. **응답 구조의 일관성**
객체를 반환하면 응답 데이터의 구조를 명확하게 정의할 수 있습니다. 이는 API를 사용하는 클라이언트 측에서 예상 가능한 응답 형식을 가지고, 쉽게 데이터를 처리할 수 있게 해줍니다. 예를 들어, JSON 형태의 응답을 기대하는 REST API에서는 이 방식이 특히 유용합니다.

### 2. **확장성**
객체 형태로 데이터를 반환하면 나중에 추가적인 데이터 필드를 쉽게 포함시킬 수 있습니다. 예를 들어, 현재는 `accessToken`만 반환하지만, 추후에 `refreshToken`이나 사용자의 권한 레벨 등 추가적인 정보를 같은 객체에 쉽게 추가할 수 있습니다. 이는 API를 수정할 때 호환성을 유지하면서도 기능을 확장할 수 있는 유연성을 제공합니다.

### 3. **명확한 데이터 접근**
객체를 사용하면, 반환된 값에 대한 접근 방식이 명확해집니다. 클라이언트 코드에서 `response.accessToken`과 같이 점 표기법을 사용하여 직접적으로 접근할 수 있습니다. 이는 코드의 가독성을 높이고, 오류 가능성을 줄일 수 있습니다.

### 4. **자바스크립트의 객체 지향적 특성 활용**
JavaScript는 함수형 프로그래밍과 객체 지향 프로그래밍을 모두 지원하는 언어입니다. 객체를 사용하여 데이터를 구성하는 것은 이 언어의 객체 지향적 특성을 활용하는 것으로, 다른 많은 JavaScript 기능과 잘 어울립니다.

### 예시 코드
Java와 같은 전통적인 객체 지향 언어에서는 주로 단일 데이터 타입(String, int 등)을 반환할 수 있으나, JavaScript에서는 객체, 배열 등을 포함한 다양한 데이터 구조를 쉽게 반환할 수 있습니다. 이는 동적 타입 언어의 유연성을 잘 보여줍니다.

```javascript

// 단일 값을 반환하는 경우
function getToken() {
  return "someTokenString";
}

// 객체를 반환하는 경우
function getToken() {
  const accessToken = "someTokenString";
  return { accessToken };
}


```

이렇게 객체로 데이터를 반환하는 방식은 API의 유지 관리와 확장에 있어서 많은 장점을 제공하며, 특히 현대적인 웹 개발에서 자주 사용되는 패턴입니다.

 

댓글 영역