하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
티켓예매
선착순 할인쿠폰(동시성이슈) : Post방식이여서 read가 아님
-> 관리자가 하루에 한번 게시글 올리는데 (이미지로 제공) 그 글에 올리면 할인쿠폰 지급 == 포인트
(순번에 따라서 동시성 이슈 발생 = 대용량트레픽 까지 같이 잡을수 있을듯)
-> mail로 쿠폰 제공
티켓등록시 이미지(s3)
(캐싱처리된 글) -> 관리자 글
티켓결제 포인트/할인쿠폰
게시글,댓글 crud,포인트 지급
상품 도메인 등록 -> ex) 메가박스 1인 포인트 15000(소모) -> 쿼리최적화 가능
관리자 등록 게시글에만 유저가 댓글달시 포인트 지급 -> 메일로 전달
게시글 댓글 제일 많은 사람 포인트 지급 -> 1등~3등까지 매겨서(랭킹 시스템)
배민 -> 음식목록 -> 세부목록 => 계속계속 불러오는거니까 관리자 글을 캐시에 넣어놓자
관리자 글 게시 , 일반 게시글(?)
board -> 관리자게시글(대량의 포인트),일반게시글(소량의 포인트),관리자공지게시글
관리자 게시글 -> status 2
게시글 제한수 -> scahduler?? -> 제약 게시글이기때문에 유저한테 필드를 주고 ++해야되는데 12시가 되면 하루가
지나서 제한을 풀어줘야함 -> scahdule cron 어노테이션
-- 게시글 조회 --
비동기로 Post -> get {api두개로 나누기}
cash에다가 저장한후 scheduler
게시물 조회할떄마다 게시물 id하나씩 입력하는 방식 -> db에 데이터가 많이 쌓이는 문제 발생
전체게시물 조회 -> count만 -> dto에 다 담았음
단일 게시물 조회 -> 댓글, 게시물 조회
도메인의 필드에 어떤값이 들어갈지 생각해보기(필요한 부분만).
기능 : 포인트지급, 상품 등록(교환권),
상품 : 영화 티켓 교환권(이미지로된 티켓), 소개글(티켓 info),팝콘 교환권,가격
{상품명,상품이미지,상품소개}
팝콘 교환권은 언제 발급받을수 있는건가요?
-- 이거 할 시간에 다른 기능을 하는게 낫지않나? (보류) --
게시글 작성
유저간 팔로우
게시글 좋아요
랭킹
도메인,연관관계 복잡해짐,기능면에서 시간소요가 커질것같음
그러면
게시글이나 댓글을 몇 개 이상달면 포인트 지급
그것으로 영화 티켓 예매
write -> 동시성
read -> 수정할게 별로 없기때문에 동시성 이슈라고 말하기 어렵다.
Open api 최소 하나정도
동시성 문제 해결 할 주제
변하지않는 정보를 캐시를 사용해서 저장
불러올때 캐시에서 조회
시스템 요구사항
trouble : 관리자 글을 캐싱 처리 해버리면 관리자 글에 댓글이 달렸을때 캐시에는 댓글이 달려도 댓글에 관한 부분이
반영되지 않아서 갱신이 어렵다.
solution : 관리자 글을 캐싱처리 부분에서 제외시키고 로그인 부분(토큰)에만 넣기로함.
시스템 설계
1. 티켓 예매
2. 포인트 시스템
3. 게시글 및 댓글 관리
4. 도메인 및 캐싱
5. 비동기 처리 및 스케줄러