
- Now, Here는 대학 축제 기간 동안 인기를 끈 무작위 번호팅 이벤트를 온라인으로 구현하는 프로젝트입니다.
- 이벤트 단위로 무작위 매칭을 진행하여, 유저들의 실시간 피드백을 반영하고 개선하는 과정을 거칩니다.
- 긍정적인 시장 반응을 기반으로, 내년 상반기에 결제 기능 등 추가적인 기능을 도입하여 실제 서비스로 출시할 예정입니다.
- 유저 매칭 알고리즘: 실시간 데이터 분석을 기반으로 한 매칭 알고리즘 개선 자동화 구현.
- DB 성능 최적화:
- 파티셔닝(event_id 기준)을 통한 대용량 데이터 관리로 처리 속도 개선
- Caffeine 캐시 전략 도입으로 읽기 성능 향상 및 DB 부하 감소
- 복합 인덱스 설계 및 쿼리 최적화를 통한 응답 시간 단축
- 고성능 및 확장 가능한 DB 아키텍처 구축:
- Master-Slave DB 아키텍처 설계를 통해 로드 밸런싱 구현과 고가용성 보장
- 트랜잭션 관리 최적화로 시스템 성능 향상
- 대규모 트래픽 대응 성능 테스트: Postman과 pgAdmin4를 활용한 단계별 성능 모니터링 및 최적화
- 사용자 경험(UX) 최적화:
- 사용자가 앱을 사용할 때 끊김 없는 경험 제공
- 실시간 알림 & 오프라인 알림림
- 클린 아키텍처 기반 프로젝트 구조:
- 각 계층의 명확한 책임과 의존성 방향 정의
- 의존성 분리를 통한 에러 처리 및 유지 보수성 강화
- 보안 강화:
- 성능 최적화:
- API 요청 최적화
- 조건부 렌더링을 통한 불필요한 DOM 조작 최소화
| Category |
TechStack |
| Framework |
SpringBoot, Java |
| DB & ORM |
PostgreSQL, JPA(Hibernate) |
| Testing |
Postman API Performance Testing, pgAdmin4 |
| API Docs |
SwaggerHub |
| CI/CD |
GitHub Actions |
| Infra |
OracleCloud, Cloudtype |
| Caching |
Caffeine |
| DB Pool |
HikariCP |
| Category |
TechStack |
| Framework |
Vue.js 3, Vite |
| State Management |
Pinia, pinia-plugin-persistedstate |
| Routing |
Vue Router |
| HTTP Client |
Axios |
| UI/UX |
SCSS |
| Browser API |
Service Worker, FCM |
| Development |
Composition API |
Now, Here Link

PR & ISSUE
- 유저 매칭 알고리즘: 실시간 데이터 기반 매칭 알고리즘 최적화: 동적 조정법 / DB 분석 자동화 [더 알아보기]
- DB 성능 최적화:
- 파티셔닝(event_id 기준)을 통한 대용량 데이터 관리로 처리 속도 개선
- Caffeine 캐시 전략 도입으로 배너 매칭 목록 조회 API 응답 시간 88.33% 향상
- 복합 인덱스 설계를 통해 매칭 현황 페이지 조회 속도 43.29% 개선
- HikariCP 연결 풀 최적화로 연결 고갈 문제 해결 및 전체 성능 39.68% 향상
- 고성능 및 확장 가능한 DB 아키텍처 구축:
- Master-Slave DB 아키텍처 설계로 CUD/R 작업 분리 및 로드 밸런싱싱 구현
- 트랜잭션 관리 최적화(@Transactional(readOnly = true) 적용)로 불필요한 락 방지
- 대규모 트래픽 대응 성능 테스트:
- Postman API Performance Testing과 pgAdmin4 Dashboard를 활용한 단계별 성능 모니터링
- 3단계 최적화 접근법 적용: 1) HikariCP 설정 2) Caffeine 캐싱 3) 인덱싱 및 트랜잭션 최적화
- 500명 사용자, 25만 매칭 데이터 처리 시나리오에서 평균 응답 시간 52.47%, 90번째 백분위 응답 시간 45.32% 개선
- 실시간 알림 시스템 고도화:
- FCM과 브라우저 알림 API 통합을 통한 실시간 알림 시스템 구현
- 서비스 워커를 활용한 백그라운드 알림 처리 및 오프라인 지원
- 오프라인 상태에서의 알림
- 상태 관리 아키텍처 설계:
- Pinia와 pinia-plugin-persistedstate 통합으로 상태 지속성 구현
- 스토어 모듈화를 통한 상태 구조 최적화 및 성능 개선
- 선택적 상태 지속성으로 메모리 사용량 최적화
- 고급 라우팅 및 인증 시스템:
- Vue Router 네비게이션 가드를 활용한 동적 라우트 보호 구현
- JWT 기반 토큰 관리 시스템 및 자동 로그인 기능 구현
- 딥링크 처리 및 조건부 리다이렉션을 통한 사용자 경험 최적화
- API 통신 아키텍처 최적화:
- Axios 인터셉터를 활용한 중앙화된 API 통신 시스템 구축
- 에러 핸들링 및 응답 캐싱을 통한 성능 최적화

-
server application 배포 과정

-
client application 배포 과정

(서버 아키텍처 다이어그램을 여기에 추가하세요.)
