Steam 기반 게임 아카이빙 및 커뮤니티 플랫폼의 백엔드 서버
⏱️ 개발 기간: 2024.05.20 ~ 2024.06.14 (4주간)
🔌 배포 상태: 현재 서버 비용 문제 및 Firebase 토큰 만료로 배포 일시 중단
- 스팀 에서 제공하는 API 활용 (https://steamapi.xpaw.me/)
- 스팀 로그인을 포함한 소셜 로그인 기능 구현
- 커뮤니티 게시판 구현 (자유, 리뷰, 공략, 토론 등)
- 스팀 상점에 있는 상품 불러오기
- 내 스팀 게임 목록 및 업적 달성률 조회
BE 팀장 김찬혁 |
BE 팀원 강주연 |
BE 팀원 문선민 |
BE 팀원 조규은 |
BE 팀원 김동근 |
FE 팀원 황하연 |
|
|
|
|
|
|
|
✔ 김동근
-
Java 및 Springboot를 활용한 Backend REST API CRUD 구현
-
firebase 외부 저장소를 사용하여 데이터베이스에 쓸모없는 공간 낭비 하지 않는 설계
-
QueryDSL 를 통해 동시에 API 호출이 3~4회 날아가야 하는 과정이 1번으로 압축되고 조회시간이 5초 > 2초로 향상
-
Swagger 문서화를 통해 프론트파트 인원 API 이해, 적용하는 시간 30min > 5min 으로 단축
-
React, Typescript, NextJs 활용한 커뮤니티 페이지 제작
-
Axios 를 통해 API 호출 및 데이터 처리
- 문제 : "Could not write Json: failed to lazily initialize a collection of role" 지연 로딩 문제
- 문제 발생 이유 : QueryDSL로 가지고 올때 연관관계 지어져 있는 테이블을 모두 같이 가지고 와야 하는데 member에 관한 테이블이 같이 조회되지 않았고 member의 LAZY 전략에 의해 지연 로딩에 관한 문제가 발생한 것
- 해결 : fetchJoin을 같이 해주어 동시에 출력이 될 수 있도록 함
- 교훈 : QueryDSL도 좋지만 도메인 복잡성 증가 시 초기 계획이 중요하며 꼼꼼하게 사용하는 것이 좋을것 같다..
- Firebase라는 외부 저장소를 사용하여 이미지 업로드를 하고 업로드 된 이미지의 url만 가져오기 때문에 데이터베이스 입장에선 공간 낭비를 하지 않을 수 있었다.
- MultipartFile로 외부와 첨부파일로 연결되는 과정이 기억에 남았다.











