• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

restoreAccessToken 이라는 함수를 새로만드는 이유가 있을까요??

24.03.24 23:11 작성 24.03.24 23:13 수정 조회수 53

0

 안녕하세요.

 

강의 내용중에 restoreAccessToken이라는 함수를 만드는데 내용이 getAccessToken을 리턴해주는 함수입니다.

restoreAccessToken({ user }: IAuthServiceRestoreAccessToken): string {
    return this.getAccessToken({ user });
  }

getAccessToken({ user }: IAuthServiceGetAcessToken): string {
    return this.jwtService.sign(
      { sub: user.id },
      { secret: '나의비밀번호', expiresIn: '10s' },
    );
  }

인터페이스도 두번 작성하게 되는데

export interface IAuthServiceRestoreAccessToken {
  user: IAuthUser['user'];
}

export interface IAuthServiceGetAcessToken {
  user: User | IAuthUser['user'];
}

 

이런경우에는 그냥 restoreAccessToken이라는 함수를 새로 안만들고, getAccessToken을 바로 사용하는게 코드의 중복을 제거하는 측면에서 더 좋다고 생각하는데,

restoreAccessToken이라는 함수를 새로 만드는 이유가 있을까요??

답변 1

답변을 작성해보세요.

0

안녕하세요! 춘몽님!

만약, restoreAccessToken 에서만 accessToken을 만드신다면, 굳이 getAccessToken이라는 함수를 만들 필요는 없답니다!

하지만, login시에 accessToken을 만들고, restore시에도 accessToken을 만든다면, 로직이 중복되니 getAccessToken이라는 함수로 분리하여 재사용 하는게 좋을 것 같아요!^^

춘몽님의 프로필

춘몽

질문자

2024.03.26

답변 감사합니다.

그런데 답변이 이해가 잘 안됩니다..

restoreAccessToken()getAccessToken() 을 return만 하는 함수인데 굳이 필요한지가 궁금합니다.

getAccessToken()을 return만 한다면 그냥 restoreAccessToken()을 안쓰고 바로 getAccessToken() 을 사용해버리면 되는게 아닌가 해서 말입니다.