[크래프톤 정글 3기] 1/25(목) TIL

ClassBinu·2024년 1월 25일
0

크래프톤 정글 3기 TIL

목록 보기
97/120

허둥지둥 발표 준비

최종 발표 연습 피드백

원장님

  • 프롬프팅도 기술적 챌린지로 제시할 수 있는지?
    : (내 답변: 프롬프팅을 챌린지로 제시해도 될지 고민됨)
    맞음. 챌린지로 제시하기에는 애매한 점이 있긴 함.
  • 참고로 프롬프팅 기반 AI 발전 속도가 워낙 빨라서 프롬프팅 기반 스타트업은 다 망했다.
  • 데모 UI 별로다.

김코치님

  • EC2 + HuggingFace API는 기술적 챌린지에서 빼는 게
    (약간 사짜 느낌, 사실 API 쓴 건데 부풀려짐)
  • 과거 정글 프로젝트에 비해 아주 조금의 발전이 있긴 하지만 인상적인 기술은 없다. 획기적인 추가 아이디어 필요
    예를 들어 움직이는 이미지라던지, 동화 생성 과정을 빠르게 보여줄 수 있는 인터랙티브한 요소가 있으면 좋겠다.
  • CompyUI 등 살펴봐라
  • 지금은 이미지가 너무 고정되어 있는 느낌. 정 안되면 이미지가 전체적으로 움직이는(줌인, 줌 아웃)이라도 있어야.
    (해리포터 영화 사례)

백코치님

  • 이미지 추가 생성 UX 고민 필요
  • 모바일 등 다양한 디바이스 UX 대응 필요
  • (이전 피드백) AI로 컨텐츠 생성 과정에서 기술적 챌린지를 더 고민해 봐라.

전체적인 총평은 기본적인 진행 방향에 대해서는 문제가 없다고 느낌.
내부적 고민과 마찬가지로 피드백 주신 부분은 CRUD + API 외의 특징이 없다는 점.
평범한 기술 이외에 새롭게 보여줄 만한 기술 계속 찾아볼 예정

Bug

책 제목에 간헐적으로 따옴표가 들어옴

replace로 전처리

const title = storyArray.shift().replace('제목: ', '').replace(/"/g, '');

타입 스크립트

MongoDB의 ObjectId는 Mongoose 모델에서 자동으로 생성되는 _id 필드를 통해 제공되며, 이는 MongoDB 문서의 기본 키 역할을 합니다. 일반적으로 Mongoose 스키마에 _id 필드를 명시적으로 정의할 필요는 없습니다. Mongoose는 자동으로 이 필드를 생성하고 관리합니다.

그러나 TypeScript와 함께 사용할 때, TypeScript의 타입 체크 기능으로 인해 _id 필드에 접근할 때 타입 문제가 발생할 수 있습니다. 이 경우, 클래스 또는 인터페이스에 _id 필드를 명시적으로 추가하여 타입 오류를 해결할 수 있습니다.

Copy code
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document, Types } from 'mongoose';

@Schema()
export class User extends Document {
  @Prop({ required: true, unique: true })
  username: string;

  // 기타 필드 정의

  // _id 필드 명시적 정의
  _id: Types.ObjectId;
}

export const UserSchema = SchemaFactory.createForClass(User);

여기서 Types.ObjectId는 Mongoose의 ObjectId 타입을 나타냅니다. 이렇게 하면 TypeScript 컴파일러가 _id 필드의 타입을 정확하게 인식할 수 있습니다.

tsconfig.json 설정을 변경하여 이 문제를 해결하는 것은 일반적이지 않으며, 권장되지 않습니다. 대신, 타입 정의를 명확히 해서 문제를 해결하는 것이 좋습니다. TypeScript의 엄격한 타입 체킹이 문제를 일으키는 경우, 해당 필드의 타입을 명확히 지정하는 것이 바람직합니다.

리드미

멘토님 피드백에 따라 readme.MD 작성함.

vsc에서 readme.MD 작성할 때 프리뷰 하는 법

Cmd+Shift+V

멘토님 과제

스토리파이 사용자가 1억 명이라면 무슨 문제가 생길 수 있을까?

MongoDB 친구 추가 용량 문제

현재 유저 도큐먼트와 연동되는 '친구' 도큐먼트가 있음.
친구 도큐먼트에는 내가 추가한 친구를 배열로 관리함.
이때 배열에는 내가 추가한 친구의 ObjectId가 들어감.
ObjectId는 12바이트(96비트)

만약 1억명을 친구로 추가한다면,
친구 배열의 ObjectId의 용량이 1.2GB

12Byte x 100명 = 1.2KB
12Byte x 100,000명 = 1.2MB
12Byte x 100,000,000명 = 1.2GB

그런데 mongodb의 Document 용량 제한은 16MB
즉, 친구 추가가 불가능하다.
(백 만 명 추가도 불가)

0개의 댓글