위커스(WE CONNECT SPACE) 회사 소개
[https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/03/24/Picture1-13.png]
위커스(We Connect Space)는 공간 운영의 핵심 데이터를 연결하여, 회원 관리, 결제·수납, 예약, 좌석 관리 등 필수 기능을 하나의 AIoT SaaS 솔루션으로 제공합니다.
당사의 SaaS 기반 공간 운영 솔루션 ‘고스카 (GOSCA)’는 15개 이상의 업종에서 디지털 전환을 지원하고 있습니다. 스터디카페(무인·관리형), 키즈카페, 무인 탁구장 등 소상공인 공간 운영을 시작으로, 고등학교, 창업센터, 복지센터 등 공공기관, 그리고 교육, 헬스케어, 정보통신 등 업계 선도 기업들까지 GOSCA SaaS를 도입하고 있습니다.
현재 400개 이상의 공간에서 65만 명 이상이 고스카 (GOSCA)를 사용 중이며, 공간 운영에서 발생하는 문제를 더욱 근본적으로 해결하고, 고객 경험 중심의 서비스로 고도화하기 위해 AIoT와 SaaS의 결합, CRM의 고도화를 시도하고 있습니다.
솔루션 개요
최근 안면인식 기술에 대한 시장 환경이 급격히 변화하고 있습니다. 특히 다음의 세 가지 핵심 요인이 프로젝트 추진의 배경이 되었습니다:
1. 안면인식에 대한 사용자들의 거부감 감소 및 수용도 증가
2. 국내 주요 빅테크 기업들의 안면인식 서비스 확대
3. 실사용자들의 높은 만족도와 편의성 검증
당사 고객들에게도 안면인식 기반의 편리한 서비스 경험을 제공하고 AWS의 AI 서비스인 Amazon Rekognition [https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/what-is.html] 활용하여 기존에 구축된 키오스크에 안면 인식 기반 사용자 등록 / 출석 기능을 추가 하였습니다. AI/ML 전문 인력이나 기계 학습 모델 및 인프라를 구축하지 않더라도 Amazon Rekognition을 활용하면, 사용자가 원하는 이미지 인식, 비디오 분석 기능을 손쉽게 구현할 수 있습니다. 아키텍처 구성은 아래와 같습니다.
이미지 인식 키오스크 아키텍처 구성 [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/03/24/Picture2-6.png] 얼굴 인증 키오스크 아키텍처 구성
1. 얼굴 인식을 위한 Amazon Rekognition [https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/what-is.html]
2. 정적 컨텐츠 배포 및 얼굴 이미지 저장을 위한 Amazon S3 [https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html]
3. 사용자 세션 관리를 위한 Amazon ElasticCache [https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/WhatIs.html]
4. 안면인식 메타데이터 저장을 위한 Amazon DynamoDB [https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Introduction.html]
5. 유저 정보 관리를 위한 Amazon RDS [https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Welcome.html]
주요 고려 사항
고려 사항 1: 트랜잭션 동기화를 위한 SAGA 패턴 적용
SAGA패턴 [https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/modernization-data-persistence/saga-pattern.html]은 분산 애플리케이션의 일관성을 유지하고 여러 마이크로서비스 간의 트랜잭션을 조정하여 데이터 일관성을 유지하는 데 도움이 되는 장애 관리 패턴입니다.
사용자는 Kiosk에 랜더링된 웹페이지를 통해서 사용자 등록 / 입실 / 퇴실을 선택합니다. Kiosk 카메라를 통해 인식된 사용자의 얼굴 데이터는 Amazon Dynamo DB에 저장되고, 이미지의 원본은 Amazon S3에 저장됩니다.
사용자가 얼굴 정보를 등록하는 과정은 여러 단계의 작업이 순차적으로 이루어져야 합니다.
이 과정에서 Dynamo DB, S3 이미지, Rekognition Collection 간의 데이터 일관성을 유지하는 것이 중요합니다. 일관성이 깨질 경우, 다음과 같은 문제가 발생할 수 있습니다.
* 데이터 무결성 손상: 저장된 데이터 간 불일치로 인해 시스템 신뢰도가 낮아질 수 있음.
* 비즈니스 로직 오류: 얼굴 등록 실패로 인해 서비스 제공에 문제가 발생할 수 있음.
* 유지보수 비용 증가: 잘못된 데이터를 복구하기 위한 추가적인 작업이 필요함.
이를 해결하기 위해 단계마다 보상 트랜잭션 방식을 적용하여, 오류가 발생하면 이전에 수행된 작업을 되돌려 이전 상태로 복구할 수 있도록 설계했습니다. 이를 통해 데이터의 일관성을 유지하고, 안정적인 트랜잭션 관리를 구현했습니다.
고려사항 2: 어뷰징 방지를 위한 생체 인증 적용
얼굴 인식의 정확도를 높이고 및 얼굴이 아닌 사진 등을 기반으로 인증을 우회하는 어뷰징을 방지하기 위해 생체 인식을 적용하여 실제 사람인지를 판단하고자 하였습니다. Amazon Rekognition Face Liveness 기능을 활용하면 별도의 영상 분석 없이도 AWS Amplify Module [https://ui.docs.amplify.aws/react/connected-components/liveness]을 통해 손쉽게 생체 인식을 구현할 수 있습니다.
고려 사항 3: 저사양 하드웨어에서도 안정적인 동작
초기에 실시간 동영상 기반의 안면 인식(오픈소스)을 적용했을 때, 고사양 노트북이나 키오스크에서는 원활하게 작동했지만, 사양이 낮은 경우 CPU 부하가 높아 화면이 끊기거나 일부 로직이 정상적으로 실행되지 않는 문제가 발생했습니다.
이러한 성능 이슈를 해결하기 위해 실시간 안면 인식 대신 스냅샷 기반의 인식 방식을 도입하여, 저 사양 하드웨어에서도 원활하게 작동할 수 있도록 최적화 했습니다. 이를 통해 다양한 기기에서도 안정적인 운영이 가능해졌습니다.
구현 과정
구현 과정은 크게 사용자 등록과 사용자 로그인으로 구분됩니다. 기존 회원이 안면 인식이 되려면 사용자 얼굴을 등록해야 합니다.
사용자 얼굴 등록 – 정확한 얼굴 사진을 확보하기 위해 FaceLiveness 세션을 통해 얼굴 이미지를 획득하여, 획득한 얼굴 이미지를 S3에 저장 및 벡터화하여 Rekognition의 유저와 얼굴 벡터 데이터를 연관 시키면, 이후 로그인 시 얼굴 검색 기능을 활용할 수 있습니다.
사용자 로그인 – 등록된 사용자는 키오스크 앞에서 Amazon Rekognition을 통해 기존에 등록된 사용자인지를 판단하게 됩니다. 사용자의 얼굴과 매칭 되는 얼굴을 찾게 되면 이를 기반으로 사용자 정보를 로드하고 세션을 등록합니다.
[사용자 얼굴 등록 과정]
얼굴 인증 키오스크 등록 절차 [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/04/01/Picture3.png] 얼굴 인증 키오스크 등록 흐름
1. 사용자 얼굴 사진 등록 요청 키오스크의 카메라를 이용해 얼굴 이미지를 캡처합니다. 사용자가 얼굴 사진을 등록하지 않은 경우, 얼굴 사진 등록 프로세스로 이동합니다.
2. 사용자 인증 사용자는 패스워드를 입력하여 본인 인증을 수행합니다.
3. FaceLiveness 세션을 통한 이미지 획득 FaceLiveness를 활용한 생체 인식을 통해 사용자가 실제 사람인지 확인하고, 정면 얼굴 사진을 획득합니다.
4. 사용자 얼굴 등록 캡처된 얼굴 이미지는 Amazon S3 버킷에 안전하게 저장되며, Amazon Rekognition을 활용하여 얼굴 사진에서 특징을 추출하고 벡터 형식으로 변환합니다. 이미지의 얼굴을 수학적으로 표현하여 이후 Rekognition에서 새로운 사용자를 생성하고, 생성된 사용자와 얼굴 특징 벡터를 연계합니다. 마지막으로, 사용자 얼굴의 메타 데이터를 DynamoDB에 저장합니다.
import boto3
s3 = boto3.client('s3')
rekognition = boto3.client('rekognition')
def register_face(image, user_id):
# S3에 이미지 업로드
s3.put_object(Bucket='user-faces', Key=f'{user_id}.jpg', Body=image)
# Rekognition으로 얼굴 인덱싱
response = rekognition.index_faces(
CollectionId='users',
Image={'S3Object': {'Bucket': 'user-faces', 'Name': f'{user_id}.jpg'}},
ExternalImageId=user_id
)
return response
[ 사용자 로그인 과정]
얼굴 인증 키오스크 로그인 절차 [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/04/01/Picture4.png] 얼굴 인증 키오스크 로그인 흐름
1. 사용자 얼굴 사진 캡처
키오스크의 카메라를 활용하여 사용자의 얼굴 이미지를 캡처합니다.
2. FaceLiveness 세션을 통한 이미지 획득
FaceLiveness를 활용한 생체 인식을 통해 사용자가 실제 사람인지 확인합니다.
3. 얼굴 매칭 및 사용자 식별
Amazon Rekognition의 CompareFaces API를 호출하여 기존 등록된 사용자 중 누구인지 식별합니다.
4. 사용자 정보 로드
얼굴 매칭이 성공적으로 이루어지면, 해당 사용자의 프로필 정보를 데이터베이스에서 로드합니다.
5. 사용자 세션 등록
로그인 및 사용자 확인 절차가 완료되면, 사용자의 정보를 기반으로 세션을 생성하여 인증 상태를 유지합니다.
def verify_face(image):
# 라이브니스 확인
liveness_response = rekognition.detect_face_liveness(Image={'Bytes': image})
if liveness_response['Liveness']['Value'] < 0.9:
return False, "라이브니스 감지 실패"
# 얼굴 매칭
match_response = rekognition.search_faces_by_image(
CollectionId='users',
Image={'Bytes': image},
MaxFaces=1,
FaceMatchThreshold=95
)
if match_response['FaceMatches']:
return True, match_response['FaceMatches'][0]['Face']['ExternalImageId']
else:
return False, "일치하는 얼굴 없음"
[얼굴 인증 프로세스 및 데모 영상]
고스카에서 적용한 얼굴 인식 시스템의 프로세스는 다음과 같습니다. 이 시스템은 웹캠을 통한 실시간 얼굴 감지부터 사용자 인증까지, 완벽한 출입 통제 솔루션을 제공합니다.
1. 실시간 얼굴 감지
웹캠을 통한 비디오 스트림을 통해 일정 주기로 스냅샷을 한 후 오픈소스 라이브러리를 활용하여 얼굴 존재 여부를 판단합니다. 또한, 사용자 편의를 위해 원형 프로그레스 바 및 메세지를 통해 실시간 피드백을 제공합니다.
2. 이미지 캡처 및 전처리 과정
스냅샷된 이미지가 얼굴이라면 이후 다음과 같은 전처리 과정을 거칩니다:
* 640×480 크기의 임시 캔버스 생성
* 정확한 얼굴 영역 추출
* 배경 노이즈 제거를 위한 흰색 처리
* PNG 포맷으로 최종 변환
3. 사용자 인증 프로세스
캡처된 이미지는 백엔드 서버로 전송되어 사용자 식별 과정을 거칩니다.
-성공 시나리오
* 등록된 사용자의 경우: * 실시간 알림 발송
* 출입문 자동 개방
* 환영 메시지 표시
* 미등록 사용자의 경우: * 얼굴 등록 안내
* 등록 프로세스 진행 옵션 제공
-실패 시나리오
* 실패 메세지 표시
* 시도 횟수 카운팅
* 4회 실패 또는 30초 초과 시 초기 화면으로 리다이렉션
4. 신규 사용자 등록 프로세스
새로운 사용자 등록 시에는 다음 절차를 따릅니다:
1. 보안 정책 확인
2. 사용자 로그인 정보 입력
3. 입력 정보 유효성 검증
4. Face Liveness 검사를 통한 얼굴 정보 등록
이러한 체계적인 프로세스를 통해 보안성과 사용자 편의성을 모두 확보할 수 있습니다. 이렇게 구현된 얼굴 인식 시스템은 높은 정확도와 사용자 친화적인 인터페이스를 제공하며, 다양한 보안 시설에서 활용될 수 있습니다.
[영상 1. faceliveness로 사용자 등록]
[영상 2. 얼굴 인증으로 사용자 로그인]
기대효과 및 향후 계획
고스카가 AWS와 협력하여 개발한 얼굴 인식 기반 무인 스터디카페 키오스크 시스템은 업계에 새로운 표준을 제시했습니다. Amazon Rekognition Face Liveness를 핵심 기술로 활용한 이 프로젝트는 다음과 같은 주목할 만한 성과를 거두었습니다.
1. 신속한 개발 및 출시
제한된 개발 인력에도 불구하고, AWS의 관리형 서비스인 Rekognition을 도입함으로써 개발 기간을 대폭 단축했습니다. 이는 제품 테스트와 시장 출시 일정을 앞당기는 데 크게 기여했습니다.
2. 고도의 보안성 확보
Face Liveness 기술을 통해 대리 인증이나 사진을 이용한 부정 접근 같은 악용 사례를 효과적으로 차단했습니다. 이로써 생체 인증의 신뢰도가 크게 향상되었습니다.
3. 사용자 경험 혁신
복잡한 인증 절차를 간편한 안면 인식으로 대체하여, 기존에 휴대폰 번호 11자리와 패스워드 입력을 얼굴 인식 방식으로 전환하여 사용자의 로그인 시간을 40%이상 감소시켜 스터디카페 이용자들의 편의성이 크게 개선했습니다.
4. 효율적인 시스템 통합
기존 AWS 기반 인프라와의 원활한 연동을 통해 전체 시스템의 관리 효율성이 높아졌습니다. 서비스 간 데이터 공유와 동기화가 수월해졌으며, 복잡한 아키텍처도 더욱 쉽게 구현할 수 있게 되었습니다.
5. 범용 하드웨어 호환성 확보
고사양 장비 없이도 원활하게 동작할 수 있도록 최적화하여, 10만 원대의 보급형 태블릿에서도 활용이 가능합니다. 별도의 전용 장비가 필요하지 않아, 기존 키오스크뿐만 아니라 저비용 하드웨어 환경에서도 손쉽게 적용할 수 있어 비용 효율성과 확장성이 뛰어납니다.
결론
이번 안면 인식 AI 프로젝트는 SaaS형 서비스에 AIoT 결합을 통해서 다양한 고객의 문제를 해결하고자 하는 GOSCA팀의 미션에 한발 더 가까워 질 수 있는 프로젝트였습니다. 높은 AWS의 기술력, 기술 지원 담당자의 높은 수준의 이해도 기반 적극적인 기술 지원은 서비스를 빠르게 구현 하는 대에 큰 도움이 되었습니다. 기존 가맹점 뿐만 아니라 신규 서비스의 응용 확장에 AWS 클라우드와 AWS 안면 인식을 적극 활용 할 예정이고, 이번 기술 적용을 계기로 Amazon Bedrock 도입도 추진하여 공간의 고객 관리에 AI를 활용하여 실질적으로 고객이 AI를 공간 사용이 편리해 지는 것을 경험하게 해주고자 합니다.
JongwonKim [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/04/01/김정원.jpg] 김정원
김정원 백엔드 엔지니어는 위커스에서 GOSCA 솔루션의 전체 아키텍처를 설계하며, 효과적인 기술 적용을 통해 비즈니스 가치를 극대화하는 데 집중하고 있습니다.
TaeKeunKim [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/04/01/김태근.jpg] 김태근
김태근 프론트엔드 엔지니어는 위커스 팀에서 GOSCA의 프론트엔드 아키텍처 및 UI를 설계하며, 직관적이고 효율적인 사용자 경험을 제공하기 위해 다양한 기술을 적용하는 데 노력하고 있습니다.
SeungChanLee [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/04/01/이승찬-1.png] 이승찬
이승찬 대표는 고객의 필요를 정의하는 질문을 던지며, 위커스 팀의 방향을 제시하고 있습니다.