| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 좌석내가격
- cachememory
- Nest
- NEST좌석생성
- 네스트로거
- Live server
- Nest.js
- 로그파일저장
- 테스트결제
- javascript
- 포트원
- devcamp
- Til
- TypeORMconfig.ts
- ormconfig.ts
- CRUD
- nestwinston
- get
- Class Validation
- 내일배움캠프
- 좌석만들기
- 카카오페이테스트결제
- 좌석생성
- NEST좌석
- 캐시메모리DB저장
- 자바스크립트
- joi vs classvalidation
- 캐시메모리저장후DB저장
- TypeORMconfig
- TYPESCRIPT좌석생성
- Today
- Total
목록TIL (25)
배씨의 개발일지
오늘 한 일 yarn과 npm의 차이점 알아보기. 2024.03.04 - [JS] - NPM과 yarn nest.js와 typeORM 알아보기 2024.03.04 - [JS] - Nest.js와 TypeORM 프로젝트 세팅하기 앞으로 진행할 프로젝트에 앞서 기술스택을 확인 후 세팅하기 기술스택 🛠️ TypeScript + NestJS + SWC Yarn berry + Plug'n'Play + Zero-Install TypeORM + PostgreSQL Joi Jest yarn으로 nest 프로젝트 시작하기 nest new [프로젝트명] => yarn 선택 프로젝트에 필요한 패키지 다운로드 받기 yarn add @nestjs/typeorm typeorm argon2 pg joi jest, Yarn Berr..
오늘은 카카오페이 테스트 결제 기능을 구현해 볼 예정이다. 첫 번 째 포트원 가입하기. GET STARTED (portone.io) 이 포트원 문서를 보고 로직을 작성 + 회원가입 // 쿠키를 파싱하는 함수 function getCookie(name) { const value = '; ' + document.cookie; const parts = value.split('; ' + name + '='); if (parts.length == 2) return parts.pop().split(';').shift(); return null; } // JWT 토큰에서 사용자 ID와 이메일을 추출하는 함수 function parseJwt(token) { const base64Url = token.split('.')..
전 글에서 좌석 예약을 받기 위해서 시간표를 만들어주었다. 이제 본격적으로 좌석 예약 및 결제를 위한 로직을 작성 할 시간이다. import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm'; import { TimeTable } from './timeTable.entity'; import { Seat } from './seat.entity'; import { Room } from './room.entity'; @Entity() export class Reservation { @PrimaryGeneratedColumn() id: number; @Column() timeTableId: number; @Column({ type: 'ti..
처음에 좌석 예약을 만들때는 좌석 하나 하나마다 예약 가능한 시간표를 만들어줬다. 그런데 이렇게 생성하고 나니 DB에 데이터가 너무 많이 저장이 되어서 다른 방법으로 시간표를 만들어야만 했다. 그래서 관계 설정으로 방에 시간표를 만들어 준 뒤 따로 저장을 해주고 예약 시 방에서 시간표를 불러와서 그 시간표id와 좌석id를 매치해서 예약을 확인하는 방법으로 로직을 구현했다. 아래 코드는 timeTable(시간표)의 entity import { Column, Entity, PrimaryGeneratedColumn, ManyToOne, OneToMany, } from 'typeorm'; import { Reservation } from './reservation.entity'; import { Payment ..
어제 만들었던 좌석에 좌석의 가격을 넣어주고 그걸 조회하는 걸 생성했다. Room안에 seat가 들어가 있고 seatPrice에 type과 price을 넣어주고 RoomId로 조회 시 seat와 해당하는 type의 가격이 출력되도록 구현. async createPrice(seatId: number, data: createSeatInfoDto) { const seat = await this.seatRepository.findOne({ where: { seatId }, select: ['type'], }); const seatPrice = new SeatPrice(); seatPrice.type = seat.type; seatPrice.price = data.price; seatPrice.seatId = s..
기존에 만들었던 좌석은 2차원 배열로 만들어서 저장 => 몽고DB에 2차원 배열 저장 => 만들어진 배열 가져오기 MySQL에 배열에 좌표를 찍어 줄 x,y값 과 좌석의 정보 저장 => 2개를 합쳐서 프론트엔드로 던져주면 좌석 완성..? mongoDB로 2차원 배열 저장하는 로직 async createSeat(type: number, row: number, column: number): Promise { try { await this.client.connect(); console.log('MongoDB에 연결되었습니다.'); const db: Db = this.client.db('seat'); // 사각형 모양의 2차원 배열 생성 const seatShape: number[][] = Array.from(..
지금까지 구현 완료 된 부분. 앞으로 구현 해야 하는 부분. 그리고 우리가 프로젝트를 진행하며 만난 트러블 슈팅까지 팀원분들과 기나긴 회의 끝에 S.A 문서가 작성이 완료 되었다. https://pacific-peace-393.notion.site/4-01ca9aac4b8c4421a14b6ada00716bd2?pvs=4 해당 링크로 들어가면 우리가 작성한 S.A 문서가 나와있다.
기존의 실시간 채팅 (웹 소켓 이용, mongoDB바로 저장)을 일정시간 캐시메모리에 저장 후 분기별로 mongoDB에 저장 하는 방식을 사용해볼것이다. // 메시지를 캐시에 저장하는 메서드 private cacheMessage(roomId: number, message: any): void { if (!this.messageCache[roomId]) { this.messageCache[roomId] = []; } this.messageCache[roomId].push(message); } 메시지를 캐시에 저장하는 메서드 // MongoDB에 채팅 데이터 저장 private async flushCacheToMongoDB() { try { // MongoDB에 연결 const chatCollection =..