본문 바로가기

Graduation Project

(10)
응답 스트리밍(2) - SSE 영상 생성 기능이 약 3분 이상 소요되기 때문에 진행 상황을 클라이언트에게 공유하고자 응답 스트리밍을 구현하고자 한다. 일단 사용하던 Lambda에 있는 기능인 응답 스트리밍을 사용하고자 했는데 청크가 뭉쳐서 받아져오는 문제가 있어 일단 보류.... 그 다음 생각해낸 것이 SSE이다.  Server Sent Events요청을 보낸 후 일정 시간동안 연결을 유지한 후, 서버에서 message를 emit하는 방식이다.연결이 끊기기 전까지는 Client가 추가로 요청할 필요가 없기 때문에 메시지가 쌓일 수록 0.5RTT만큼의 시간이 절약된다고 생각할 수 있다. 이후 서버에서 message를 전송하면 클라이언트는 WebSocket 통신과 유사한 방식으로 메시지를 받을 수 있으나, 클라이언트에서 서버로 메시지를 ..
응답 스트리밍(1) - AWS Lambda 응답 스트리밍 영상 생성 진행상황을 클라이언트에게 알리기 위해 응답 스트리밍을 사용하기로 결정했다.응답 값은 영상이 생성될 때까지 10%, 20%... 와 같은 퍼센트값만 보내주기로 했다. AWS Lambda 응답 스트리밍다행히 현재 사용하는 AWS Lambda에서  Node.js 관리형 런타임인 경우 응답 스트리밍을 지원하고 있었다. 응답을 스트리밍하도록 Lambda 함수 구성응답 페이로드를 클라이언트로 다시 스트리밍하도록 Lambda 함수 URL을 구성할 수 있습니다. 응답 스트리밍은 첫 번째 바이트까지 시간(TTFB) 성능을 개선하여 지연 시간에 민감한 애플리케이션에 도움이 될 수 있습니다. 이는 부분 응답을 사용할 수 있게 되면 클라이언트에 다시 전송할 수 있기 때문입니다. 또한 응답 스트리밍을 사용하여 더 큰..
프롬프트 엔지니어링 강의 영상: https://www.youtube.com/watch?v=P8yKg88xF_8실습 코드: https://bit.ly/3W89UkV 프롬프트 엔지니어링생성 AI 종류text to ImageText to SpeechText to Text - chatGPTText to Video chatGPT 학습 방법GPTGenerative Pre-trained Transformer(사전 훈련된 생성 변환기)단어들을 주고 다음에 나올 단어를 예측하는 방식RLHF: 사람이 직접 지시/답변 데이터 구축 후 학습 → 생성된 글에 순위 매기기 → 글의 순위를 통해 강화학습 chatGPT 사용법~역할로 ~을 해서 ~형태로 보여줘(예시)  카피라이터 역할로 광고를 만들어서 PDF 형식으로 보여줘문제 풀기 프롬프트의 정의과..
S3 + CloudFront 비디오 스트리밍 S3와 CloudFront를 이용해 생성한 비디오를 비디오 스트리밍하는 방법을 알아보자. 전반적인 계획S3에 비디오를 저장하고, CloudFront를 사용하여 버킷 앞에 CDN을 설정하여 비디오 스트리밍을 한다.   S3 bucket 생성S3는 다양한 파일을 저장할 수 있는 파일 스토리지 서비스이다.AWS 콘솔에서 S3 검색 후 "버킷 만들기" 클릭 원하는 리전, 버킷 이름 설정 다른 AWS 계정에서 버킷의 객체 소유권및 맥세스 제어 목록의 사용을 제어하는 것을 원하지 않으므로ACL 비활성화됨을 체크 아무나 S3 버킷에 직접 액세스하는 것을 막기 위해 모든 퍼블릭 액세스를 차단CloudFront를 통해서만 S3 버킷의 객체에 액세스할 수있도록 설정할 것이다.  나머지는 모두 default 설정으로 두고 ..
[Error 😥] Serverless Framework 사용 도전기 나의 졸업 프로젝트인 LipRead는 Lambda+API gateway로 이루어져 있다. 프로젝트를 시작하던 당시 나는1. 이러한 AWS의 서비스에 익숙치 못했고,2. 대부분의 블로그, 참고 자료 등이 AWS 콘솔을 사용했기에 콘솔 사용에 익숙함을 느꼈고,3. Serverless Framework를 또 공부해야하는 데 시간를 쏟아야 한다는 점으로 인해 졸업 프로젝트를 진행하던 때는 AWS 콘솔을 이용해 AWS의 서비스를 관리했다. 하지만 프로젝트 진행 당시에 서비스 자체들을 생성하는데에는 큰 어려움이 없었지만, Lambda를 수정 후 재배포할 때 사소한 귀찮음이 생겼다.  당시 Lambda를 재배포 하려면 1. 코드를 zip파일로 만들고, AWS 콘솔로 들어가 직접 업로드를 해야한다는 점,2. 로컬로는 ..
AWS APIgateway+ 응답 HTTP status 변경하기 AWS API gateway + Lambda로 REST API를 만드는 중에 작은 문제가 생겼다. lambda에서는 201, 400 같은 응답 코드를 전송하고 싶어도 lambda의 응답값이 API gateway를 통해서 전송이 되어서 무조건 응답코드가 200으로 보내진다. lambda에서 생성한 응답 코드와 동일하게 실제 Response의 응답값이 변경되었으면 한다. 간단하게 아래의 코드로 수정할 수 있었다. 아래와 같은 형태로 보내면 responseBody.status의 값이 실제 응답 객체에 반영된다const responseBody = await controller.login(body);return { "statusCode": responseBody.status, "headers": {"cont..
DynamoDB 키 디자인 패턴 적용하기 과거 DynamoDB를 썼던 방식...😰DynamoDB를 공부하지 않고 DB를 만든 내 과거 모습- 엔티티마다 테이블 생성하기...- scan 남발하기... 졸업 작품 초반에 시간이 부족하다보니 아무렇게나 코드를 짰다...이렇게 되니 테이블마다 cloudwatch에 alarm이 생성되어 비용이 생성되기도 했고, 테이블끼리 join연산도 없으니 읽기도 어려워졌다. 결정적으로 엔티티마다 테이블을 만드니 cloudwatch에 alarm으로 인해 비용이 추가로 생성되기도 했다. 결국 DynamoDB를 공부하는 건 더 이상 미룰 수 없다고 생각했다.  dynamoDB의 키 디자인 패턴에 관한 강의https://youtu.be/I7zcRxHbo98?si=GH2RYz4Zn8r_JU16 위의 강의를 통해 dynamo..
Oauth란 OauthOAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준입니다.즉, OAuth를 바탕으로 제 3자 서비스(나의 서비스)는 외부 서비스(Facebook, Apple, Google)의 특정 자원을 접근 및 사용할 수 있는 권한을 인가받게 된다. Oauth가 제공하는 장점구글, 페이스북 등의 외부 소셜 계정을 기반으로 간편하게 회원가입 및 로그인구글, 페이스북 등 외부 서비스가 제공하는 기능을 간편하게 사용 가능 Oauth 참여자Resource Server : Client가 제어하고자 하는 자원을 보유하고 있는 서버 (Apple, Google)Resource Owner :..