"컴공전공자_따라잡기"수강을 시작하기에 앞서, 각오를 몇자 적어봅니다. 간호사 학과를 나와 안정적인 직장을 다니고 있던 내가 프로그래밍언어를 배우겠다고 IT학원을 등록하였을때, 주위에서는 매우 신기하게 바라보았고, 그저 취미로 배우다 말겠지 생각했었을 것이다. 하지만, 학원 6개월 과정이 끝나갈 때 쯤, 본격적으로 퇴사를 하고 개발자의 길을 걷겠다는 선언을 했을 때에, 예상과 다르게 "명희 너라면 분명 잘 해낼거야!", "응원할게!!" 등의 격려와 응원의 말을 해주시는 분들이 오히려 많아 감사했었다. 주위 사람들이 바라보는 나의 모습은 주로 열정적이고, 도전적인 사람이었다. '열정 녀'의 준말로 나를 '열녀'로 부르는 언니도 계신다. 그렇기에 간호사에서 개발자의 길로 한다고 하였을때, 꽤 파격적인 선언이..
구현기능 검증자가 해당 녹음파일을 검증하기 위해서는 해당 녹음파일을 재생한 횟수가 1회 이상 되어야 한다. 따라서 녹음파일을 스트리밍 한 횟수를 카운트 하기위한 기능을 구현하고자 한다. 고려사항 1️⃣ 재생버튼을 누른것 만으로 voice의 verify status를 재생횟수 0으로 먼저 생성하고, 재생이 모두 완료 된 후 재생횟수를 1로 업데이트 할 것인가? (ex. id = 1) 2️⃣ 재생을 처음부터 끝까지 완료 하였을 때, 엔드포인트로 접근하여 voice의 verify status를 재생횟수(default =1)를 생성할것인가?(ex. id = 2) 이것은 우리가 음원 회사의 스트리밍 횟수 카운트에 쓰이는 기술과 동일할 것으로 보인다. 좀더 자료를 찾아 본뒤 적용해보아야겠다. 지금은 2️⃣번과 같은..
Error: Error querying the database: db error: FATAL: sorry, too many clients already 위 에러는 메시지는 postgre DB에 연결된 서버를 실행 시켰을 때 마주하게되었다. 그전까지는 아무 문제없이 서버가 잘 작동하였는데, 갑자기 이런 메시지가 생긴 것. 에러 내용인 즉슨.... connection 할 수 있는 client 갯수가 100 개로 한정되어있어 생기는 문제라고 한다. 다양한, 문제 해결방법들이 존재하였고, postgre config에 들어가서 max_connection 값을 default 인 100 보다 이상인 값으로 늘리라고 하였지만, postgre서비스를 재실행하는 과정에서 계속 에러가 나서 그냥 postgre를 지웠다가 다..
지난 블로그에서는 앱 사용자가 자신의 핸드폰에서 음성파일을 업로드하여 최종적으로 녹음파일이 AWS S3에 저장 되는 것을 구현해보았다. 그리고 블로그 마지막에는 파일 용량에 제한을 두는 것에 대해 좀더 고민을 해보기로 하였고, 시간 출퇴근 하시는 시간 밥먹는 시간, 고민한 끝에 드디어 오늘 그에 대한 답을 내리게 되어 블로깅을 해보려고 한다. 먼저, 파일 용량을 제한하는 목적이 무엇인지에 대해 생각해보았다. 1. 첫째로, 사용자가 녹음을 업로드시 파일은 AWS S3에 저장 되게 될텐데, AWS는 우리가 해당 서비스를 사용하는 만큼 청구를 한다. 즉, 많이 저장공간을 많이 사용 할 수 록 많은 비용을 내야한다는 것이다. 2. 두번째로, 많은 사용자들이 한꺼번에, 다량의 거대한 용량의 파일을 업로드하게 되면..
앞 블로깅에서는 S3에 파일을 업로드하는 기능을 컨트롤에서 구현하였다면, 이제는 서비스로 분리시키고, 파일 업로드와 동시에 DB의 voice테이블에 객체를 생성하는 작업을 해보려 합니다. 보시는 것처럼 컨트롤에 있던 AWS관련 메소드를 그대로 가져왔으며, 추가된 것이 있다면, prisma.voice.create 메소드 입니다. 아래 함수를 작성 하던 도중 2가지 에러를 만났는데요, 1. 한가지는, fileSize필드이 타입인 decimal값의 범위를 너무 작게 준것 때문이었고, umeric field overflow", detail: Some("A field with precision 8, scale 3 must round to an absolute value less than 10^5." 즉, Deci..
https://velog.io/@suasue/NestJS-AWS-S3-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C NestJS | AWS S3 이미지 업로드 NestJS로 AWS S3에 여러 개의 이미지를 업로드하는 기능을 구현해보자.AWS S3 버킷을 만들어 준다. 버킷 만드는 방법을 설명해놓은 곳이 많으니 직접 찾아서 만들면 된다. 개인적으로는 이 블로그를 velog.io Using npm npm install aws-sdk 이 명령은 프로젝트에서 JavaScript 용 SDK를 프로젝트에 설치하고package.jsonSDK를 프로젝트 종속성으로 나열할 수 있습니다. npm 웹 사이트에서 "aws-sdk"를 검색하여 이 패키지에 대한 정보를 찾을..
now(), @updateAt 의 @db.Timestamptz(3)의 유무에 따른 시간 표시 @db.Timestamptz(3)가 없는 model model Voice { id Int @default(autoincrement()) @id fileSize Decimal @db.Decimal(8,3) url String @db.VarChar(500) user User @relation(fields: [userId], references: [id]) userId Int sentence Sentence @relation(fields: [sentenceId], references: [id]) sentenceId Int dateOfCreated DateTime @default(now()) dateOfUpdated D..
이제 다음 스텝으로 데이터 베이스에 데이터를 저장시키는 것을 해보려고 합니다. 당시 VoiceService는 아래와 같았으며, @Injectable() export class VoiceService { constructor(private prisma: PrismaService) {} createVoice(voiceData: Prisma.VoiceCreateInput): boolean { console.log(voiceData) this.prisma.voice.create({data:voiceData}); return true; } } 아래와 같이 voiceController가 작성되어있는 상태에서 데이터가 DB에 들어가지 않는 상황이었습니다. @Post('submit') createVoice(@Query..
목표는 1번 Sentence의 Voice파일 1개를 생성하는 기능구현을 하는 것이었다. 먼저 prisma를 통하여 다음과 같이 모델링을 하였다. (User는 다른 데이터베이스에 들어가야하지만, 아직 같은 데이터 베이스 안에서 데이터를 넣는 것부터도 시도해보지 않은 상태여서, 데이터베이스 분리는 나중에 해보기로 결정하였다. ) // This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-clien..