인프런 커뮤니티 질문&답변

춘몽님의 프로필 이미지
춘몽

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

11-05 토큰 재발급 API

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

작성

·

117

·

수정됨

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이라는 함수로 분리하여 재사용 하는게 좋을 것 같아요!^^

춘몽님의 프로필 이미지
춘몽
질문자

답변 감사합니다.

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

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

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

 

춘몽님의 프로필 이미지
춘몽

작성한 질문수

질문하기