📚 PHP 중급 - 2주차: 회원가입 및 로그인 시스템 구현 - 01 데이터베이스 스키마 설계 (사용자 테이블)
2025. 7. 14. 13:33ㆍ프로그램/PHP 중급
📚 PHP 중급 - 2주차: 회원가입 및 로그인 시스템 구현 - 01 데이터베이스 스키마 설계 (사용자 테이블)

이번 포스팅에서는 #PHP 중급 과정의 두 번째 주차 학습 내용인 #회원가입 및 #로그인 시스템 구현을 위한 첫 단계로, #데이터베이스 #스키마 설계에 대해 알아보겠습니다. 특히, 사용자 정보를 저장할 사용자 테이블(#UserTable)의 구조를 자세히 살펴보겠습니다.
사용자 테이블 설계의 중요성

안정적이고 효율적인 #회원 관리 시스템을 구축하기 위해서는 잘 설계된 사용자 테이블이 필수적입니다. 사용자 테이블은 모든 회원 정보를 담는 핵심적인 부분이므로, 데이터의 무결성, 보안, 그리고 확장성을 고려하여 신중하게 설계해야 합니다.
사용자 테이블 (users) 스키마

다음은 users 테이블의 권장 스키마입니다. 각 필드에 대한 설명과 함께 예시 SQL을 제공합니다.
| 필드명 (Column Name) | 데이터 타입 (Data Type) | 제약 조건 (Constraints) | 설명 (Description) |
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 사용자의 고유 식별자 |
| username | VARCHAR(50) | NOT NULL, UNIQUE | 사용자의 로그인 아이디 (중복 불가) |
| password | VARCHAR(255) | NOT NULL | 사용자의 비밀번호 (해시 처리) |
| VARCHAR(100) | NOT NULL, UNIQUE | 사용자의 이메일 주소 (중복 불가) | |
| created_at | DATETIME | DEFAULT CURRENT_TIMESTAMP | 사용자 계정 생성 시간 |
| updated_at | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 사용자 정보 최종 수정 시간 |
Sheets로 내보내기
스키마 설명
- id: 각 사용자를 고유하게 식별하는 기본 키입니다. AUTO_INCREMENT를 사용하여 새로운 사용자가 추가될 때마다 자동으로 1씩 증가하는 값을 가집니다.
- username: 사용자가 로그인 시 사용할 아이디입니다. UNIQUE 제약 조건을 통해 중복된 아이디 생성을 방지합니다. #VARCHAR(50)은 최대 50자까지의 문자열을 저장할 수 있음을 의미합니다.
- password: 사용자의 비밀번호를 저장하는 필드입니다. 보안을 위해 비밀번호는 반드시 #해싱(Hashing)하여 저장해야 합니다. #VARCHAR(255)는 해싱된 비밀번호를 저장하기에 충분한 공간을 제공합니다.
- email: 사용자의 이메일 주소입니다. UNIQUE 제약 조건을 통해 중복된 이메일 등록을 방지하고, 비밀번호 찾기 등의 기능에 활용될 수 있습니다.
- created_at: 사용자 계정이 생성된 시간을 기록합니다. DEFAULT CURRENT_TIMESTAMP를 사용하여 레코드가 생성될 때 자동으로 현재 시간이 기록됩니다.
- updated_at: 사용자 정보가 마지막으로 수정된 시간을 기록합니다. DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP를 사용하여 레코드가 업데이트될 때마다 자동으로 현재 시간이 갱신됩니다.
SQL 예시 (MySQL)

SQL
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
위 SQL 문을 사용하여 users 테이블을 생성할 수 있습니다. 데이터베이스 관리 도구(예: phpMyAdmin, MySQL Workbench) 또는 명령줄을 통해 이 SQL을 실행하세요.