작성
·
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() 을 사용해버리면 되는게 아닌가 해서 말입니다.