🚀 개요 ⭐ Transaction Transaction이란? 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위 DB를 조작할 땐 DML인 SELECT, INSERT, UPDATE, DELETE을 사용합니다. 트랜잭션은 DB를 사용할 때 한번 접근해서 수행하는 작업의 단위라고 할 수 있죠. 트랜잭션의 특징으로는 안전성을 보장하기 위해 필요한 4가지 성질이 있습니다. (ACID 성질) 1. 원자성(Atomicity) : 트랜잭션이 한번 실행될 때, 데이터베이스에 모두 반영되던가, 모두 반영되지 않아야 합니다. 2. 일관성(Consistency) : 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 합니다. 3. 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 실행될 때, 다른 트랜잭션의..
🚀 개요 우리가 어떤 웹 서비스를 배포한다고 하면, 흔히 보안 접속을 위한 HTTPS 프로토콜 연결을 적용해주게 됩니다. HTTPS 를 사용해 통신 내용을 암호화하면 중간자로부터 사용자의 정보를 보호할 수 있기 때문에 대부분의 서비스가 HTTPS 를 사용하고 있습니다. 이러한 특성 때문에 HTTPS 프로토콜을 사용하는 측에서는 오직 HTTPS 프로토콜을 사용하는 서비스끼리만 통신할 수 있습니다. 우리가 HTTPS 프로토콜을 사용한다고 해도, 상대측이 HTTP 프로토콜을 사용하고 있다면 부분적으로만 암호화가 이루어진 상태이기 때문에 공격자가 암호화되지 않은 정보에 접근할 수 있어 위험하기 때문입니다. 실제로 HTTPS 프로토콜을 이용하는 측에서 HTTP 프로토콜을 이용하는 측으로 연결을 시도하면, 크롬 브..
🚀 개요 우리 사이트 로그인 과정에서 사용자를 식별할 고유한 값으로 소셜 서버에서 가져온 email 정보를 사용하거나 소셜의 email 정보가 없다면 자체적으로 email을 부여했습니다. 🚀 문제 상황 ✅ Where & What 사용자가 소셜 로그인을 할 때 1. 오직 한 가지(네이버 or 카카오 or 구글)로만 로그인 2. 두 개 이상의 소셜 서비스(ex. 네이버+카카오)로 각각 로그인 이 두 가지 케이스 중 2번에서 중복 조회 문제가 발생하는 것을 확인했습니다. 저 같은 경우 네이버와 카카오에 등록해놓은 email이 같습니다. 네이버와 카카오로 각각 로그인을 진행하면 회원가입 시 DB에 네이버/카카오 가입 정보에 같은 email 값이 들어갑니다. ✅ When & Why 문제는 다음 로그인부터 예외가 ..