본문 바로가기

전체 글

(130)
[간단한 퀴즈 서비스] 회원탈퇴, 테이블 데이터 회원탈퇴 때 삭제되어야 할 데이터들이 무엇인지 고려해 보았다.   user테이블에서 해당 유저 정보, score 테이블에서 해당 유저의 퀴즈 기록, solved_quizzes  테이블에서 해당 유저가 풀었던 문제들, quiz_accuracy_statistics 퀴즈 문제별 풀었던 정보(정답 횟수, 전체 시도 횟수) 등등  quiz_accuracy_statistics의 경우 전체 통계로 사용되고 개인 정보가 남지는 않기에 탈퇴한 유저의 문제 시도 횟수를 남기는 것은 괜찮다고 판단하였다.그 외에 당연하지만 user, score, solved_quizzes 테이블에서 탈퇴 유저 정보는 지우기로 하였다. 탈퇴하고서 1~2년간 데이터를 보관하고 해당 유저가 계정복구를 하면 살려두는 방식이 있다고 듣기는 하였지..
[간단한 퀴즈 서비스] 퀴즈 데이터 DB 이관 1차 개발 당시 퀴즈 데이터 세트를 서버 map 자료구조에 저장해서 썼었다.메모리에 있으니 DB에 있는 것보다는 응답이 빠르겠지만 서버를 띄울 때마다 정제해 놓은 퀴즈 세트 excel 파일을 읽어서 메모리에 올려서 하는 방식을 계속 지속하기에는 데이터 관리 영구적으로 되는 것도 아니고 그렇다고 같은 메모리에 저장되지만 문제가 Redis처럼 관리되는 형태도 아니었기에 RDBMS 혹은 in-memory cache로 넘어가야 할 일이라 생각하였다.  기존 회원 데이터, 퀴즈 점수 등은 mysql로 관리되고 있었기에 퀴즈 데이터도 RDBMS로 관리하기로 하였다.Redis를 쓰면 빠르겠지만 AWS freetier유저라 작고 소박한 1GB짜리 EC2 서버에 여러 서비스를 띄우기에 서버에 지장이 되지 않을까 하여 가..
[간단한 퀴즈 서비스] 배포 3/3 결론부터 이야기하면 마침내 nginx 세팅을 여러 우여곡절을 거친 끝에 끝내고 https로 배포에 성공하였다.Intro https로 배포해야 했던 이유는 신뢰성 있는 통신 프로토콜로 서비스가 제공되게 하기 위한 어찌 보면 당연한 이유와쿠키에 담은 JWT 토큰을 읽어오기 위해 https 이거나, 같은 주소로 api 요청이 오가야 했지만처음에 EC2에 서비스를 올리기만 하고 nginx는 docker에서 띄운 설정이 제대로 동작하지 않아 http로만 서비스되었었고,도메인도 구매하지 않았기에 api에서 서버로 자원을 요청할 같은 주소가 아니라서 브라우저(크롬)에서 쿠키를 제대로 받아오지 못하는 이슈가 있었다. 이런 문제를 해결하기 위해 지난 포스팅에서 도메인 구매와 aws route53을 이용해서 도메인과 서버..