Wecode - Project 2 (부트캠프)/독학

Project 2- '구조분해 할당', '객체 할당', '객체 분해 destructuring'

Queen Julia 2023. 10. 6. 21:14

Request body 객체 구조분해할당

const name = req.body.name
const email = req.body.email
const password = req.body.password

보다는 

**const { name, email, password } = req.body**

 


객체 할당

 

변수에서 객체 속성을 추출하고 해당 값을

변수에 할당

 

= "객체 분해(destructuring)" 사용

객체 할당

-> 주로 객체의 속성을 더 간편하게 변수에 할당하고 사용하기 위해 사용

 

 

JavaScript와 TypeScript에서 객체 할당을 수행하는 방법의 간단한 예제

// 객체를 생성
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 30,
};

// 객체 분해 -> 객체 속성을 변수에 할당
const { firstName, lastName, age } = person;

// 이제 firstName, lastName, age 변수에는 각각 객체의 속성 값이 할당됩니다.
console.log(firstName); // "John"
console.log(lastName);  // "Doe"
console.log(age);       // 30

위의 코드에서 
const { firstName, lastName, age } = person; 부분은
 person 객체의 firstName, lastName, age 속성을 추출하여 
새로운 변수에 할당하는 객체 할당을 수행

이를 통해 변수를 사용하여 객체의 속성에 쉽게 액세스할 수 있습니다.

객체 할당은 
객체에서 필요한 데이터를 추출하고 다른 변수에 할당하는 간편한 방법을 제공하므로 
코드를 더 읽기 쉽게 만들어줍니다.


const { id } --> 객체 분해(destructuring)를 사용하여 id라는 변수를 선언

                           jwt.verify 함수에서 반환되는 객체의 id 속성을 추출하여 저장

 

jwt.verify(token, process.env.TYPEORM_JWT) --> JWT를 검증하는 함수 호출

   --> token은 검증할 JWT 토큰을 나타내고,

   --> process.env.TYPEORM_JWT는 환경 변수에서 가져온 JWT 시크릿 키(key)

          JWT를 검증하려면 이 시크릿 키가 필요

 

 

JWT 검증이 성공하면

jwt.verify 함수는 토큰의 내용을 확인, 해당 내용을 포함하는 객체를 반환

그 중에서 id라는 속성을 위에서 선언한 변수에 할당

 

이렇게 하면 JWT 검증을 통해 추출한 id 변수에는

JWT 페이로드에서 추출한 사용자 ID 또는 식별자가 저장,

이를 이용하여 사용자를 인증하거나 권한 부여 등의 작업을 수행할 수 있습니다.

 


 "객체 할당"= "구조 분해 할당" = "객체 분해 할당"

 

 객체의 속성을 변수에 할당하는 프로세스

주로 객체의 속성을 추출하여 새로운 변수에 할당하거나 사용하는 목적

이를 통해 코드를 간결하고 가독성 좋게 작성할 수 있으며, 필요한 데이터를 손쉽게 접근할 수 있습니다.

 


예를 들어, 객체 person속성을 추출하여 변수에 할당

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 30,
};

// 객체 할당, 구조 분해 할당->  객체 속성 변수에 할당
const { firstName, lastName, age } = person;

// 이제 firstName, lastName, age 변수에는 각각 객체의 속성 값이 할당
console.log(firstName); // "John"
console.log(lastName);  // "Doe"
console.log(age);       // 30