본문 바로가기메뉴 바로가기


인증아이템 : 카카오크루의 모바일사원증

Digitalization/Digital transformation 과 신원/자격/권리/행위 인증

Digitalization은 세상에 존재하고 있던 도메인을 기술과 데이터를 활용하여 디지털의 세계에 구현하는 것을 의미합니다. 그리고 이러한 작업의 결과물이 바로 Digital transformation입니다. 세계의 많은 IT 업체들은 사람들이 누리고 있는 다양한 삶들을 오래 전부터 디지털의 세계로 옮겨오고 있었고, 이 과정은 지금도 계속되고 있습니다.

사람들의 삶을 구성하는 다양한 것들을 디지털화하는 작업은 다양한 비즈니스 도메인과 비즈니스 프로세스의 변화를 낳았습니다. 그 변화 과정 속에서, 최근 여러가지 방향으로 시도되고 있는 것이 바로 디지털 세계에서의 인증입니다. 이러한 인증은, 그 사람의 신원과 자격 또는 그 사람이 가진 권리나 그 사람이 실제로 행위한 결과에 대한 것까지 포괄합니다.

카카오는 무엇을 할 수 있을까, 고민의 시작 : 크루들의 모바일사원증

저희는 CTO 조직의 선행기술팀으로서, 수많은 사람들의 삶이 녹아있는 서비스를 제공하는 카카오가 다양한 사람들의 인증 행위를 위해 무엇을 할 수 있고, 그 과정에서 어떤 의미를 만들어낼 수 있을까라는 질문을 하게 되었습니다.

이미 대부분의 사람들은 온라인 세계와 오프라인 세계에서 스스로의 신원이나 자격 또는 보유한 권리나 수행한 행위들을 인증하며 살아가고 있습니다. 그런데 이 과정들을 보면, 일단 온라인의 경우 접속을 허용하는 서비스나 비즈니스 주체가 개별적으로 인정하고 제공하는 ID를 제각기 사용해야 합니다. 또한 오프라인의 경우엔 온라인 세계의 ID와는 보통 무관한 (주민등록증이나 운전면허증, 혹은 학생증 등의) 물리적인 플라스틱 카드들을 주로 사용하고 있습니다.

회사에 출근한 직원들은 어떠할까요? 회사로 출근해서 가장 먼저 하는 일은 회사 건물에 내가 이 회사의 직원으로서 들어갈 자격이 있는 사람임을 인증하는 것입니다. 보통 이 과정은, 회사로부터 제공받은 플라스틱 사원증을 문에 부착된 (태깅 기능이 있는) 리더기에 인식하는 형태로 진행됩니다. 반면, 회사로 출근한 이후든 또는 원격근무라 회사 건물이 아닌 집이나 다른 곳으로 출근을 했든, 실제 하루 업무의 시작은 회사에서 제공하는 여러가지 온라인 툴에 접속할 수 있는 인증으로 시작됩니다. 그리고 이 인증의 과정은 역시 회사가 온라인 세계에서 제작하고 제공한 ID라는 체계를 통해 진행됩니다.

위와 같은 상황을 전제로, 저희 팀은 사람들이 겪게 되는 온/오프라인 상의 이 모든 인증 과정을 좀 더 간편하게 만들면서도, 활용범위는 더 넓게 만들 수 있는 방향을 모색해보기로 하였습니다.

그리고 그 첫걸음이 바로, 카카오크루의 모바일사원증입니다.

카카오크루 모바일사원증의 발급 과정

1. 카카오크루임을 인증하는 단 한 번의 절차

온라인이든 오프라인이든 카카오크루임을 증명하기 위해서는 실제 재직중인 크루의 정보(사원정보)를 통해, 크루 스스로 1번의 인증 절차를 진행하게 됩니다. 카카오의 경우 HelloMIS라는 사내시스템을 통해 크루의 재직정보를 관리하고 있기 때문에, HelloMIS에서 제공하는 API를 통해 크루가 사내계정(LDAP ID)으로 로그인하면 인증의 절차가 완료됩니다.

  • 최초의 사원정보 인증을 시작하는 화면 (반응형 웹으로 구성되어 PC에서도 인증가능)
  • 사원정보 인증/확인 후 카카오톡에 발급받기 위해 카카오계정 인증을 시도하는 화면

2. 모바일사원증을 카카오톡으로 발급받기

사내 계정으로 로그인이 완료된 후엔, 카카오톡에 모바일사원증을 발급받기 위한 절차가 시작됩니다. 현재 사용하고 있는 카카오계정으로 로그인을 한 뒤 발급 요청을 하게 되면 크루의 프로필 이미지와 크루의 사원정보 데이터를 조합하여 인증아이템으로 발급할 수 있는 API가 호출되고, 이 API의 처리가 완료되면 카카오크루는 현재 사용하고 있는 카카오톡에 모바일사원증을 받을 수 있습니다.

즉, 크루 인증을 위해 사내 계정으로 로그인 1회를 하고 카카오톡에 발급받기 위해 카카오계정으로 로그인을 1회 진행하면 발급에 필요한 모든 절차가 완료됩니다. 위와 같은 절차를 거쳐 모바일사원증이 시스템을 통해 발급되면, 카카오크루는 카카오톡을 통해 아래와 같은 메시지를 받게 됩니다.

  • 모바일사원증 발급 후 자동으로 발송된 카카오톡 메시지

  • 카카오톡 4탭의 카카오콘 서비스에서 확인 가능한 모바일사원증 앞면
  • 카카오톡 4탭의 카카오콘 서비스에서 확인 가능한 모바일사원증 뒷면(상세정보)

카카오크루 모바일사원증의 온라인 인증 주요 사례

모바일사원증을 통한 온라인 상에서의 인증은 대부분 아래와 같은 프로세스로 처리됩니다.

1. 카카오TV에서 T500(사내 온라인 스트리밍 방송) 및 VOD 시청

카카오는 정기적으로 카카오TV를 통해 T500이라는 사내 온라인 스트리밍 방송을 진행합니다. 크루들은 T500을 통해 사내에서 중요하게 진행하고 있는 프로젝트의 진행상황이나 전사 주요 공지들을 보고 듣게 되는데, 다루는 주제의 특성상 시청권한은 카카오에 재직 중인 크루로 제한되어있습니다.

모바일사원증은, 카카오크루들이 이러한 사내 온라인 방송 또는 교육 VOD에 접근할 때의 인증을 담당합니다. 모바일사원증이 담긴 톡 또는 카카오계정으로 T500이 진행되는 카카오TV 방송에 접근하면 그 시점에 모바일사원증이라는 인증아이템을 보유했는지를 확인하는 API를 통해 크루임이 자동으로 인증되고, 모바일사원증이 없는 경우엔 방송에 접근할 수 없도록 처리되고 있습니다.

2. 카카오톡 채널의 챗봇에서의 크루 인증

카카오톡 채널 중에는 카카오크루들이 다양한 목적으로 활용할 수 있는 것들이 존재합니다. 카카오톡 채널에 연결된 챗봇을 통해 여러 정보를 얻거나 신청을 하고자 할 때도 크루가 가진 모바일사원증이 인증에 활용됩니다. 모바일사원증이 담긴 카카오톡을 통해 챗봇에서 특정 발화를 시도하면, 모바일사원증을 소유한 사람이 시도한 요청인지를 확인하는 API가 호출되고, 그 결과에 따라 이후 절차가 진행되도록 처리되어있습니다.

3. 프렌즈샵에서의 인증과 자동할인

카카오 크루들은 모바일사원증의 확장된 형태인 (카카오 공동체 전체에게 지급된) 카카오공동체카드를 지급받을 수도 있는데, 이 인증아이템을 가진 크루가 온라인 프렌즈샵에 진입하게 되면 사내 복지를 위한 할인 혜택을 제공받을 수 있게 됩니다. 이 역시, 서비스를 활용하는 유저가 카카오에 재직 중인 크루임을 자동으로 인증하는 API를 통해 동작합니다.

카카오크루 모바일사원증의 오프라인 인증 주요 사례

1. QR 스캔을 통한 오프라인 강좌 출석체크

사내에 내/외부 강사를 초청하여 진행되는 오프라인 강좌에서도 모바일사원증이 활용됩니다. 모바일사원증과 같은 인증아이템에 연결된 QR이 존재하는데 이 QR을 오프라인 강의실이나 회의실에 비치한 뒤 해당 강좌에 실제 참석한 크루들의 경우 카카오톡에 있는 카메라를 통해 QR을 스캔하게 됩니다. QR이 스캔되면 크루는 출석체크가 되었는지 자신의 카카오톡 화면에서 확인할 수 있으며, 강좌를 관리하는 담당자는 어떤 크루가 실제 참석했는지 (QR을 스캔했는지) 모바일사원증의 데이터를 기반으로 로깅된 내역을 확인하고 관리할 수 있게 됩니다.

QR의 경우 오프라인 뿐만 아니라 온라인에서도 활용되는데 사내의 여러 이벤트나 강좌들에 참석을 희망하는 경우 온라인에 게시된 QR을 오프라인과 동일한 형태로 크루가 스캔을 하면, 이벤트나 강좌를 관리하는 담당자가 사전에 참석을 희망하는 크루의 정보를 모바일사원증의 데이터를 통해 사전에 쉽게 확인할 수 있습니다.

2. 스마트폰의 무선통신(BLE, NFC)을 활용한 출입문 태깅

카카오톡에 모바일사원증을 발급받은 크루의 경우, 스마트폰의 무선통신 기능인 BLE 또는 NFC를 활용하여 회사에 존재하는 모든 출입문을 태깅하여 열 수 있습니다. 모바일사원증을 기반으로, 모바일 출입기능을 활성화하는 것 역시 아주 간단한 단계를 통해 진행됩니다.

  • 모바일사원증이 담긴 카카오톡으로 모바일출입키를 활성화하는 화면

  • 모바일사원증을 통해 모바일 출입키가 활성화된 화면

모바일사원증이 담긴 카카오톡을 통해 모바일 출입기능 활성화를 시도하면 사전에 연결된 API를 통해 오프라인에 비치된 출입문 리더기에 태깅할 수 있는 크루의 고유의 출입키가 암호화되어 다운로드됩니다. 이후, 카카오톡이 설치된 스마트폰의 BLE나 NFC 기능을 활성화한 뒤 리더기에 태깅하면 사전에 정의된 프로토콜에 따라 모바일사원증에 부여된 고유의 출입키가 리더기에 의해 읽히고 이 값의 유효함이 검증되면 출입문이 열리는 형태로 구성되어 있습니다. (현재 카카오의 판교오피스와 제주오피스 모든 출입문에 이와 같은 시스템 구축이 완료되었습니다.)

모바일사원증, 그 이후 : 더 많은 유저들의 더 많은 인증아이템으로

현재 카카오에 재직 중인 크루의 99% 이상이 모바일사원증을 발급받아 온라인과 오프라인의 여러 사례에서 의미있게 활용하고 있습니다. 그리고, 모바일사원증을 발급받을 수 있는 시스템이 오픈된 이후 온라인/오프라인의 다양한 인증 사례에 적용된 지금까지 6개월이 채 걸리지 않았습니다.

그만큼 인증이라는 프로세스를 진행하기 위한 전체 과정과 이를 활용하는 모든 시나리오들이 직관적이었다는 평가를 받았고, 크루들이 더 나은 경험을 갖게 된 결과 모바일사원증의 추가 적용 사례에 대한 기대감과 수많은 의견들이 도출되기도 했습니다. 그리고 무엇보다 모바일사원증과 유사한 형태의 여러 인증아이템들을, 카카오톡을 사용하는 수많은 유저들에게도 제공하고자 하는 첫 걸음을 성공적으로 시작했다는 것이 가장 의미있는 지점입니다.

위와 같은 사례가 수많은 유저들에게 적용된다면 어떤 세계가 펼쳐질까요? 자신이 살아가는 삶에서 획득하게 된 특정한 권리나 자격을 가진 유저들은 이제, 카카오가 제공하는 디지털 기술과 정보가 활용된 인증아이템을 발급받을 수 있습니다. 이렇게 발급된 여러 인증아이템들은 다시, 유저가 지금까지 경험해왔던 온라인과 오프라인에서의 삶을 크게 바꿔낼 것입니다. 인증아이템과 함께, 과거보다 더 편리하고 의미있는 유저들의 경험들을 만들어내기 위한 카카오의 다양한 실험들을 앞으로도 많이 기대하여 주시길 바랍니다.

감사합니다!


덧, 함께할 개발자분들을 모집하고 있습니다 🙂 지금 바로 지원해보세요!

선행기술팀
선행기술팀 새로운 기술을 통한 다양한 비즈니스를 시도하고 있는 카카오의 선행기술팀입니다.
Top Tag
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
applicative
Architecture
arena
async
aurora
Backend
bgp
ble
blind-recruitment
block
blockchain
bluetooth
brian
cahtbot
cd
ceph
certificate
certification
cgroup
ci
cite
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
coding
competition
component
conference
consul
container
contest
couchbase
COVID-19
cpp
Data
DB
deep-learning
developer
developers
devops
digitalization
digitaltransformation
dns
docker
employeecard
eslint
Featured
friendstime
front-end
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
go
graphdb
graphql
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
json
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocon
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KCDC
khaiii
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
programming-contest
pycon
python
quagga
reactive-programming
reactor
recommendation
recruitment
redis
redis-keys
redis-scan
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
update
vim
vim-github-dashboard
vim-plugin
vue
web-cache
webapp
WebSocket
weekly
All Tag
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
applicative
Architecture
arena
async
aurora
Backend
bgp
ble
blind-recruitment
block
blockchain
bluetooth
brian
cahtbot
cd
ceph
certificate
certification
cgroup
ci
cite
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
coding
competition
component
conference
consul
container
contest
couchbase
COVID-19
cpp
Data
DB
deep-learning
developer
developers
devops
digitalization
digitaltransformation
dns
docker
employeecard
eslint
Featured
friendstime
front-end
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
go
graphdb
graphql
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
json
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocon
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KCDC
khaiii
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
programming-contest
pycon
python
quagga
reactive-programming
reactor
recommendation
recruitment
redis
redis-keys
redis-scan
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
update
vim
vim-github-dashboard
vim-plugin
vue
web-cache
webapp
WebSocket
weekly

위로