MoNew 프로젝트: ERD 설계 데이터 타입에 대한 고민(VARCHAR vs TEXT)

2026. 4. 15. 11:33·코드잇 스프린트/실습

 

1. VARCHAR(255)가 최대 아닌가? : 그냥 관례이다.

  • VARCHAR(1000),10000도 가능하다.
  • PostgreSQL의 VARCHAR(n)은 최대 약 1GB까지 가능하다.
  • 극단적으로 보면 PostgreSQL에서 VARCHAR는 약 VARCHAR(1073741824)까지 가능하다. 약 10억자.
  • 뉴스기사 제공 API문서에 최대 데이터 수를 CHECK

2. 요약의 TEXT는 적절한가?

  • summary가 10자일수도, 500자일수도 있다.
  • PostgreSQL에서 TEXT는 가변길이 그대로 저장된다.
  • 따라서 VARCHAR로 지정하는것보다 TEXT가 좋다고 생각한다.

그럼 가변으로 저장되는거면, title과 original_link도 TEXT타입으로 저장하는게 좋은거 아니냐?

  • 무결성때문에 VARCHAR로 저장하는게 좋다.
  • ex) 제목은 길어봐야 2,300자 수준이다. 근데 제목이 1000자가 들어오면 비정상 데이터로 판단할 줄 알아야한다.
  • 따라서 VARCHAR로 설정함으로써 DB레벨에서 막을 수 있어야한다.

*데이터 무결성: 데이터가 정확하고, 일관되고, 신뢰할 수 있는 상태를 유지하는것.

ex) emal: "abc" x / age: -5/ title: 1000짜리 문자열: 비정상 데이터

 


3. 조회수의 BIGINT는 적절한가?

  • BIGINT는 9경정도까지의 숫자가 가능하다.
  • 같은사용자가 여러번 조회해도 1회로 친다는 요구사항에 봤을때 BIGINT는 과하다.
  • INT의 범위가 21억까지 이므로 INT만해도 충분하다.
  • 결론: INT로 변경

 

'코드잇 스프린트 > 실습' 카테고리의 다른 글

Docker 컨테이너 포트를 80으로 쓰면 안되는 이유  (0) 2026.04.29
뉴스기사 조회수 증가 동시성 문제 트러블 슈팅  (0) 2026.04.23
FINDEX 프로젝트: Railway로 프로젝트 배포하기  (0) 2026.03.17
Findex 프로젝트: 지수정보 update가 이루어지지않는다 400에러  (0) 2026.03.17
Findex 프로젝트: 지수정보 목록 조회 Cursor기반 페이지네이션 적용  (0) 2026.03.16
'코드잇 스프린트/실습' 카테고리의 다른 글
  • Docker 컨테이너 포트를 80으로 쓰면 안되는 이유
  • 뉴스기사 조회수 증가 동시성 문제 트러블 슈팅
  • FINDEX 프로젝트: Railway로 프로젝트 배포하기
  • Findex 프로젝트: 지수정보 update가 이루어지지않는다 400에러
과컴
과컴
벡엔드 개발자 최소기준 맞추겠습니다.
  • 과컴
    곽의 프로그램
    과컴
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • 위클리페이퍼 (6)
      • 파이썬 (4)
      • 코드잇 스프린트 (48)
        • Spring 이론 (7)
        • Java이론 (11)
        • 실습 (23)
      • 백엔드 개발자 최소기준 (1)
      • 코딩테스트 (5)
        • 알고리즘 (0)
        • SQL (1)
      • Git (5)
      • 스프링부트 핵심가이드 (1)
      • 트러블 슈팅 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준1075번
    문자열
    백준2576
    파이썬
    혼공파
    파이썬입문
    백준1152
    파이썬기초
    백준브론즈
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
과컴
MoNew 프로젝트: ERD 설계 데이터 타입에 대한 고민(VARCHAR vs TEXT)
상단으로

티스토리툴바