개인 프로젝트

토이 프로젝트 기획

오마이냥 2024. 5. 22. 14:12

아침마다 오늘은 뭘 입고 나가야 하는지 고민에 빠진다. 나는 휴대폰이나 뉴스에서 오늘은 추운지 더운지 비가 오는지 바람이 부는지 확인하고 코트를 입을지 롱패딩을 입을지 반팔을 입을지 아니면  얇은 겉옷을 챙길지 옷차림을 결정하곤 했다. 

 

매일 하는 고민... 매일 소비되는 시간.... 혼자 고민하지 않고 사람들이 함께 정보를 나눈다면 아침마다 시간도 절약하고 너무 두껍게 입거나 얇게 입는 일은 없겠다는 생각으로 `오늘 뭐 입지(가제)`를 기획하였다.

 

개요

프로젝트 제목 오늘 뭐 입지?
사용 언어 Spring Boot (Java)
Vue.js (Java Script)
기획 목적 다른 사람들의 의견을 듣고 내 옷차림을 정하거나 내 데이터를 종합해 오늘의 옷차림을 추천 받는 사이트 제작
기대 효과 외출하기 전 뭘 입어야 할지 고민하는 시간을 줄일 수 있음
주요 기능  

 

 

아무리 늦어도 한달 안에 완성하는 것을 목표로 잡았다. (5.22~ 6.22)

 

 

기능 목록 전개

1. 메인 페이지

  • 현재 날씨를 보여준다.
    • 카카오 or 네이버 or 구글 날씨 API를 이용하자
      • 위치 정보를 어떻게 가져올지...
      • 위치 정보를 동의하지 않는다면 서울을 기준으로 하자
  • 오늘의 옷차림을 추천해준다.
    • 내 평가한 데이터와 현재 날씨를 종합해 오늘의 옷차림을 추천해준다.
      • 어떤 식으로 추천할지..? 기존의 데이터를 어떻게 활용할지 생
    • 다른 지역을 선택했을 때도 옷차림을 추천해주도록?
  • 다른 사람들의 평가 내역을 보여준다. 
    • 동일 지역 사람을 우선으로 
    • 3개 정도 보여주고
    • 더보기 버튼으로 더 많은 내역을 볼 수 있도록 한다.
      • 아니면 페이지 전환 없이 더보기.. 더보기,, 더보기로 더 많은 데이터를 접할 수 있도록
    • 간단한 코멘트
  • 회원 가입
    • 간단한 정보를 입력해 회원 가입한다. (이메일, 비밀번호)
      • 이메일로 가입할 때 어떤 정보가 필요한지, 이메일 검증 절차를 거쳐야 하는지
    • 카카오, 네이버, 구글 가입을 지원하도록?
  • 로그인
    • 아예 구글 이메일로 로그인 하는 방법도 있겠다
      • 이 경우 회원가입을 어떻게 해야하는지

 

2. 마이페이지

  • 내가 평가한 내역을 확인한다. (날짜도 함께 볼 수 있어야)
    • 삭제
    • 수정
  • 회원 탈퇴
  • 문의하기 
    • 문의 게시판을 만들지 아니면 관리자의 이메일만 남길지 

 

3. 다른 사람 평가 내역

  • 같은 지역 사람들의 평가 내역을 볼 수 있다.
  • 지역을 변경해서 다른 지역 사람들의 내역을 볼 수 있게 할지 고민...

 

4. 내 옷차림 평가하기

  • 옷차림 기록
    • 외투 : 코트, 롱패딩, 얇은 겉옷 등
    • 상의 : 반팔, 긴팔, 니트 등
    • 하의 : 청바지, 기모, 슬랙스 
      • 기모 선택란을 따로 만들지?
    • 악세사리 : 모자, 목도리, 장갑
  • 평가하기 : 딱 좋다, 쌀쌀하다, 춥다, 덥다 등
  • 수정
  • 삭제

 

세세한 기능을 추후에 추가하도록 하고 

큰 틀을 잡아서 필수 기능 먼저 구현하자!!

 

DB를 설계할 때 카테고리를 어떤 식으로 설정할지.... 만약에 그냥 긴팔 반팔 같은 String으로 입력한다면 굳이 Category Table을 만들지 않아도 되는데 

 

편의를 생각한다면...... 있는 게 더 좋겠지.....

 

일단 기본적인 값만 입력하는 것으로 만들고 추후에 수정하도록....?

 

 

 

UI 설계

 

 

 

DB

  1. Member 테이블
    1. 회원 가입 시 자동 증가되는 회원 아이디, 이메일, 비밀번호, 가입일자가 저장된다.
    2. 탈퇴여부 1은 true 0은 false이다.
  2. Board 테이블
    1. 내가 게시글을 작성했을 때 입력되는 정보다.
    2. 외투 목록, 상의 목록,,, 을 따로 카테고리 테이블로 빼야하는지 고민...... String으로 받는다면 굳이 카테고리 테이블을 만들 필요가 없지만......... 그럼 너무 무거워지지 않을까?
  3. Category 테이블
    1. 게시글 작성 시 회원 별, 타입 별로 보여줄 옷 종류를 선택할 수 있다.
    2. 예를 들어서, 상의에 20가지가 있다고 했을 때 1, 2, 5, 8번만 보여주게 한다면 선택 여부로 알 수 있을 것이다. 

 

 

Member 테이블

sql
코드 복사
CREATE TABLE Member (
mem_id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(50) NOT NULL,
regdate DATE NOT NULL,
cancel TINYINT DEFAULT 0
);

CategoryType 테이블

sql
코드 복사
CREATE TABLE CategoryType (
cat_type_id INT AUTO_INCREMENT PRIMARY KEY,
cat_type VARCHAR(50) NOT NULL
);

Clothing 테이블

sql
코드 복사
CREATE TABLE Clothing (
clothing_id INT AUTO_INCREMENT PRIMARY KEY,
cat_type_id INT,
cat_name VARCHAR(50) NOT NULL,
FOREIGN KEY (cat_type_id) REFERENCES CategoryType(cat_type_id) );

UserCategory 테이블

sql
코드 복사
CREATE TABLE UserCategory (
mem_id INT, cat_type_id INT,
clothing_id INT,
selected TINYINT,
PRIMARY KEY (mem_id, cat_type_id, clothing_id),
FOREIGN KEY (mem_id) REFERENCES Member(mem_id),
FOREIGN KEY (cat_type_id) REFERENCES CategoryType(cat_type_id),
FOREIGN KEY (clothing_id) REFERENCES Clothing(clothing_id)
);

Board 테이블

sql
코드 복사
CREATE TABLE Board (
id INT AUTO_INCREMENT PRIMARY KEY,
mem_id INT,
region VARCHAR(50),
regdate DATETIME NOT NULL,
overcoat INT,
top INT,
bottom INT,
accessory INT,
comment VARCHAR(200),
result VARCHAR(50),
del TINYINT DEFAULT 0,
FOREIGN KEY (mem_id) REFERENCES Member(mem_id),
FOREIGN KEY (overcoat) REFERENCES Clothing(clothing_id),
FOREIGN KEY (top) REFERENCES Clothing(clothing_id),
FOREIGN KEY (bottom) REFERENCES Clothing(clothing_id),
FOREIGN KEY (accessory) REFERENCES Clothing(clothing_id) );