실습 - MCV-sequelize의 실습

YoonSuk Choi·2024년 12월 12일

6주차_MVC 실습

목록 보기
4/4

MVC와 MySQL의 연결 내용

  • MVC 패턴을 활용하여 Sequelize ORM과 MySQL 데이터베이스를 연결한 프로젝트

실습 결과

  • 회원가입, 로그인, 회원정보 수정 및 삭제 기능을 정상적으로 구현.
  • 데이터베이스와의 연결을 통해 데이터를 안전하게 CRUD(Create, Read, Update, Delete) 처리.
  • View 단에서 EJS 템플릿을 활용하여 동적 웹 페이지 생성.

MVC와 MySQL의 연결 내용

  • MySQL 데이터베이스와의 연동
    • Sequelize의 sync 메소드를 통해 데이터베이스 테이블을 자동으로 생성하거나 업데이트.

폴더 구조와 코드의 역할

15_MCV-sequelize
├── config/
│   ├── config.js   // 환경 변수로부터 DB 연결 정보를 가져오는 설정 파일.
│   ├── config.json // 기본 DB 설정 정보 (dotenv를 통해 대체).
├── controller/
│   ├── Cuser.js    // 사용자 관련 로직 처리 컨트롤러.
├── models
│   ├── User.js     // 사용자 모델 정의.
│   ├── index.js    // Sequelize 초기화 및 모델 등록.
│   ├── 기존 User.js // MySQL 직접 쿼리 작성했던 코드.
├── routes
│    ── user.js      // 사용자 관련 라우트 정의.
├── node_modules/   // 프로젝트 의존성 파일.
├── views/
│   │   ├── include/
│   │   │   ├── include.ejs // 공통 헤더 파일.
│   ├── 404.ejs     // 404 에러 페이지.
│   ├── index.ejs   // 메인 페이지.
│   ├── profile.ejs // 회원 정보 페이지.
│   ├── signin.ejs  // 로그인 페이지.
│   ├── signup.ejs  // 회원가입 페이지.
├── .env            // 환경 변수 파일.
├── app.js          // Express 애플리케이션 초기화 및 설정.
├── package-lock.json
└── package.json    // 프로젝트 메타 정보.

코드별 내용

GitHub 링크 바로가기

1. config.js

  • 환경 변수에서 데이터베이스 설정 정보를 가져와 Sequelize의 설정을 제공

2. Cuser.js (Controller)

  • 사용자 관련 요청을 처리하는 컨트롤러로, View와 Model 사이의 비즈니스 로직을 수
  • 주요 기능:
    1.회원가입: User.create()
    2.로그인: User.findOne()
    3.회원정보 수정: User.update()
    4.회원 탈퇴: User.destroy()

3. User.js (Model)

  • Sequelize를 통해 정의된 사용자 모델로, 테이블 컬럼과 속성 정의

4. User.js (기존)

  • 직접 SQL 쿼리를 작성했던 코드를 포함합니다. Sequelize로 대체

5. Routes

  • 라우트 설정 파일로, 요청 URL과 컨트롤러를 연결

6. EJS Views

각 페이지의 템플릿을 정의하며, 동적 데이터 렌더링을 지원합니다.

  • index.ejs: 메인 페이지.
  • signup.ejs: 회원가입 폼.
  • signin.ejs: 로그인 폼.
  • profile.ejs: 회원정보 수정/삭제.
  • 404.ejs: 에러 페이지.

7. app.js

Express 애플리케이션의 초기 설정 및 실행 파일.

  • 미들웨어 구성 (body-parser, 라우트 등).
  • Sequelize sync를 통해 DB 연결 확인.
profile
Name : 최윤석(YoonSuk Choi)

0개의 댓글