Skip to content

yohan-kang/goormFinal-Zoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goormFinal-Zoo

프로젝트 기간: 2025.03.04 ~ 2025.04.02(수)

프로젝트명: 대규모 IT 행사 운영 관련 페이지 구축

주제: 인사이트 노트 기능을 중심으로 한 홈페이지 구축

개요: 컨퍼런스 참여 중/후 인사이트(후기)를 작성, 공유하는 공간을 제공함으로써 참가자 간 네트워킹 기회 부족, 참가자 피드백 수집의 어려움이라는 문제점을 개선하여 참가자와 운영자의 행사 만족도와 효율성을 높히고자 함.

ERD

동물원 BACKEND ERD

아키텍처

스크린샷 2025-04-06 오후 11 39 30 스크린샷 2025-04-06 오후 11 39 25

기능

회원

  • Oauth 로그인 (카카오,구글)
  • 정보 수정
  • 탈퇴
  • 회원이 구매한 세션 확인,작성한 인사이트 조회

세션, 예약, 결제

  • 세션 등록,수정,삭제
  • QR을 통한 세션 예약
  • 세션 날짜별 검색
  • 카카오 결제 api

인사이트

  • 인사이트 등록(+임시작성),수정,삭제
  • 좋아요 기준 인기순위 노출
  • 날짜 필터 인사이트 검색
  • 투표 등록 (최종에서는 미적용)
  • 이미지 등록 (최종에서는 미적용)
  • 댓글 등록

개인 기여

  • 연사,세션,인사이트 관련 CRUD API 구현
  • 좋아요 기능, 인기순위 노출 API 구현
  • S3 Presigned URL 이미지 처리 API 구현
    • spring-cloud-starter-aws 라이브러리(Spring Boot 애플리케이션에서 AWS 리소스 (S3, SNS, SQS 등)를 쉽게 사용할수 있는 라이브러리)를 통해 구현 하지만! Spring Cloud 프로젝트에서 2021년도 부터 AWS 지원을 중단하여 AWS가 직접 관리하는 새로운 라이브러리 출시되어 추후 지속 적으로 관리를 고려하여 달라진 라이브러리에 맞게 코드 수정이 필요함
  • mysql 성능 테스트를 통한 쿼리 최적화
    • TRANSACTION,ROLLBACK 명령어를 통해 만개 이상의 더미데이터를 생성하여 인사이트 목록 api를 검증
    • EXPLAIN,EXPLAIN ANALYZE 명령어를 통해 type과 시간을 확인하면서 데이터 용량이 많아짐에 따라 비효율인 쿼리의 문제점을 수정
    • 프론트 요청사항(해당 인사이트의 최신 이미지를 가져오는 조건)에 맞는 응답값을 구현하기 위해서 서브쿼리가 붙게되는데 이 부분에서 쿼리가 복잡해지고 EXPLAIN명령어로 분석을 헀을때 서브쿼리의 대상인 테이블은 풀테이블 스캔으로 판정되어 쿼리 시간이 지연됨, 해결 방안으로 인사이트 테이블의 필드를 추가하는 방법과 mysql view를 통한 방법중에서 DB구조 변경은 시간과 고려할것이 많기 떄문에 임시적으로 view를 사용한 방법으로 1차적으로 진행

추후 개발,고려해야 하는 부분

  • 좋아요 기능 경우 동시성 문제를 어떻게 해결할 것인지
  • 인사이트,세션 관련 대량의 더미데이터를 가정하여 각 쿼리 테스트를 통해 최적화가 추가로 필요한 부분은 없는지 조사 필요
  • 서버에서 presigned url 응답을 클라이언트에게 전달할때 버킷 이름이 노출되는 문제는 어떻게 해결할 것인가?
  • 이미지 필요로 하는 도메인이 많아서 테이블을 하나로 하고 타입을 통한 이미지 구분을 정한 설계가 효율적인 판단인지 조사가 필요함
  • 성능을 위해서 사용자가 이미지 업로드 하는 부분의 대한 이미지 리사이징 처리 구현 필요함 (Lambda 처리 예상)
  • 클라이언트가 이미지 관련 요청을 하는경우 cloudfront를 활용하여 캐시를 통해 응답속도 개선이 가능한지
  • presigned url 구현 방법이 업데이트가 되어서 구현 방법 리펙토링 수정 필요함
  • Natgateway를 각각의 가용영역에 2개를 배치하는것이 성능과 비용을 고려했을떄 좋은 선택인지 조사가 필요함
  • elastic cache를 사용하여 레디스 동기화 문제를 해결한것은 좋지만 비용면에서 좋지 않기 때문에 대안 방법 조사가 필요함
  • 부하 테스트를 진행하여 150명이 1000개의 api를 호출 했을때 cpu가 40%상승하는데 서비스가 몇명의 사용자를 예상하여 오토스케일링의 기준을 cpu % 를 어떻게 잡으면 좋을지, api 요청에서 어떤 부분이 cpu를 많이 소모하게 하는것인지 , cpu 부하를 개선할 방법은 없는지 조사와 팀원 상의 필요함
image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages