본문 바로가기

프로젝트/인스타그램 클론코딩

[인스타그램 클론코딩] 회원가입 구조

사용자가 웹 또는 앱에서 회원가입을 하면서 성(First Name), 이름(Last Name), 이메일 등을 입력하면, 이 정보를 Amplify 모듈을 사용해 AWS Cognito에 보냅니다.

Cognito에는 전달받은 사용자 정보를 승인하기 전에 개발자가 그 정보를 가로채서 수정할 수 있도록 Pre-SignUp 트리거를 제공합니다. 이 트리거에 전달받은 사용자 정보를 데이터베이스의 User 스키마에 저장하는 AWS Lambda 함수를 등록해 줍니다.

Cognito를 통해 가입하면 사용자 정보가 Cognito에 저장되는데, 사용자 정보를 왜 다른 데이터베이스에 다시 저장하나요? 

다른 데이터와의 연동때문입니다.

사용자로 부터 데이터만 생성되는 경우는 굳이 사용자 정보를 데이터베이스에 다시 복제할 필요가 없을 수 있습니다.

하지만, 데이터베이스에 사용자 정보를 복제해 놓지 않으면, 백엔드(Back-End)는 데이터(예를 들면, Post 또는 Comment)로 부터 사용자를 찾거나, 사용자끼리 관계를 정의(예를 들면, 팔로잉 시스템)할 때 마다, Cognito와 데이터베이스를 번갈아가며 접속해서 읽고 쓰기를 수행해야 합니다.

그래서 애초에 데이터베이스에 사용자 정보를 복제해 놓고, Cognito는 인증 기능만 전담하도록 했습니다.

프론트앤드(앱, 웹)와 백엔드에서 실제로 어떻게 구현했는지는 리액트, 리액트 네이티브, 데이터베이스 카테고리에서 더 자세히 설명하겠습니다.

 

Cognito 회원가입 구조