[실전 Django - database 정복기 4부] 트랜잭션과 Celery의 미묘한 관계: "왜 알림이 안 가죠?"
·
ServerDev/DJango
네, 시리즈의 4편입니다. 이번 주제는 실무에서 주니어뿐만 아니라 시니어 개발자들도 종종 겪는, "코드는 완벽한데 실행 타이밍 때문에 발생하는" 매우 까다로운 문제입니다. 로컬에서는 잘 되는데 트래픽이 있는 운영 환경에서만 간헐적으로 발생하는 유령 버그 를 잡아봅시다. 트랜잭션과 Celery의 미묘한 관계: "왜 알림이 안 가죠?"1. 분명히 저장했는데 없대요"회원가입을 했는데 환영 이메일이 안 와요.""로그를 확인해보니 User matching query does not exist 에러가 떠 있습니다."개발자는 억울합니다. 코드를 확인해봅니다. 분명히 User.objects.create()를 호출해서 유저를 만들었고, 그 바로 다음 줄에서 Celery 워커에게 "이 유저한테 이메일 보내"라고 명령..
[SpringBoot&JPA] QR 코드 기반 게스트 계정 자동 생성 및 로그인 구현
·
ServerDev/SpringBoot
QR 코드 기반 게스트 계정 자동 생성 및 로그인 구현 (Spring Boot + JPA)QR 코드를 통해 서비스에 접근하는 게스트 사용자를 위해 인증 없이 계정을 자동 생성하고 바로 로그인시키고자 했습니다.기존 회원가입 로직은 이메일 인증과 key/code 검증이 필수라 게스트 흐름과 맞지 않았습니다.우선 자동 회원가입 -> 로그인 흐름을 맞추기 위해, 비밀번호 생성과 아이디 생성을 위한 Sequence Table 을 구현했습니다.해당 테이블로 유저가 동시 접속할 때 자동 +1 을 부여-- 시퀀스 생성CREATE SEQUENCE guest_seq START 1 INCREMENT 1 MINVALUE 1 NO MAXVALUE CACHE 1;-- 기존 guest_sequence_t..