99명

최근 30분간 동시 방문자 수를 표시합니다. (~)

최고 동시 방문자 수 -
어제: 0명 / 오늘: 0명

Supabase 테이블 컬럼의 데이터 타입 정리

DBPostgreSQLSupabasePrisma
2년 전
5.6K
0
0

Supabase(PostgreSQL)에서 테이블을 생성할 때 각 컬럼의 데이터 타입 선택은 데이터를 효율적으로 활용하고 검색이나 처리 성능을 최적화하는 데 중요합니다.
그리고 단순히 데이터를 저장하는 것뿐만 아니라 이후 데이터베이스를 확장하거나 유지/보수하는 부분에도 영향을 미치기 때문에 신중한 설계가 필요합니다.

Supabase Table Data Type

처음 PostgreSQL 데이터 타입을 접하거나 익숙하지 않다면 어떤 타입을 선택해야 할지 막막할 수 있습니다.
그래서 데이터 타입을 선택하는 데 도움이 될 수 있도록 다음과 같이 설명과 함께 표로 정리했습니다.
표를 참고해서 프로젝트에 적합한 데이터베이스 구조를 설계해 보세요!

Supabase Prisma TypeScript 설명
int2 Int number 등급, 나이, 평점 등 작은 범위의 정수 값(-32,768 ~ +32,767)을 다룰 때 사용합니다.
대규모 데이터를 처리할 때 저장 공간을 좀 더 절약할 수 있습니다.
int4 Int number 가장 보편적인 범위의 정수 값(-2,147,483,648 ~ +2,147,483,647)입니다.
int8 BigInt bigint 매우 큰 범위의 정수 값(-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807)입니다.
대량 데이터의 ID, 조회수, 큰 금액 등 값이 범위가 매우 커야 하는 경우에 사용합니다.
float4 Float number 소수점 아래 6자리까지의 정확도를 제공하는 부동소수점 값입니다.
메모리 효율성이 중요하거나 온도, 좌표 같은 높은 정밀도가 필요하지 않은 경우에 사용합니다.
float8 Float number 소수점 아래 15자리까지의 정확도를 제공하는 부동소수점 값입니다.
과학 계산, 항공 데이터 등의 보다 정밀한 계산이 필요한 경우에 사용합니다.
numeric Decimal Decimal 금융 거래나 회계 계산처럼 오차가 허용되지 않는 완벽한 정확도를 요구하는 십진수 계산이 필요한 경우에 사용합니다.
상대적으로 처리 속도가 느립니다.
json Json Prisma.JsonValue 구조화된 JSON 데이터를 문자열로 저장합니다.
데이터를 처리할 때마다 파싱해야 하므로 단순 저장이 아닌 이상 jsonb 사용을 추천합니다.
jsonb Json Prisma.JsonValue JSON 데이터를 바이너리 형태로 저장합니다.
처리 속도가 빠르고 인덱싱이 가능해 데이터 검색이나 수정이 자주 필요한 경우에 유용합니다.
text String string 긴 텍스트, 게시글 내용 등 길이 제한이 없는 문자열입니다.
varchar String string 사용자 이름, 이메일 등 길이가 제한적인 문자열입니다.
길이 제한을 확인하는 과정에서 약간의 오버헤드가 발생할 수 있으므로 대부분의 경우 text 사용을 추천합니다.
uuid String string 범용 고유 식별자를 저장합니다.
고유한 ID가 필요한 경우에 사용하며 32자리의 16진수로 구성됩니다.
date DateTime Date 시간 정보를 제외한 날짜를 저장하며 생년월일, 기념일 등을 다룰 때 사용합니다.
timestamptz 사용을 추천합니다.
예시) 2025-12-16 => 2025-12-16T00:00:00.000Z
time DateTime Date 날짜 정보를 제외한 시간만을 저장하며 영업 시간, 일과 시간 등을 다룰 때 사용합니다.
timestamptz 사용을 추천합니다.
예시) 08:10:28 => 1970-01-01T08:10:28.000Z
timetz DateTime Date 시간과 시간대(Time Zone) 정보를 함께 저장합니다.
timestamptz 사용을 추천합니다.
예시) 08:10:28+00 => 1970-01-01T08:10:28.000Z
timestamp DateTime Date 날짜와 시간을 함께 저장하며 이벤트 발생 시각, 데이터 생성/수정 시각 등을 다룰 때 사용합니다.
timestamptz 사용을 추천합니다.
예시) 2025-01-15 08:10:28.000 => 2025-01-15T08:10:28.000Z
timestamptz DateTime Date 날짜, 시간, 시간대(Time Zone) 정보를 모두 저장합니다.
글로벌 서비스에서 시간대를 고려해야 하는 경우에 사용하며 가장 추천하는 방식입니다.
예시) 2025-01-15 08:10:28.000+00 => 2025-01-15T08:10:28.000Z
bool Boolean boolean 참/거짓의 불린 값을 저장합니다.