Skip to content

do-ong22/MyTrophy-Back

Repository files navigation

Team4-Back

Steam 기반 게임 아카이빙 및 커뮤니티 플랫폼의 백엔드 서버
⏱️ 개발 기간: 2024.05.20 ~ 2024.06.14 (4주간)
🔌 배포 상태: 현재 서버 비용 문제 및 Firebase 토큰 만료로 배포 일시 중단

image

프로젝트 소개

  1. 스팀 에서 제공하는 API 활용 (https://steamapi.xpaw.me/)
  2. 스팀 로그인을 포함한 소셜 로그인 기능 구현
  3. 커뮤니티 게시판 구현 (자유, 리뷰, 공략, 토론 등)
  4. 스팀 상점에 있는 상품 불러오기
  5. 내 스팀 게임 목록 및 업적 달성률 조회

기술 스택

Backend

Frontend

Communicate

CI/CD

Monitoring

시스템 아키텍쳐

ERD 및 와이어프레임

image image

화면 구성

image image image image

개발팀 소개


BE 팀장 김찬혁


BE 팀원 강주연

BE 팀원 문선민

BE 팀원 조규은

BE 팀원 김동근

FE 팀원 황하연
  • 관리자 페이지
  • 회원 API 구축
  • 메인 페이지
  • 댓글 API 구축
  • 게임 목록 페이지
  • Security 로직 구현
  • 게임 상세 페이지
  • 게임 API 구현
  • 게시물 페이지
  • 게시물 API 구현
  • 마이 페이지
  • front 프로젝트 구축
  • ✔ 김동근

    • Java 및 Springboot를 활용한 Backend REST API CRUD 구현

    • firebase 외부 저장소를 사용하여 데이터베이스에 쓸모없는 공간 낭비 하지 않는 설계

    • QueryDSL 를 통해 동시에 API 호출이 3~4회 날아가야 하는 과정이 1번으로 압축되고 조회시간이 5초 > 2초로 향상

    • Swagger 문서화를 통해 프론트파트 인원 API 이해, 적용하는 시간 30min > 5min 으로 단축

    • React, Typescript, NextJs 활용한 커뮤니티 페이지 제작

    • Axios 를 통해 API 호출 및 데이터 처리

    리펙토링

    • 기존 VM 배포 -> AWS EC2 배포 (현재 개인적인 사유로 중단) image

    • CI/CD Jenkins를 통해 파이프라인 구축/배포 자동화 image

    트러블슈팅

    • 문제 : "Could not write Json: failed to lazily initialize a collection of role" 지연 로딩 문제
    • 문제 발생 이유 : QueryDSL로 가지고 올때 연관관계 지어져 있는 테이블을 모두 같이 가지고 와야 하는데 member에 관한 테이블이 같이 조회되지 않았고 member의 LAZY 전략에 의해 지연 로딩에 관한 문제가 발생한 것
    • 해결 : fetchJoin을 같이 해주어 동시에 출력이 될 수 있도록 함
    • 교훈 : QueryDSL도 좋지만 도메인 복잡성 증가 시 초기 계획이 중요하며 꼼꼼하게 사용하는 것이 좋을것 같다..

    기억에 남는 코드

    image image

    • Firebase라는 외부 저장소를 사용하여 이미지 업로드를 하고 업로드 된 이미지의 url만 가져오기 때문에 데이터베이스 입장에선 공간 낭비를 하지 않을 수 있었다.
    • MultipartFile로 외부와 첨부파일로 연결되는 과정이 기억에 남았다.

    About

    엘리스 백엔드 클라우드 세 번째 프로젝트로 스팀 커뮤니티입니다

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

     
     
     

    Contributors

    Languages