St991Cup's Blog

Steelcup, St991cup, steelcup


Database

  • 자체 호스팅 Redis(TCP)에서 Upstash(REST)로 마이그레이션하기

    기존 Docker 환경의 자체 호스팅 Redis(node-redis v4 기반 영속 TCP 연결)에서 서버리스 환경에 최적화된 Upstash Redis(REST API 기반)로의 마이그레이션 과정과 주요 주의사항을 다룬다. 1. 개요 및 배경 bad-goose 백엔드는 redis(node-redis v4) 라이브러리를 통해 도커 컴포즈 내부의 Redis 컨테이너에 TCP 연결을 유지하며 크롤링된 차트 데이터를 저장 및 조회했다. 서버리스 함수 환경에서는 영속 TCP 연결 유지가 불가능하며… Continue reading

  • Hermes Agent 운영 팁 — Cron 세션 무한 증식 막기

    Hermes Agent를 게이트웨이(Slack 등)로 24시간 운용하며 다수의 Cron Job을 등록할 때 발생하는 세션 DB 무한 증식 문제의 진단 과정과 해결 방안을 정리한다. 1. 증상 및 배경 Hermes Agent는 세션(대화 기록)을 SQLite DB에 영구 저장한다. 주요 특징 및 문제는 다음과 같다. 자동 삭제 기능 부재: config.yaml 내 max_sessions, auto_prune, Retention 관련 옵션 자체가 존재하지 않음. 컨텍스트… Continue reading

  • JWT와 Refresh Token 운영 방법 상세 정리

    1. JWT 인증 구조의 기본 개념 JWT(Json Web Token)는 서버와 클라이언트 간 인증 정보를 안전하게 주고받기 위한 토큰 기반 인증 방식입니다. 주로 Access Token과 Refresh Token 두 가지 토큰을 조합해 사용합니다. 2. Access Token과 Refresh Token의 차이와 역할 Access Token 용도: API 요청 시 인증 및 권한 확인에 사용 만료 시간: 짧게 설정(예: 15분~1시간) 저장… Continue reading

  • Prisma Client 배열 타입 create/update 정리

    Prisma Client create 정리 https://www.prisma.io/docs/concepts/components/prisma-schema/relations/many-to-many-relations#querying-mongodb-many-to-many-relations https://www.prisma.io/docs/concepts/components/prisma-client/crud#create sql INSERT에 해당 일반적인 타입에는 INSERT 쓰듯이 사용 가능 const user = await prisma.user.create({ data: { email: ‘elsa@prisma.io’, name: ‘Elsa Prisma’, },}) Array 타입은 약간 특이한 방식으로 사용 1-n / m-n 관계 테이블을 만들 경우 아래와 같이 Array 타입으로 스키마에 정의함 model Post { id Int @id @default(autoincrement()) categories… Continue reading

  • nestJs + prisma + postgresql

    nestJs + prisma + postgresql

    nestJs + prisma + postgresql nest, prisma 설치, postgresql 환경 설치 nest n 프로젝트 디렉토리 진입 PrismaClient 설치 npm install @prisma/client https://docs.nestjs.com/recipes/prisma#set-up-prisma npx prisma init ./.env DATABASE_URL 편집 database 생성 필요 https://www.postgresql.org/docs/current/sql-createdatabase.html CREATE DATABASE jointest WITH OWNER = kyi TEMPLATE = template0 ENCODING = ‘UTF8’ LC_COLLATE = ‘en_US.UTF-8’ LC_CTYPE = ‘C’ TABLESPACE = pg_default CONNECTION… Continue reading

  • prisma seed 정리

    prisma seed 정리

    https://www.prisma.io/docs/guides/migrate/seed-database#how-to-seed-your-database-in-prisma seed.ts 생성(위치는 아무데나 상관 없음), 기본 틀은 아래와 같음 import { PrismaClient } from "@prisma/client"const prisma = new PrismaClient()async function main() { const data = await prisma.content1.create….}main() .then(async () => { await prisma.$disconnect(); }) .catch(async (e) => { console.error(e); await prisma.$disconnect(); process.exit(1); }); package.json에 아래 추가 "prisma": { "seed": "ts-node prisma/seed.ts" } 아래 둘… Continue reading

  • Redis 데이터타입 요약

    Redis 데이터타입 요약

    Strings: 가장 기본적인 데이터 타입으로, 문자열을 저장 주로 캐싱이나 카운터, 세션 등에 사용 > SET mykey "Hello"OK> GET mykey"Hello"> LPUSH mylist "world"1> LPUSH mylist "hello"2> LRANGE mylist 0 -11) "hello"2) "world"> SADD myset "apple"1> SADD myset "banana"1> SADD myset "orange"1> SMEMBERS myset1) "apple"2) "banana"3) "orange"> ZADD myzset 1 "one"1> ZADD myzset 2 "two"1> ZADD myzset… Continue reading

  • NestJS + GraphQL 모델 통합

    NestJS + GraphQL 모델 통합

    NestJS DOCUMENTATION에서는 GraphQL과 DB의 설명을 함께 설명하지 않는다. 그래서 각각의 목적으로 모델을 만드는 샘플 코드만 존재한다. typeORM의 경우 .entity.ts 로 끝나는 파일명을 생성한 뒤 안에 Entity 클래스를 선언해 스키마를 모델링할 수 있고, GraphQL에서는 GraphQL의 스키마 모델링을 .model.ts로 끝나는 파일 내 모델 클래스를 선언해 할 수 있다. 이 경우에는 Entity, Model이라는 두 카테고리로 orm과 GraphQL의 스키마를… Continue reading

  • NestJs를 알아두면 좋은 점 [Short]

    Express, fastify 호환으로 저절로 두 프레임워크의 지식을 쌓을 수 있다. 마찬가지로 DB 쪽도 MySQL, Postgresql 등 광범위하게 호환되기 때문에 함께 습득하기가 수월하다. ORM도 typeORM을 주로 설명하지만 많이 퍼져 있는 Sequelize 등도 사용이 가능하기 때문에 기존에 사용하던 ORM을 사용함과 동시에 다른 ORM을 채용할 수 있는 장점이 있다. ORM과 DB분야는 GraphQL을 지원하기 때문에 합성도 가능. 즉, 여러… Continue reading

  • Building Prisma Engine for Raspberry Pi 4

    Building Prisma Engine for Raspberry Pi 4

    As of Prisma Engines Version 5, this method is not valid. Instead, if you install Raspberry Pi OS 64bit, it is provided by default in the Prisma package. Original Source Code https://github.com/prisma/prisma-engines Checkout https://www.prisma.io/docs/concepts/components/prisma-engines https://github.com/prisma/prisma-engines Version of Raspbian No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster… Continue reading

워드프레스닷컴으로 이처럼 사이트 디자인
시작하기