🌿 중급 DB
Unique 제약이 뭔가요?
쉽게 이해하기
학교에서 학번이 중복되면 안 되는 것처럼, 데이터베이스에서도 '이메일은 같은 값이 두 번 들어가면 안 돼'라고 규칙을 정할 수 있습니다. Unique 제약은 데이터의 유일성을 보장해서 같은 값이 중복으로 저장되는 것을 막아줍니다.
핵심 정리
테이블의 특정 컬럼에 중복된 값이 입력되지 못하도록 막는 데이터베이스 규칙입니다.
자세히 알아보기
Unique 제약(Unique Constraint)은 데이터베이스 테이블의 특정 컬럼에 중복된 값이 저장되지 못하도록 하는 제약 조건입니다. Primary Key와 비슷하지만, Unique 제약은 NULL 값을 허용할 수 있고(데이터베이스에 따라 다름), 한 테이블에 여러 개를 설정할 수 있다는 차이가 있습니다.
실무에서는 중복되면 안 되는 데이터를 보호할 때 필수적으로 사용됩니다. 회원 가입 시스템에서 이메일 주소나 닉네임은 중복될 수 없으므로 Unique 제약을 걸어둡니다. 이렇게 하면 애플리케이션 코드에서 중복 체크를 하지 않아도 데이터베이스 레벨에서 자동으로 막아주므로 더 안전합니다. 만약 중복된 값을 INSERT하려고 하면 데이터베이스가 에러를 반환하기 때문에, 개발자는 이를 처리하는 로직을 추가해야 합니다.
Unique 제약은 자동으로 인덱스를 생성하므로 검색 성능도 향상됩니다. 예를 들어 이메일로 사용자를 찾는 쿼리가 자주 실행된다면, Unique 제약이 있는 이메일 컬럼은 이미 인덱스가 있어서 빠르게 검색됩니다. 또한 여러 컬럼을 묶어서 Unique 제약을 걸 수도 있는데, 예를 들어 '같은 사용자가 같은 상품을 장바구니에 중복으로 담을 수 없다'는 규칙을 user_id와 product_id를 묶은 Unique 제약으로 구현할 수 있습니다.