허둥지둥 발표 준비
전체적인 총평은 기본적인 진행 방향에 대해서는 문제가 없다고 느낌.
내부적 고민과 마찬가지로 피드백 주신 부분은 CRUD + API 외의 특징이 없다는 점.
평범한 기술 이외에 새롭게 보여줄 만한 기술 계속 찾아볼 예정
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
현재 유저 도큐먼트와 연동되는 '친구' 도큐먼트가 있음.
친구 도큐먼트에는 내가 추가한 친구를 배열로 관리함.
이때 배열에는 내가 추가한 친구의 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
즉, 친구 추가가 불가능하다.
(백 만 명 추가도 불가)