PostgreSQL & Knex.js로 데이터베이스 통합: 풀스택 앱 개발 Part 3

첫 번째 풀스택 앱 개발: 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.jsSQL 쿼리 빌더로 간단한 ORM 대체 가능
  • Homebrew를 통한 PostgreSQL 설치 및 데이터베이스 스키마 설계명확한 컬럼 정의 필수