본문 바로가기

분류 전체보기301

Entity Embadding import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";// Entity 간 중복되는 column 이 있을 경우 아래와 같이 @Entity 데코레이터가 없는 일반 class로 만들어 사용할 수 있다.export class Name { @Column() first: string; @Column() last: string;}@Entity()export class StudentModel { @PrimaryGeneratedColumn() id: number; // 아래와 같이 @Column 데코레이터의 메타데이터로 익명함수의 리턴값으로 // 공통으로 사용되는 column이 들어있는 class 를 반환.. 2024. 6. 7.
다양한 Column 들 (Column Annotation) import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, VersionColumn, Generated } from 'typeorm';export enum Role { USER = 'user', ADMIN = 'admin'}@Entity()export class UserModel { @PrimaryGeneratedColumn() id: number; @Column({ type: 'varchar', name: 'title', length: 300, nullable: true, update: true, // true 면 처음 저장할떄만 값 지정 가능. 이후에는 값 변경 안됨.. 2024. 6. 7.
Particle 만들기 - 좌표에 mesh 생성하기 1. Geometry: PlaneGeometry2. Material: MeshBasicMaterial3. Mesh: Mesh4. TextureLoader Sphere 의 vertex 위치에 Plane Mesh를 넣어보자. 핵심: SphereGeometry 의 x, y, z 좌표들 찾기(SphereGeometry.attributes.position.array) // Plane geometryconst geometry = new THREE.PlaneGeometry(.3, .3)const material = new THREE.MeshBasicMaterial({ color: 'red', side: THREE.DoubleSide // material 의 양면(앞, 뒤)를 모두 보여주도록 세팅});// .. 2024. 6. 5.
Particle 만들기 - Particle 랜덤 + 이미지 넣기 + 랜덤 색상 이전 "Particle 랜덤 만들기" 에서 이미지 로드를 위해 TextureLoader 을 추가하면 된다. 1. Geometry: BufferGeometry2. Material: PointsMaterial3. Mesh: Points4. TextureLoader  이번에는 Particle에 있는 png 이미지의 색상을 넣어보자.핵심은 BufferGeometry 객체에서 제공하는 "setAttribute" 메서드로 color를 조절하면 된다.이전에 Float32Array 객체로 vertex 의 좌표를 저장할 배열을 만들었다면, 이번에도 똑같이 색상이 들어갈 좌표를 만들어줘야 한다. (setAttribute 를 중복해서 사용할 수 있다.) // geometry 생성const geometry = new THRE.. 2024. 6. 5.
Particle 만들기 - Particle 랜덤 + 이미지 넣기 이전 "Particle 랜덤 만들기" 에서 이미지 로드를 위해 TextureLoader 을 추가하면 된다. 1. Geometry: BufferGeometry2. Material: PointsMaterial3. Mesh: Points4. TextureLoader  // geometry 생성const geometry = new THREE. BufferGeometry();// vetext 갯수 설정const count = 1000; // 1000 개의 vetext를 만들기 위함.// 좌표값이 들어갈 배열의 길이 설정const positions = new Float32Array(count * 3); // 하나의 vertex는 3개의 좌표가 필요. 왼쪽 3은 그것을 의미함.// 생성된 배열에 좌표를 -5 에서 1.. 2024. 6. 5.
[패턴] Discriminating unions - To narrow down the type within a union type = 타입 가드 type LocationState = { state: 'Loading' | 'Success' | 'Error' coordinate?: { lat: number, lan: number } error?: { message: string }}/** state 가 loading 일때는 coordinate 와 error 이 필요없다.* state 가 success 일때는 error 이 필요없다.* state 가 error 일때는 coordinate 가 필요없다.* 위와 같이 옵셔널로 타입을 지정했을때 문제는...*/function printLocation(location: LocationState){ switch(location.state){ .. 2024. 6. 5.