PostgreSQL 데이터 유형 이해
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
- PostgreSQL은 다양한 데이터 형식을 처리하기 위한 광범위한 데이터 유형을 제공합니다.
- 데이터 유형을 적절하게 선택하면 데이터베이스 성능과 무결성을 향상시킬 수 있습니다.
- PostgreSQL은 복잡한 데이터 모델링을 위해 배열, JSON 및 범위 유형과 같은 고급 유형을 지원합니다.
PostgreSQL은 개발자가 다양한 형태의 데이터를 효율적으로 저장하고 조작할 수 있도록 포괄적인 데이터 유형 세트를 제공합니다. 적절한 데이터 유형을 선택하는 것은 데이터 무결성을 보장하고, 스토리지를 최적화하며, 쿼리 성능을 향상시키는 데 매우 중요합니다. 이 기사에서는 PostgreSQL에서 사용할 수 있는 다양한 데이터 유형을 자세히 살펴보고 사용법과 이점에 대한 통찰력을 제공합니다.
숫자 유형
PostgreSQL의 숫자 유형은 정수와 부동 소수점 수를 모두 저장하는 데 사용됩니다.
-
정수 유형:
smallint
: 2바이트 정수, 범위는 -32,768 ~ 32,767입니다.integer
또는int
: 4바이트 정수, 범위는 -2,147,483,648 ~ 2,147,483,647입니다.bigint
: 8바이트 정수, 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807입니다.
-
Serial 유형 (자동 증가 정수):
smallserial
: 2바이트 자동 증가 정수.serial
: 4바이트 자동 증가 정수.bigserial
: 8바이트 자동 증가 정수.
-
부동 소수점 유형:
real
: 4바이트 단정밀도 부동 소수점 숫자.double precision
: 8바이트 배정밀도 부동 소수점 숫자.
-
임의 정밀도 유형:
numeric
또는decimal
: 사용자 지정 정밀도, 통화 금액과 같은 정확한 숫자 값에 적합합니다.
통화 유형
money
: 고정 소수점 정밀도로 통화 금액을 저장합니다. 재무 계산에 적합한 8바이트 유형입니다.
문자 유형
문자 유형은 텍스트 문자열을 저장하는 데 사용됩니다.
char(n)
: 고정 길이 문자 유형, 공백으로 채워집니다.varchar(n)
: 제한이 있는 가변 길이 문자 유형.text
: 특정 제한이 없는 가변 길이 문자 유형.
이진 데이터 유형
bytea
: 이진 문자열을 저장하여 이미지 또는 파일과 같은 이진 데이터를 저장할 수 있습니다.
날짜/시간 유형
PostgreSQL은 날짜 및 시간 값을 처리하기 위한 몇 가지 유형을 제공합니다.
date
: 달력 날짜(년, 월, 일)를 저장합니다.time [ (p) ] [ without time zone ]
: 하루 중 시간 값을 저장합니다.time [ (p) ] with time zone
: 시간대와 함께 하루 중 시간 값을 저장합니다.timestamp [ (p) ] [ without time zone ]
: 날짜와 시간을 모두 저장합니다.timestamp [ (p) ] with time zone
: 시간대와 함께 날짜와 시간을 모두 저장합니다.interval
: 시간 범위를 나타냅니다.
부울 유형
boolean
: 논리적 부울 값인true
,false
또는null
을 저장합니다.
열거형 유형
열거형 유형(enum
)을 사용하면 정적이고 정렬된 값 집합을 만들 수 있습니다. 요일 또는 상태 코드와 같이 특정 값 집합만 포함해야 하는 열에 유용합니다.
예:
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
기하학적 유형
PostgreSQL에는 2차원 공간 객체를 나타내는 유형이 포함되어 있습니다.
point
: 숫자의 기하학적 쌍입니다.line
: 무한한 선입니다.lseg
: 선분입니다.box
: 직사각형 상자입니다.path
: 닫히거나 열린 경로입니다.polygon
: 다각형입니다.circle
: 원입니다.
네트워크 주소 유형
이러한 유형은 네트워크 관련 정보를 저장하도록 설계되었습니다.
cidr
: IPv4 또는 IPv6 네트워크입니다.inet
: IPv4 또는 IPv6 호스트 주소입니다.macaddr
: MAC 주소입니다.
비트 문자열 유형
비트 마스크를 저장하는 데 사용됩니다.
bit(n)
: 고정 길이 비트 문자열입니다.bit varying(n)
: 가변 길이 비트 문자열입니다.
텍스트 검색 유형
PostgreSQL은 전체 텍스트 검색 기능을 지원하는 유형을 제공합니다.
tsvector
: 텍스트 검색에 최적화된 형식의 문서입니다.tsquery
: 텍스트 쿼리입니다.
UUID 유형
uuid
: 공간과 시간에 걸쳐 고유해야 하는 식별자에 유용한 UUID(Universally Unique Identifier)를 저장합니다.
XML 유형
xml
: XML 데이터를 저장하여 XML 문서를 저장하고 쿼리할 수 있습니다.
JSON 유형
PostgreSQL은 JSON 데이터에 대한 강력한 지원을 제공합니다.
json
: JSON 데이터를 텍스트로 저장합니다.jsonb
: JSON 데이터를 이진 형식으로 저장하여 효율적인 처리 및 인덱싱이 가능합니다.
배열
PostgreSQL을 사용하면 열을 내장 또는 사용자 정의 기본 유형의 배열로 정의할 수 있습니다.
예:
CREATE TABLE products ( name text, tags text[] );
복합 유형
복합 유형을 사용하면 여러 필드가 있는 구조를 만들 수 있습니다.
예:
CREATE TYPE address AS ( street text, city text, zip_code text );
범위 유형
범위 유형은 일부 요소 유형의 값 범위를 나타냅니다.
기본 제공 범위 유형은 다음과 같습니다.
int4range
: 정수 범위입니다.numrange
: 숫자 범위입니다.tsrange
: 시간대 없는 타임스탬프 범위입니다.tstzrange
: 시간대 있는 타임스탬프 범위입니다.daterange
: 날짜 범위입니다.
도메인 유형
도메인은 선택적 제약 조건이 있는 데이터 유형입니다. 재사용 가능한 제약 조건을 만드는 데 유용합니다.
예:
CREATE DOMAIN positive_integer AS integer CHECK (VALUE > 0);
객체 식별자 유형
oid
: 객체 식별자로 PostgreSQL에서 객체를 식별하는 데 내부적으로 사용됩니다.
의사 유형
의사 유형은 함수가 표준 데이터 유형을 반환하지 않음을 나타내는 특수 목적 유형입니다.
예는 다음과 같습니다.
any
void
internal
결론
PostgreSQL의 풍부한 데이터 유형 세트는 복잡한 데이터 구조를 모델링하고 데이터 무결성을 적용하는 데 유연성을 제공합니다. 적절한 데이터 유형을 이해하고 활용하는 것은 효율적이고 안정적인 데이터베이스 시스템을 설계하는 데 기본입니다.
FAQs
smallint
, integer
, bigint
, real
, double precision
및 numeric
입니다.
jsonb
는 JSON을 이진 형식으로 저장하여 처리 및 인덱싱 속도를 높입니다.
예, 복합 유형, 열거형 유형 또는 도메인 유형을 사용하여 만들 수 있습니다.
저희는 백엔드 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하세요.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불하세요. 요청도, 요금도 없습니다.
타의 추종을 불허하는 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불하세요.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리할 수 있는 자동 확장.
- 운영 오버헤드가 전혀 없습니다. 빌드에만 집중하세요.
설명서에서 더 자세히 알아보세요!
X에서 팔로우하세요: @LeapcellHQ