NUXT3 Project DevelopmentLog

메인페이지 시연영상. 해당하는 요일만 효율적으로 GET요청

새로고침시 변경되는 메인영상

방송선택시 변경되는 메인영상

로그인 실패 시 횟수제한, 성공 후 refresh, access 토큰확인

Google OAuth 로그인 시연영상

방송리스트 시연영상. 모든 방송엔 각자 에피소드 추가하는기능이 있고, 수정or삭제 버튼 클릭 시 해당방송의 고유번호에 따라 데이터를 바인딩. 혹은 삭제.

방송(콘텐츠)추가 시연영상1. 검색기능도 구현했다.

방송(콘텐츠)추가 시연영상2. 실제 방송을 추가하여 디테일화면에서 방송 진행자 정보도 팝업으로 확인가능하다.

방송(콘텐츠)수정 삭제 영상. 여담으로 개발자도구 네트워크탭에 만료된 토큰 갱신하는 refresh-Token 엔드포인트도 정상적으로 작동중
클라이언트(프런트엔드) 미들웨어. 단순하게 유저정보만을 확인한다
서버(백엔드) 미들웨어 예시.(상세코드 GitHub참조) JWT를 확인해보고 토큰이 없거나 유효하지않으면 401, 403에러를 낸다

운영자페이지 유저정보 변경 시연. 프리미엄/일반회원(role) 변경, 프리미엄 기간 등을 변경하면 좋을 것 같다.

배너관리 시연
멤버목록 검색 코드
FormComponent안에 FileUploadComponent를 자식 컴포넌트로 추가한다
FileUploadComponent의 handleFileChange함수. uploadToS3함수를 발동하고, 부모컴포넌트에 발급받은 PresignedURL을 전달한다
composable/userS3Upload.ts의 uploadToS3함수. file과 temp를 파라미터로 받고 파일사이즈같은것도 검증. api/upload로 API요청한다.
api/upload 엔드포인트의코드. S3관련 환경변수도 까보고 디코딩 등의 작업도 수행하고 presiginedURL을 요청한다.
다시 uploadToS3함수로 돌아와서 API요청이 성공했으면 uploadedUrl 변수에 해당 URL을 담는다.
FileUploadComponent의 comfirmFile함수. 여기서도 한번 더 uploadToS3함수를 실행하는데 이번엔 두번째 파라미터값(temp)이 false다 임시파일이아닌 확정적인 파일이므로.
부모 컴포넌트인 FormComponent로 돌아와서 각 FileUploadComponent를 사용한 필드마다 파일업로드를 확정한다. 하나라도 실패하면 폼이 불안정할 수 있기때문에 Promise.all로 모두 성공했을때만 폼을 제출하게 유도.
GoogleKeep에 정리한 배포과정 1
GoogleKeep에 정리한 배포과정 2
GoogleKeep에 정리한 배포과정 3
GoogleKeep에 정리한 배포과정 4
기존의 onMounted와 SSR에 맞춰진 useAsyncData 사용 코드 비교

이전과 같이 정상적으로 렌더링 되고있다.
SEO에 필요한 NUXT만의 meta등록. script태그내에 정말 간편하게 등록할 수 있다.