개요회사 새프로젝트가 시작됐다. StudyCooky는 공부 타이머 기능 및 학습 몰입도를 측정하고 분석해주는 서비스이다. 이번 프로젝트에서는 백엔드를 혼자 담당하게 되었다. A부터 Z까지 모든 걸 경험할 수 있는 기회이다. 현재 느끼는 건 API 구현보다 DB 모델링이나 API 설계 등 설계 과정이 훨씬 어렵다는 것이다. 특히나도 애자일 방식으로 개발 주기를 짧게 짧게 가져가고있기 때문에 1년차 신입 개발자로써 너무 어렵고 힘든 과정이었다. 신입 개발자인 현재의 나의 시점에서 어떤 점을 고려하고 어떤 생각을 하며 완성해 나갔는지 일기처럼 기록해보고자 한다. 공부 타이머플랫폼 성격이 이전 플랫폼과 비슷했기 때문에 자연스레 이전 프로젝트 구현하면서 불편했던 점을 위주로 생각하게 되었다. 주요 기능으로 1...
prisma cli 사용 시 이슈 발생prisma에서는 아래와 같이 환경변수를 불러옵니다. // schema.prismadatasource db { provider = "sqlite" url = env("DATABASE_URL") ⭐️} // .envDATABASE_URL="file:./dev.db?timeout=5000" 그런데 앞서 .env 파일을 .env.development , .env.production 으로 파일명을 변경하면서 prisma cli 사용 시 env 파일을 인식하지 못하는 문제가 발생했습니다. 이는 prisma 클라이언트는 기본적으로 .env 파일을 불러오기 때문입니다. dovenv-cli개발 환경에 따라 env 파일을 지정해주기위..
@nestjs/config보통 개발할 때와 배포할 때의 실행 환경이 달라지기 때문에 환경 변수들을 분리하여 관리할 필요가 있습니다. NestJS에서는 dotenv를 내부적으로 활용하는 @nestjs/config 패키지를 제공해줍니다. 이를 이용하여 ConfigModule을 동적으로 생성할 수 있습니다. $ yarn add @nestjs/config --save 환경 변수를 관리하는 env 파일을 생성했습니다. `.env.development` 는 개발 환경에서, `.env.production` 배포 환경에서 사용됩니다. ├── .env.development└── .env.production ConfigModule// app.module.tsimport { ConfigModu..
로그아웃플로우제가 생각한 로그아웃 플로우는 다음과 같습니다.클라이언트에서 로그아웃 api를 요청합니다.DB에 저장된 refresh token을 삭제한 후 결과를 response 합니다.삭제 성공일 경우, 헤더에 있는 access token을 제거합니다. 구현// auth/auth.controller.ts@Delete('sign-out')async signOut() { const userId = 1; const data: SignOutUserDto = { userId, }; return await this.authService.signOut(data);} // auth/auth.service.tsasync signOut(data: SignO..
댓글 목록 조회투표 글을 클릭하면 그 투표글에 대한 댓글 목록을 불러올 수 있어야합니다. @Param()으로 해당 투표 글의 id를 받아옵니다. // votes/votes.controller.ts@Controller('votes/:voteId/comments')export class CommentsController { constructor( private readonly commentsReposit..
