첫 번째 풀스택 앱 개발: Part 3 - PostgreSQL 및 Knex.js를 사용한 데이터베이스 통합
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
백엔드 개발자, 데이터베이스 초보자
난이도: 중급(데이터베이스 설정 및 보안 처리 기초 지식 필요)
핵심 요약
- PostgreSQL 사용으로 데이터 지속성 확보 및 인메모리 배열 한계 극복
bcryptjs
로 비밀번호 해싱 처리하여 보안 강화- Knex.js를 통해 SQL 쿼리 빌더로 데이터베이스 연결 및 관리
CREATE TABLE
명령어로 사용자 및 로그인 테이블 설계- DBeaver 도구 활용으로 데이터베이스 시각화 및 관리 효율화
섹션별 세부 요약
1. 왜 실제 데이터베이스가 필요한가?
- 인메모리 배열의 스케일링 한계와 데이터 지속성 문제
- 비밀번호 인증 시 전체 데이터셋 순회 필요로 인한 성능 저하
2. PostgreSQL 설치 및 구성
- Homebrew를 통한 PostgreSQL 설치 절차
brew update
,brew install postgresql
,brew services start postgresql
- 데이터베이스 생성 명령어:
createdb 'your_database_name'
- psql 명령어로 데이터베이스 연결
3. 데이터베이스 스키마 설계
- users 테이블:
id
,name
,email
,entries
,joined
컬럼 CREATE TABLE users (...)
명령어 실행- login 테이블:
id
,hash
,email
컬럼 CREATE TABLE login (...)
명령어 실행
4. Knex.js를 통한 데이터베이스 연결
- Knex.js 설치:
npm install knex
- PostgreSQL 클라이언트 라이브러리 설치:
npm install pg
- 데이터베이스 연결 설정:
```javascript
const db = knex({
client: 'pg',
connection: {
host: '127.0.0.1',
user: 'postgres',
password: '',
database: 'smartweb'
}
});
```
- 데이터베이스 연결 테스트:
db.select('*').from('users')
5. 비밀번호 해싱: bcryptjs 사용
- bcryptjs 설치:
npm install bcryptjs
- 동기식 해싱 사용으로 학습 곡선 완화
- 비밀번호는 원문 저장 금지 및 사용자만 접근 가능
결론
- DBeaver 활용으로 데이터베이스 시각화를 통해 관리 효율성 향상
- bcryptjs로 보안 강화 및 비밀번호 해싱 처리 필수
- Knex.js는 SQL 쿼리 빌더로 간단한 ORM 대체 가능
- Homebrew를 통한 PostgreSQL 설치 및 데이터베이스 스키마 설계 시 명확한 컬럼 정의 필수