09:22 입실
일어났다가 잠깐 눈 감았는데 2시간 지남
다음부터는 그냥 바로 일어나자.
점심에 스벅가서 계속 공부함! 오늘 빨래도 해야 함!
v=19GG1c/0O8Tjgb3RNGRPBTnA$gqquvvzhOLrP2iNWJH489QW+0jCrY5SvChFy/sFEBB8
: 이 해시 문자열은 Argon2id 알고리즘을 사용한다는 것을 나타냅니다.
v=19: Argon2id 버전을 나타냅니다.
m=65536,t=3,p=4: Argon2id 매개변수를 설명합니다. 이것은 메모리 요구 사항 (65536KB), 반복 횟수 (3), 병렬 스레드 수 (4)를 나타냅니다.
GG1c/0O8Tjgb3RNGRPBTnA: 솔트 (Salt) 값으로, 비밀번호를 해시할 때 무작위로 생성된 값을 나타냅니다.
gqquvvzhOLrP2iNWJH489QW+0jCrY5SvChFy/sFEBB8: 실제 해시된 데이터를 나타냅니다.
이상적으로는 솔트는 비밀리에 보관되는 게 안전.
하지만 솔트를 추가하는 이유는 레인보우 테이블 공격 방지 목적이므로, 솔트가 노출되면 레인보우 테이블이 무용지물이 되므로 괜찮음.
블로그 수정이 어제부터 안 되다가 오늘 밤부터 됨.
못 적은 내용이 너무 많음.😤😤😤😤😤
포스트 모듈 만들고 서버 만드는 중!
async toggleLike(id: string, userId: string) {
if (await this.checkLikeStatus(id, userId)) {
console.log('remove like');
return await this.removeLike(id, userId);
} else {
console.log('add like');
return await this.addLike(id, userId);
}
}
계속 이상하게 동작해서 보니까 조건문에 await가 누락되어 있었다.
JWT전송할 때 bearer 붙이는 이유는?
Authorization: Bearer <token>
GPT
"Bearer"라는 단어의 어원은 영어에서 "to bear"라는 동사에서 유래했습니다. "to bear"는 "가지고 다니다", "소지하다", "운반하다"라는 의미를 가지고 있습니다. 이러한 의미에서, "Bearer"는 "소지자" 또는 "보유자"를 의미하는 명사형으로 변환된 것입니다.
// 스웨거 설정
export const swaggerConfig = new DocumentBuilder()
.setTitle('My Today API')
.setDescription('My Today API description')
.setVersion('1.0')
.addBearerAuth() // 여기
.build();
// 컨트롤러에 @ApiBearerAuth() 추가
@UseGuards(AccessTokenGuard)
@ApiBearerAuth()
@Patch(':id')
async update(
@Param('id') id: string,
@Body() updatePostDto: UpdatePostDto,
@Req() req: any,
)
구현만 목적에 두고 코딩하다 보니 컨트롤러에 모든 로직이 다 들어가 있었다.
컨트롤러는 핸들러 역할만 하고 실제 비지니스 로직은 서비스로 이관하는 작업 중.
간단한 테스트 구현해보자!
정글 알아보다가 TIL 포스팅 발견했는데, 매일 꾸준히 업로드 하다니.. 대단하고 멋지십니다!
파이팅하십쇼!!