상세 컨텐츠

본문 제목

[가격비교사이트] 프로젝트 진행 단계

코딩 공부노트/다시 새출발~!

by 현고미(H-gomi) 2024. 10. 28. 11:00

본문

반응형

1. 데이터 모델 설계

 

이 단계에서는 데이터베이스에서 주류 정보, 판매처 정보, 사용자 리뷰와 권한을 관리할 수 있는 구조를 설계하는 것이 핵심입니다. 데이터베이스 구조를 효율적으로 설계하면 이후 기능 구현과 유지 보수가 훨씬 수월해질 것입니다.

 

주요 테이블 구성

 

주요 테이블과 각 필드를 다음과 같이 설정하는 것이 좋습니다:

 

1. drinks (주류 정보 테이블)

drink_id (INT, PK) - 고유 주류 ID

name (VARCHAR) - 주류 이름

type (VARCHAR) - 주류 타입 (맥주, 위스키 등)

origin (VARCHAR) - 생산지

alcohol_content (DECIMAL) - 도수

volume (INT) - 용량

2. retailers (판매처 정보 테이블)

retailer_id (INT, PK) - 판매처 ID

name (VARCHAR) - 판매처 이름

location (VARCHAR) - 위치 (오프라인일 경우에만)

drink_id (INT, FK) - 외래키, 주류 정보와 연결

price (DECIMAL) - 가격

link (TEXT) - 온라인 판매처 링크

3. users (사용자 정보 테이블)

user_id (INT, PK) - 사용자 ID

username (VARCHAR) - 사용자 이름

user_level (TINYINT) - 사용자 등급 (0 = 일반 사용자, 1 = 전문가)

4. comments (전문가 리뷰 테이블)

comment_id (INT, PK) - 댓글 ID

drink_id (INT, FK) - 주류 ID

user_id (INT, FK) - 사용자 ID

content (TEXT) - 댓글 내용

timestamp (TIMESTAMP) - 작성 시간

 

2. 프론트엔드 및 백엔드 개발 전략

 

프론트엔드

 

이 프로젝트에서는 사용자가 주류 목록을 확인하고 가격 비교를 손쉽게 할 수 있어야 합니다. 초기 개발에는 다음 사항을 고려할 수 있습니다:

 

HTML, CSS, JavaScript, jQuery: 기본 페이지 구조와 인터랙션을 설정할 때 유용하며, 사용자와 데이터베이스 간의 기본 기능을 구현하는 데 적합합니다.

React (옵션): 프론트엔드의 성능을 높이고, UI 컴포넌트를 체계적으로 관리하기 위해 React로 구성하는 것도 좋습니다.

 

백엔드

 

백엔드에서는 데이터베이스와의 연결과 데이터 처리를 담당하며, PHP와 함께 사용하면 다음과 같은 기능을 쉽게 구현할 수 있습니다:

 

PHP 및 REST API: 주류 정보, 판매처 정보, 리뷰 정보를 JSON 형태로 반환하는 RESTful API를 구축합니다.

서버 프레임워크: PHP와 호환이 되는 간단한 프레임워크인 Laravel을 사용하면 데이터베이스 관리와 API 개발을 더욱 쉽게 처리할 수 있습니다.

 

데이터 흐름 구조

 

API를 통한 데이터 흐름이 주류 정보 및 가격 비교 기능을 위해 효율적으로 설계됩니다.

 

API 엔드포인트 예시:

/api/drinks : 주류 목록 제공

/api/drinks/{id} : 특정 주류 상세 정보 제공

/api/comments : 특정 주류에 대한 리뷰 정보 제공 및 전문가만 접근 가능

 

3. 전문가 댓글 기능 설계

 

전문가만 댓글을 남길 수 있도록 하기 위해서는 사용자 레벨을 활용하여 댓글 작성 권한을 제한합니다. 다음과 같은 접근 방식으로 구현할 수 있습니다.

 

1. 권한 필드: users 테이블에서 user_level 필드를 기반으로 권한을 구분합니다.

2. 댓글 작성 접근 제한:

댓글을 작성하기 전 user_level 필드를 확인하여 레벨 1 이상인 사용자만 댓글 작성 기능이 보이도록 구현합니다.

3. 검증 과정:

백엔드에서 댓글 등록 API를 호출할 때마다 user_level을 다시 확인하여, 비정상적인 접근을 방지합니다.

반응형

관련글 더보기