
Overview
<aside>
🧺
"스마트한 세탁 라이프의 시작, CoinWash"
</aside>
🤔"세탁방에 갔는데 모든 기기가 사용 중이라면?"
😫**"세탁이 끝났는데 깜빡해서 세탁물에서 물냄새가 난다면?"**
CoinWash는
코인 세탁방 이용의 불편함을 해결하고, 사용자가 효율적이고 스마트하게 세탁 서비스를 이용할 수 있도록 돕는 맞춤형 플랫폼입니다.
✅미리 확인! 세탁방 기기의 실시간 사용 현황을 사전에 파악
📱즉시 예약! 사용 가능한 기기를 발견하면 바로 예약하여 이동 중 선점 방지
🔔스마트 알림! 세탁 종료 전 푸시 알림으로 세탁물 회수 타이밍을 놓치지 않음
성과 및 결과
- 레디스 캐싱 전략
- 효율적인 데이터 접근성 향상: Redis를 활용하여 자주 조회되는 데이터를 캐싱하여 데이터베이스 부하를 줄이고 응답 속도를 개선.
- 캐싱 실패 시 대처: Redis에서 데이터를 조회하지 못할 경우, 데이터베이스에서 직접 조회하도록 설계하여 서비스 안정성을 강화.
- 성과: 캐싱 도입으로 데이터 접근 속도를 개선하고, 시스템 안정성을 유지하며 사용자 경험을 향상.
- 락을 통한 동시성 제어
- JPA 기반 락 활용:
- 낙관적 락: 포인트 사용과 같은 낮은 동시성 발생 가능성을 가진 작업에 적용. 충돌 발생 시 롤백 처리로 데이터 일관성 보장.
- 비관적 락: 세탁기 사용과 같이 동시성 발생 가능성이 높은 작업에 적용. 실시간으로 충돌 상황을 방지하여 데이터 무결성을 유지.
- 구현 사례:
- 포인트 시스템: 한 계정에서 여러 기기로 동시에 접근 시 발생할 수 있는 데이터 일관성 문제를 예방.
- 세탁기 상태 관리: 여러 사용자가 동시에 접근할 가능성이 높은 환경에서 데이터 일관성을 실시간으로 보장.
- 성과: 동시성 문제로 인한 데이터 불일치 방지 및 안정적인 서비스 제공.
- 비동기적 실행
- 비핵심 작업의 비동기 처리:
- 서비스의 주요 작업 및 사용자 응답 속도에 영향을 미치지 않도록 비핵심 작업을 이벤트 발행과 비동기적 실행으로 분리.
- 예: 세탁 종료 알림 전송 작업은 사용자 응답에 영향을 주지 않도록 트랜잭션을 분리하고 비동기적으로 처리.
- 성과: 사용자 응답 속도를 개선하고, 비핵심 작업으로 인해 주요 비즈니스 로직이 방해받지 않도록 설계하여 서비스 안정성을 강화.