brunch

You can make anything
by writing

C.S.Lewis

by coder Sep 12. 2023

연동 로그인이란?

카톡로그인 할 때 알아야 할 점

브런치 사용하실 때 카카오계정으로 로그인 많이 쓰시죠? 비단 브런치뿐만이 아니라 요즘은 이렇게 카톡이나 페이스북, 구글등을 통해서 다른 앱 로그인을 많이 사용하게 됩니다.

브런치 카카오계정으로 로그인 시작

그런데 이렇게 연동으로 로그인을 한다는 의미가 뭔지 잘 알고 계신가요?

지난번에 왜 요즘 앱들은 정말 잘 망가지는지에 대한 글을 쓰다가 잠깐 소개한 적이 있는데요, 오늘은 연동 로그인에 대해서 좀 더 깊게 알아보도록 하겠습니다.


OAuth(Open Authorization)

이런 연동 로그인을 전문용어로는 Open Authorization, 줄여서 OAuth라고 많이 합니다. 2009년에 처음으로 도입된 테크놀로지인데요, 처음에 나왔을 땐 말이 많았습니다. 무엇보다 개발자의 입장에서는 복잡한 면이 많아서 그랬는데요, 이제는 자리를 잡아서 도입하기도 쉽고, 무엇보다 많은 정보들이 인터넷이 있으니까, 쉽게 도입이 가능하게 되었습니다. 쉽게 사용할 수 있으니까, 거의 모든 앱이 도입을 시작했고, 요즘은 연동 로그인을 쓰지 않는 앱이 없을 정도로 앱을 가입하는 절차 중에 하나의 방법이 되었습니다.


쉽게 설명한 OAuth 도입절차

우선 내가 새로운 ecomerce 앱의 개발자라고 생각해 봅시다. 우리 앱이름은 "Best Shoes"라고 하고, 우리 앱에서는 신발을 팝니다. 우선 우리 회사 앱을 쓰려면 사용자가 가입을 해야 좋겠죠? 가입을 해야, 우리 앱을 사용하는 사람들이 어떤 사람들인지 알 수 있고, 또 공고사항이 있으면 이메일로 연락을 할 수 도 있기 때문이죠. 그래서 우리 회사 앱을 쓸 때 가입절차에서 다음과 같은 사항을 계정등록(가입) 시 물어보려고 합니다.

이름 - 필수사항

이메일주소 - 필수사항

생년월일 -  필수 아님. 생일에 쿠폰을 준다는 명목으로 물어봄

전화번호 - 필수사항

집 주소 - 필수 아님. 물건 구매 시 주소로 보낸다는 명목으로 물어봄

비밀번호 - 필수 사항


우리 앱이 론칭을 하고 6개월이 되었는데 신규가입자가 많이 늘지를 않습니다. 그럼 프로모션도 하고, 세일도 하고 그러는데 이상하게 사람들이 물건을 사려고 했다가 가입절차에서 다 작성을 끝내질 않고 그냥 사이트에서 나가버리네요. 그럼 가입절차가 까다로워서 그렇다고 생각을 합니다. 그래서 우선 생년월일을 물어보는 것을 포기하고, 집 주소는 나중에 구매 후에 물어보기로 합니다. 이제 가입절차가 간단해집니다.

이름 - 필수사항

이메일주소 - 필수사항

전화번호 - 필수사항

비밀번호 - 필수사항

이렇게 세 가지만 물어보면 끝. 비밀번호는 당연히 필수구요. 간단하죠? 그렇게 또 한 3-4 개월이 흐릅니다. 그래도 가입자가 그래도 많이 늘지를 않습니다. 극단적인 처방으로 이제 페이스북으로 연동 로그인을 도입해서 가입절차를 간편하게 합니다. 이렇게 하니까 가입자가 좀 늘었습니다.


이래서 앱들이 연동 로그인을 도입합니다. 아무래도 연동 로그인을 도입하면 가입숫자가 늘게 마련입니다. 이제 개발자의 입장에서 어떻게 연동 로그인을 우리 앱에 도입하는지 볼까요? 참로고 이 절차는 페이스북 OAuth를 예로 한 것입니다.


개발자 도입절차

우선은 페이스북에 우리 회사가 페이스북의 연동 로그인을 사용하고 싶다고 말하고, 회사를 등록해야 합니다.

페이스북이 이렇게 연동 로그인을 하고 싶다는 회사들을 막 꼼꼼하게 선별하고 관리하는 것은 아닙니다. 그냥 우선 "Best Shoes"회사를 페이스북이 등록합니다. 그리고 Best Shoes 회사에게 고유의 번호(키)를 줍니다. 이 키를 비밀로 잘 가지고 있어야 합니다. 이 키가 새어나가거나 공개되면, 다른 사람들이 Best Shoes인척하면서 페이스북을 접근할테니까요. Best Shoes회사의 개발자는 이 고유의 번호를 코드에 입력시킵니다 그래서 언제나 페이스북이랑 소통을 하려 할 때 이 번호를 보여줍니다. 이 번호 없이는 페이스북은 Best Shoes인지 확인이 불가합니다.


그럼 이제 사용자의 입장으로 갑시다. Alice는 신발이 필요해서 Best Shoes회사 사이트에서 예쁜 신발을 사려합니다. 살려고 하니까 가입을 하라고 하네요? 가입을 다 하기는 싫은데.. 하고 있는데 페이스북으로 로그인이 가능하다니까, 우선은 페이스북으로 로그인 버튼을 클릭합니다. 이 버튼을 누르니까, Best shoes 페이지가 페이스북으로 바뀌네요.

1. Best Shoes가 Alice를 페이스북으로 보냅니다. -> 페북이 이때 Best Shoes에게 줬던 고유번호를 확인하고 Best Shoes인지 확인합니다.

2. 페이스북이 Alice에게 로그인을 하라고 합니다.

2. Alice는 페이스북으로 로그인을 합니다. -> 페이스북이 Alice의 계정을 확인합니다.

3. 페이스북이 Best Shoes로 로그인을 할 때 우리 로그인을 사용하게 할까?라고 물어봅니다. -> 즉 페이스북이 Alice의 개인 정보를 Best Shoes와 공유해도 되냐고 물어보는 것과 같습니다.

4. Alice는 동의합니다.

5. 페이스북이 Alice의 정보(이메일, 이름 등)를 Best Shoes에게 보냅니다.


동의가 끝나자, 페이스북은 Best Shoes에게 Alice의 이메일주소와 이름을 공유합니다. 그럼 Best Shoes는 페이스북에서 준 사용자 정보를 자기네 데이터베이스에 저장합니다. 이름, 이메일주소를 알았으니, 뭐 전화번호는 몰라도 할 수 없죠, 나중에 물건을 살 때 물어봐야지 하고 생각합니다. 즉, 앱의 입장으로 봤을 때는 연동로그인을 하면 사용자의 정보가 한정되게 됩니다. 그렇지만 사용자의 입장에서는 간단하니까, 앱을 가입하는 사람들이 많아지니까 할 수 없이 쓰는 겁니다.


이렇게 하는 것이 연동로그인, 즉 Open Authorization입니다.

다소 복잡한 Open Authorization

그럼 사용자의 입장에서는 한번 고민이 됩니다. 이제 연동로그인을 쓰나, 아니면 앱에 직접 가입을 하나?


연동로그인의 장/단점

장점

사용자, 앱 개발자, 페이스북등에게 있을 수 있는 장점입니다.

사용자 - 간편하다

사용자 - 내 정보를 그나마 보호할 수 있다. Best Shoes는 나에 대한 정보를 많이 가지고 있지 않다. 이름이나 이메일 정도. 그래서 혹시 Best Shoes가 망하거나 데이터베이스가 해킹을 당해도 내 정보는 많이 보호된다.

Best Shoes - 많은 사람들이 이제 쉽게 우리 사이트에 가입을 한다

Facebook -   페이스북으로 연동 로그인을 하고 싶은 사람들은 보통 페이스북 앱을 다운로드한다. 최소한 페이스북에 로그인을 한다.

단점

페이스북의 입장에서는 정말 단점이 없어 보입니다. 뭐 OAuth를 유지하기 위해서 개발자들이 몇 더 필요하겠네요. 사람들은 이런 연동 로그인을 이용함으로써 어쩔 수 없이 페이스북의 계정을 죽이지 않고 쓰니까 페이스북에게는 절대 이득입니다.

사용자 - 혹시 카톡이나 페이스북이 고장 나면 연동으로 쓰던 Best Shoes도 사용할 수가 없게 된다

사용자 - 카톡이나 페이스북의 계정을 닫거나 지우면 연동으로 쓰던 Best Shoes 로그인을 다시 만들거나 로그인이 복잡하게 문제가 될 수 있다.

Best Shoes - 사용자의 정보를 많이 캘 수가 없다. 페이스북에서 주는 자료는 한정되어 있다.


이런 점을 감안하셔서 이용자분들이 연동로그인을 사용하셨으면 좋겠습니다. 도움이 되는 정보가 되셨으면 좋겠습니다.


대문은 Photo by Micah Williams on Unsplash

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari