---
globs: **/*.ts, **/*.tsx
---

# TypeScript 공통 규칙

## 경로 alias
`@/*` → `./src/*` (tsconfig paths). 항상 `@/` 접두사 사용:
```typescript
import { queryRows } from "@/lib/db";        // O
import { queryRows } from "../../lib/db";     // X
```

## import 그룹 순서
1. React/Next.js (`react`, `next/*`)
2. 외부 라이브러리 (`sweetalert2`, `jose`, `lucide-react`)
3. 내부 모듈 (`@/lib/*`, `@/store/*`, `@/types/*`, `@/components/*`)

## 데이터 타입
- API 응답 데이터: `Record<string, unknown>[]`
- 그리드 행 데이터: `Record<string, unknown>`
- 필드명은 대문자: `row.OBJID`, `row.USER_NAME`
- 중앙 타입은 `@/types/index.ts`에서 import

## null 처리
`checkNull(value)` 유틸리티 사용. 문자열 `"null"`, `"undefined"`도 빈 문자열로 변환.

## strict mode
tsconfig에 `strict: true` 설정됨. 암시적 any 금지.
