데이터베이스 작업을 하다 보면 꼭 마주치게 되는 녀석이 있죠? 바로 INT(11)입니다. 괄호 안의 숫자 11 때문에 '11자리까지만 저장되는 건가?' 하고 헷갈리는 분들이 정말 많아요.
오늘은 이 INT(11)의 진짜 의미와, 우리가 왜 이 타입을 습관처럼 사용하게 되었는지, 그리고 안정적인 웹사이트 개발을 위해 어떻게 활용해야 하는지 쉽고 친절하게 알려드릴게요!
결론부터 말씀드리자면, MySQL에서 INT(11)을 정의했을 때, 가장 중요한 것은 INT 부분입니다!
| 구분 | INT (데이터 타입) | (11) (표시 길이) |
| 진짜 역할 | 데이터의 저장 공간(4바이트)과 저장 범위를 결정합니다. | ZEROFILL 옵션 사용 시 앞에 0을 채워 넣을 때의 자릿수를 지정합니다. |
| 저장 범위 | 약 21억까지 (SIGNED, 부호 포함) 또는 약 42억까지 (UNSIGNED, 양수만) | 실제 저장되는 값의 최대 크기에는 영향을 주지 않습니다! |
INT는 4바이트(32비트) 공간을 사용합니다.
부호 있는 INT의 최대값 은 10자리 숫자입니다. 만약 음수를 저장한다고 가정하면, 앞에 마이너스 부호(-)까지 포함해서 11자리가 필요하게 됩니다.
그래서 INT(11)은 "INT 타입이 가질 수 있는 모든 자릿수(부호 포함)를 표현할 수 있는 길이"라는 의미로 관습처럼 굳어져서 사용하게 된 것이랍니다!
INT(11)은 단독으로 쓸 때는 아무 의미가 없지만, ZEROFILL이라는 옵션과 함께 쓸 때 제 역할을 합니다.
| SQL 정의 | 저장된 값이 123일 때의 출력 |
| INT(5) ZEROFILL | 00123 |
| INT(11) ZEROFILL | 00000000123 |
ZEROFILL은 출력 시 비어있는 앞자리를 0으로 채워주는 역할을 하는데요. 주로 정렬이나 고정된 형식으로 데이터를 보여줄 때 사용되지만, 실제 홈페이지 개발 시에는 거의 사용하지 않는 옵션이니 참고만 해두셔도 충분합니다.
PHP나 JavaScript로 웹 프로그램을 짤 때, 데이터 타입을 정확히 이해하는 것은 매우 중요합니다.
| 홈페이지 제작 전에 알아야 할 "호스팅"의 모든 것 (6) | 2025.06.12 |
|---|---|
| MySQL과 MariaDB, 무엇이 다를까? (1) | 2025.06.09 |