2026/01/08 합동프로젝트 - 2

김기훈·2026년 1월 8일

TIL

목록 보기
106/194
# 어제 무엇을 했나요?
- 1. 테이블 명세서 작성
- 2. ERD 작성
- 3. API 명세서 작성
- 4. openapi 라이브러리 구조 확인
- 5. RESTfull 원칙 확인

# 오늘은 무엇을 할 것인가요?
- 1. 어제 작성한 문서들 리뷰 받기
- 2. 프로젝트 가상환경 세팅 
- 3. 프로젝트 기본 세팅
- 4. 모델 확정(가능하면)

# 진행하는데 어려운 부분(도움이 필요한 부분)이 있나요?
- 1. 프로젝트 기본세팅 좀 공부 필요

오늘 학습 내용 ✅

리뷰

ERD

  • 투표 타입 / 요약 상태 ENUM으로 수정 ✅
    • 성공시에만 저장을 하고 상태 컬럼 없애고 실패한 경우 다음 로딩때 다시 요약을 진행하는걸로
  • 좋아요 / 싫어요 ✅
    • like / dislike 테이블로 분리 조회비용 감소를 위함
      • 그냥 싫어요를 없애버림
  • 지금 요약테이블이 1대 다로 연결 수정 요망 ✅
    • 리뷰가 달릴때마다 업데이트 필요 생각
    • 리뷰가 추가 될 경우 바로 요약을 진행

요구사항 정의서

  • 리뷰 - 필요데이터 넣기 ✅
  • 댓글 - 필요데이터 넣기 ✅
  • 부적절 콘텐츠 - 부적절한 콘텐츠를 어떤식으로 개선했냐 - 필터링 가능한 라이브러리 존재함
    • 1차로 걸러내고 ai에서 2차로 넘기는게 좋을 듯 ✅
  • ui/ux 따로 띄지말고 연결되는 부분 아래에 적기 ✅

내 파트X

  • 탈퇴 - 관련 데이터 싹다 날리기 / 유예기간 주기
  • 게임 정보 - 어디에서 가져올지 적기 / 크롤링? / 게임정보 DB?
  • 유저테이블이랑 장르테이블을 다대다로 정의할 수 있는 테이블 필요

비속어 처리

  • better-profanity 라이브러리를 사용하여 1차 정제 후 2차로 재미나이한테 넘기기

좋아요 / 싫어요 처리 방식

  • review_like

    • 유저 아이디 : 나중에 좋아요 취소를 위해 사용 / 중복 투표 방지
  • 인덱스(Index) 설정

    • 인덱스를 설정한다는 것은 "책의 맨 뒤에 있는 색인(찾아보기)을 만드는 것"
      • 인덱스가 없으면, 데이터베이스는 1페이지부터 끝까지 다 뒤져야 합니다(Full Scan).
      • 인덱스를 걸면 "원하는 페이지로 바로 이동"할 수 있습니다.
    • 덱스에 "유일해야 한다"는 규칙을 걸면, 시스템이 자동으로 중복된 데이터가 들어오는 것을 강제로 막아줍니다.
  • review모델에 like_count 추가

    • row가 추가되지는 않으며 like_count의 값만 수정됨

멘토링 요구사항

ERD

  • 굳이 필요없는것은 넣을필요 없다.

    • user
      • 본명 빼기
      • 성별 - Enum변경 요망
      • 프로필 text
    • 소셜
      • 토큰 둘다 X
      • provider_user_name
  • int 는 전부 bignit ✅

  • 댓글

    • content - text ✅
  • 댓글 / 리뷰

    • is_deleted 필요 (soft_delete) ✅
    • rating - float/tinyint
  • view_like

    • created_at 추가 ✅
  • wishlist

    • created_at 추가 ✅
    • user -> user_id ✅
  • games

    • release -> relese_datetime - datetime ✅
    • developer - varchar(255) ✅
    • name -> varchar(255) ✅
  • games_platform ✅

    • url추가
  • games ✅

    • created_at / updated_at / is_delated
    • score 추가 / scores 테이블은 지우기
  • game_img ✅

    • img_url - text
  • tag -> game_genre

  • 선호 ✅

    • 생성날짜 넣기
  • 요약테이블 ✅

    • is_deleted 추가
      • ai가 리뷰를 거지같이 달면 수동 삭제 필요
    • 특정 일자마다 한번씩 처리하고 최신 요약리뷰를 보여주자
      • 1대다구조로 변경하자
    • 레이팅을 기반으로 한번 필터를 해서

ERD 리뷰 반영

댓글 / 리뷰

  • is_deleted 추가

    • 리뷰 데이터를 DB에서 아예 없애버리지 말고(Hard Delete)
      • '지워진 상태'라는 표시만 남겨두라(Soft Delete)"는 뜻
    • 게임 리뷰와 댓글은 서비스 입장에서 매우 소중한 자산이기 때문에 보통 바로 삭제하지 않음
    • 추가 완료 후 데이터는 DB에 그대로 남아있지만, is_deleted가 TRUE로 바뀜
    • 프론트엔드에서는 WHERE is_deleted = FALSE인 것만 보여주면 되므로
      • 사용자 눈에는 삭제된 것처럼 보임 운영자는 지워진 데이터도 확인할 수 있음
  • deleted_at

    • 사용하면 "언제 지워졌는지"까지 나옴

새롭게 알게된 내용 ✅

# 불렛 포인트 파싱 및 HTML 변환
- "AI가 보내준 글자를 예쁜 목록으로 바꾸기"
  - 상황: AI(재미나이)는 요약 결과를 줄 때 단순히 글자(- 그래픽이 좋아요)로만 줌
  - 문제: 이걸 웹사이트에 그대로 뿌리면 디자인 안좋음
  - 해결: 개발자가 코드를 짜서, AI가 준 글자(-)를 인식해 **웹사이트용 목록 디자인(HTML 태그)**으로 "번역"해주는 과정입니다.

Before (AI가 준 거): * 그래픽 굿

After (변환 후): <li>• 그래픽 굿</li> (화면엔 예쁜 동그라미 점으로 보임)

오늘 발생한 문제(발생 했다면) ✅

profile
안녕하세요.

0개의 댓글