사용 기술 | 기술 사용 이유 |
---|---|
Redisson Lock | 하나의 공유자원에 다수의 사용자가 동시에 접근할 때 발생할 수 있는 동시성 문제를 방지하기 위한 기술입니다. |
데이터의 일관성과 무결성을 유지하며, 시스템의 안정성과 신뢰성을 보장합니다. | |
Redis는 싱글스레드이기 때문에 동시성 제어에 적합했고 이미 내부 구현체가 있어서 Lock을구현하기도 좋았습니다. | |
Redis cache | In-memory 기반으로 매우 빠른 응답을 제공하기 때문에 인기 검색어와 자주 찾는 이벤트리스트를 읽고 쓰는데 사용하였습니다. |
특히 다른 캐시 시스템에 비해 다양한 데이터 구조를 지원하기 때문에 복잡한 구조의 Entity를 사용하는 이번 프로젝트에서 데이터 처리가 유리한 점이 있었습니다. | |
추후 서비스가 커지면 Scale-out 의 측면에서도 클러스터링을 통해 안정적인 서비스 제공을 기대할 수 있습니다. | |
Social Login | 소셜 로그인 사용시, 개인 정보를 입력하지 않아도 회원가입 및 로그인에 대 인증이 가능하여, 로그인 정보를 기억하지 않아도 편리하게 접근할 수 있어 서비스 접근성이 향상되어 사용자 경험을 향상시키게 됩니다. |
QueryDSL | QueryDSL 사용시, 컴파일 단계에서 조기에 오류를 발견할 수 있고 코드를 통해 작성하기 때문에, 복잡한 쿼리나 동적쿼리 작성이 편리하고, 객체 지향적으로 개발 가능하며, 협업시 무슨 기능을 하는지 읽기 쉽습니다. |
Postgres | Postgres는 ACID 트랜잭션을 지원하여 데이터의 일관성과 안전성을 보장하기 때문에 많은 이용자들이 동시에 접속하여 티켓을 예매하고 결제하는 과정에서 데이터 손실이나 일관성에 대한 우려를 줄일 수 있습니다. |
또한 이용자 정보, 이벤트 정보, 예매 내역 등 다양한 데이터를 관리해야 하기 때문에 다양한 데이터 모델링을 지원하고 복잡한 쿼리를 수행할 수 있어 유리합니다. | |
Redisson을 이용한 동시성 제어 (테스트 코드, 테스트 조건, 결과 등등)
테스트 조건