개발의 이유를 기록합니다
프론트엔드부터 인프라까지, 실무에서 배운 것을 씁니다.
-
Flyway 도입 가이드
DB 스키마를 손으로 고치는 팀이 Flyway로 넘어가는 과정. 마이그레이션 파일 규칙, Spring Boot 연결, 이미 운영 중인 DB에 baseline 잡기, 팀 규칙과 실전 함정까지 정리합니다.
spring: flyway: enabled: true locations: classpath:db/migration baseline-on-migrate: false validate-on-migrate: true out-of-order: false jpa: hibernate: ddl-auto: validate # 스키마를 바꾸는 건 Flyway 뿐 -
OKF 도입 가이드
지식을 서비스가 아니라 파일로 다루는 포맷. 마크다운과 YAML 프론트매터에 출처, 신뢰, 유통기한을 적어두는 OKF v0.2의 규칙과 번들 구조, Attested Computation, 도입 로드맵까지 정리합니다.
--- type: Attested Computation runtime: bigquery parameters: - { name: year, type: integer, required: true } executor: resource: skills/run-on-bq.md receipt: [job_id, executed_sql, result] attester: resource: attesters/sql_equality.py verified: - { by: human:jsmith@acme, at: 2026-07-01T09:00:00Z } status: stable stale_after: 2026-12-31T00:00:00Z --- -
JavaScript Proxy 객체의 힘
속성 읽기, 쓰기, in 검사를 실제로 일어나기 전에 가로채는 Proxy. get, set, has 트랩과 유효성 검사, 기본값, 메모이제이션, 로깅 사례를 코드로 봅니다.
const user = new Proxy({}, { set(target, property, value) { if (property === 'age' && typeof value !== 'number') { throw new TypeError('나이는 숫자여야 합니다'); } target[property] = value; return true; // 할당 성공 } }); user.age = 25; // 통과 user.age = '25'; // TypeError -
Git worktree 완벽 가이드
feature 브랜치 작업 중 main 핫픽스가 터지면 stash 대신 디렉토리를 하나 더 엽니다. 원리, 기본 명령, 실전 시나리오, bare 저장소 패턴까지.
-git stash -git checkout main -git checkout -b hotfix/critical-bug -# ...수정하고 커밋... -git checkout feature/new-api -git stash pop +git worktree add ../my-project-hotfix \ + -b hotfix/critical-bug main +cd ../my-project-hotfix +# feature 브랜치는 그대로. 작업 디렉토리만 하나 더 생겼다.
-
Prisma ORM 완전 정복
SQL 없이 타입이 맞는 쿼리, 스키마 파일 하나에서 나오는 마이그레이션과 클라이언트. Next.js App Router에서 Prisma를 세팅하고 CRUD, 트랜잭션, 타입 활용까지 정리합니다.
import { PrismaClient } from '@prisma/client' const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined } // 핫 리로드마다 새로 만들지 않도록 전역에 하나만 둔다 export const prisma = globalForPrisma.prisma ?? new PrismaClient() if (process.env.NODE_ENV !== 'production') { globalForPrisma.prisma = prisma }