카페 좌석 관리 시스템 박평우¹, 임종찬², 노우리², 문은미³, 이석원¹ 아주대학교 소프트웨어융합학과¹, 아주대학교 미디어학과², 아주대학교 사이버보안학과³ 경기도 수원시 영통구 월드컵로 206 bryan921105@gmail.com, yjc0301@ajou.ac.kr, yuwooloe@naver.com, pqpq0404@naver.com, leesw@ajou.ac.kr 요약: 본 프로젝트는 카페의 잔여 좌석을 자동으로 인식하여 해당 카페의 점주 및 점원, 그리고 고객들 에게 실시간으로 알려주는 시스템이 본 시스템은 소프트웨어 공학적 관점으로 설계 및 구현되었고, 타이젠, 아두이노, 라즈베리파이, 서버로 구성되었 1. 서론 우리나라 사람들은 카페인 중독에 시달리고 있 한국 농림축산 식품부서와 한국 농수산 식품유동 공 사에서 조사한 가공식품 소비현황 보고서에 따르면, 주당 소비 빈도가 가장 높은 음식은 커피로 일주일 에 12.2 회, 1 인 당 하루 2 잔, 다른 음식을 먹는 횟 수보다 배로 섭취한다고 한 또한, 번화가나 대학 가 근처에서 카페 앞에 길게 줄 서있는 사람들, 커 피를 들고 다니는 사람들도 심심치 않게 볼 수 있으 며, 대학교 시험기간에는 대학가의 카페가 문전성시 를 이루고 있 이는 요즘 학생들의 학습 형태의 변화로 인해, 혼자 앉아 책을 보며 공부하던 과거와 달리, 노트북을 이용하거나 팀을 이뤄 토론하며 학 습하기 때문이 더욱이, 강의 자료가 대부분 PPT 나 PDF 등의 컴퓨터 파일로 작성되어 있고, 온라인 강의를 듣거나 조별 발표를 준비하여야 하는 경우가 많기 때문에 노트북을 쓸 일이 잦아지게 된 것이 따라서, 조작에 따른 소음 등으로 인해 눈치 보지 않고 공부하기 위하여 카페를 찾는 사람들이 늘고 있는 것이 서울 신촌 일대에는 맞춤형 공부 카페 도 등장하는 추세이고, 카페는 점차 마시는 곳이 아 닌 공부하는 곳, 길게 대화 및 토론을 나눌 수 있는 장소로 변해가고 있 이러다 보니, 카페가 아무리 많더라도 카페를 가려는 사람들의 수요를 카페의 좌 석이 모두 충당하지 못하는 지경에까지 이르게 되었 고, 카페를 가려는 사람들은 좌석에 앉지 못하고 자 리가 빈 곳을 찾기 위하여 몇 번이나 여러 카페에 들락날락 거리고 헤맬 수 밖에 없게 되었 현재, 대부분의 카페에서는 원초적인 방법으로 좌 석을 관리하고 있 이로 인해 카페를 찾는 고객뿐 만 아니라, 매장 점원들도 어려움을 겪고 있고, 카 페 점주도 금전적으로 손해를 볼 수 밖에 없는 실정 이 고객들은 언제 어느 카페의 좌석에 착석할 수 있는 지 알기 어렵기 때문에, 직접 매장에 방문하여 두 눈으로 확인한 후, 자리를 이용할 수 있기 때문 에 큰 불편함이 따른 현재 실생활에서 상용화 된 유사 시스템은 도서관이나 교통 시설 등에서 볼 수 있는데, 이 시스템은 특정 기관이나 매장에서만 사 용할 수 있는 것으로 다소 협소한 범위 내에서만 유 용하고, 본 프로젝트의 시스템과 용도 및 목적에 명 백한 차이가 있 또한, 매장 점원들은 좌석을 관 리하려면 매번 카페에 어떤 고객이 어느 좌석을 이 용했고 언제 매장을 나가는지 직접 눈으로 확인 할 수 밖에 없 카페의 좌석을 일일이 확인하여 수동 으로 일정 주기마다 반복하여 정보를 취득할 수 밖 에 없는 현재의 상황은 노동력의 큰 손실과 자원의 낭비로 이어진 이는 당사자인 매장의 직원이 좌 석을 항상 청결한 상태로 유지하기에 매우 힘이 들 고, 미처 더러워진 자리를 발견하지 못할 수도 있 카페의 청결성은 결과적으로 매출과 직결되기에 카 페의 점주도 손해를 볼 수 밖에 없 오늘날, 상용화가 가능하고 이미 개발된 유사 시 스템은 본 도메인에 적용하기에 아직 무리가 따른 그 이유는 크게 두 가지로 분류할 수 있는데, 첫 번 째로 자동적으로 좌석을 인식할 수 있는 시스템이 아니기 때문이 예를 들어, 학교 도서관 및 영화 관 같은 시설에서 사용되는 대부분의 시스템은 매번 고객이 자리에 착석하거나 자리에서 나갈 때 어떠한 명령이나 정보를 시스템에 직접 전달해야 하는 큰 불편함이 따른 이는 카페나 다른 상업적 매장에 서 이용하기에 고객 측면에서 불편함만 가중될 뿐이 또한, 카페의 점원 및 점주도 좌석을 제대로 관 리하는데 여전히 어려움이 따르게 된 다음 두 번 째 문제는 시스템 통합적 문제이 효율적인 카페 좌석 관리 시스템은 기본적으로 한 카페에서만 이용 가능한 것이 아니라 여러 카페에서 동시적으로 이용 할 수 있는 시스템이어야 한 이는 한 카페의 좌 석만을 고객이 확인하고 이용할 수 있는 것이 아니 라, 여러 카페 중 남는 모든 좌석을 고객이 실시간 으로 확인할 수 있어야 하는 것이 이러한 이유로
현재 유사 시스템은 카페에 도입될 수 없는 실정이 즉, 현 카페의 좌석 관리는 빈 좌석 현황을 자 동적으로, 실시간으로 알 수 없기 때문에 고객과 카 페의 점원 및 점주 모두가 불편함을 겪고 있는 것이 이는 카페 이해관계자들의 요구사항을 충분히 반영하지 못한 결과라고 판단할 수 있 본 시스템의 목적은 크게 두 가지로 설명할 수 있 첫 번째는, 카페를 이용하려는 고객들에게 빈 좌석을 빠르고 쉽게 찾을 수 있도록 도와주는 것이 프로젝트의 결과물로써 빈 좌석이 있는 제일 가 까운 카페를 알려주고, 해당 카페에 대한 대략적인 정보도 알려준 또한, 전기 콘센트, 테이블의 크 기, 한 테이블 당 좌석의 수 등과 같이 카페에 대한 구체적인 정보도 포함하여 알려주기 때문에 더욱 편 하게 카페를 이용할 수 있도록 도와준 이로 인해 고객들은 자리가 없는 카페에 들어가 좌석을 확인할 필요가 없어지고 해당 카페의 주변 자리와 분위기 또한 예상해볼 수 있 두 번째는 카페 매장에서 체계적으로 좌석을 관리할 수 있도록 도와주는 것이 본 시스템은 카페의 점원이나 점주가 계산대에 서 좌석을 한번에 둘러볼 수 있게 해준 따라서 수동적으로 좌석을 확인하고 청소하며 관리해야만 하는 작업을 피할 수 있고, 전체적인 매장 좌석 관 리를 훨씬 더 용이하게 만들 수 있 이후, 본 프로젝트의 전반적인 과정은 해당 목적 을 달성하기 위하여 실질적으로 카페라는 도메인 내 이해관계자들의 요구사항을 나열하고, 철저히 분석 한 후, 이를 기반으로 소프트웨어 공학적 관점에서 설계, 개발 및 구현하였 2. 시스템 요구사항 분석 및 설계 본 시스템에 대한 요구사항은 크게 세 부분으로 나뉜 첫 번째, 고객 요구사항은 이용자에게 초점 을 맞춘 요구사항으로써, 타이젠 어플리케이션을 통 해 해당 시스템을 이용하는 고객과 라즈베리파이를 통해 관리하는 점원 및 점주를 기반으로 작성된 명 세서이 카페 좌석 관리 시스템은 기본적으로 각 카페에 대한 정보를 충실하게 제공하여야 한 이 정보는 카페 매장의 위치, 좌석의 위치, 총 좌석의 개수, 잔여 좌석의 개수, 음료의 가격 및 정 보, 그리고 이벤트 등을 포함한 시스템은 해당 정보를 실시간으로 고객에게 자동적으로 알려주고, 매장 점원이나 점주가 이를 직접 공지하고 글을 게 시할 수도 있어야 한 두 번째는 시스템 요구사항 으로, 시스템의 동작 수행에 대한 을 작성한 것 이 이는 프로젝트의 주목적격인 좌석 관리의 인 식 및 감지 부분으로써, 센서를 통해 시스템이 좌석 의 사용 여부를 판단하는 것, 본 프로젝트에 부합한 제공을 위하여 시스템이 갖추어야 하는 기능 등이 담겨있 마지막 세 번째는 도메인 요구사항 이 이는 시스템 외적인 부분과 관련된 것으로 안 전 사항, 세부적인 센서의 요구사항 등의 으로 구성된 아래 표는 요구사항을 간략하게 나타낸 것이 타이젠 어플리케이션을 사용하 회원가입 기 위한 절차로써 서버에 정보 를 저장한 회원가입 이후, 아이디와 비밀 로그인 번호를 통해 인증 받는 타이젠 어플리케이션을 통해 카 카페 리스트 확인 페 좌석 관리 시스템을 이용하 는 카페를 보여준 실시간으로 해당 카페의 잔여 실시간 좌석 확인 좌석 현황을 보여준 표 1 타이젠 요구사항 해당 좌석의 사용 여부를 인식 좌석 사용 여부 및 감지하여 서버로 정보를 전 달한 표 2 아두이노 요구사항 실시간으로 해당 카페의 잔여 실시간 좌석 확인 좌석 현황을 보여준 표 3 라즈베리파이 요구사항 타이젠 어플리케이션에서 요 타이젠 통신 청하는 정보를 송신한 아두이노 기기에서 인식 및 아두이노 통신 감지한 값을 받아 저장한 라즈베리파이에서 요청하는 라즈베리파이 통신 정보를 송신한 표 4 서버 요구사항 요구사항 분석 과정은 전체적인 시스템에 대하여 기능 및 로 구분한 후, 유즈케이스 다이어그 램 작성 작업을 통해 수행하였 그림 1 유즈케이스 다이어그램
대에서 보여주는 역할을 수행한 이는 라즈베리파 이, 모니터, 서버로 구성되어 타이젠 어플리케이션 부분과 같이 실시간으로 현재 카페 내 총 좌석의 수, 잔여 좌석의 수, 사용 중인 좌석의 수 및 각각 해당 좌석의 위치를 확인할 수 있도록 한 그림 2 전체 시스템 설계 카페 좌석 관리 시스템의 전체적인 설계는 위 그 림 2 와 같 그림 3 타이젠 설계 부분 그림 3 은 전체 시스템 설계 중 타이젠 부분을 나 타낸 그림이 이 시스템 부분은 타이젠 어플리케 이션을 통해 통신하여 고객에게 카페에 대한 를 제공하는 부분으로, 타이젠 어플리케이션과 서버 로 구성된 이 때 시스템은 앞서 말한 것과 같은 정보를 제공하는 역할을 수행하며, 모든 정 보를 가지고 있는 서버는 타이젠 어플리케이션에서 고객이 원하는 정보를 요청할 때마다 통신하여 정보 를 송수신한 또한, 서버와 타이젠 어플리케이션 은 같은 연결 통신망에 있지 않은 경우에도 외부 통 신망을 이용하여 언제든지 요청에 응답할 수 있도록 설계하였 그림 5 아두이노 설계 부분 그림 5 는 아두이노 설계 부분으로 아두이노 센서, 아두이노, 서버로 구성하였 이 시스템 부분은 좌 석을 감지하고 판별하여 정보를 저장하는 부분이 즉, 직접적으로 좌석에 대하여 비어있는지 또는 사 용 중인지 판단하고 실시간으로 그 값을 입력 받는 역할을 수행하며 지속적으로 그 값을 갱신하여 정보 를 저장한 이와 같이 총 세 가지 시스템 부분의 설계는 전체 적으로 하나의 시스템으로 통합 및 형성되어 카페 좌석 관리 시스템의 목적에 부합하도록 하였으며, 효율적으로 구현할 수 있도록 설계하였 3. 시스템 동작 본 프로젝트의 시스템은 철저히 위 시스템 설계 내 용을 따르고 있고, 각각 고객과 점원 및 점주 측면 에서의 요구사항을 기반으로 작성되었으며, 이에 대 한 분석 과정을 통하여 동작한 시스템 동작 과정은 크게 상황인지 모형, 상호작용 모형, 구조 모형, 동적 모형 및 설계 패턴 등으로 분류하여 작성하였 그 중 상호작용 모형인 시퀀 스 다이어그램은 다음 그림과 같 그림 4 라즈베리파이 설계 부분 그림 4 는 라즈베리파이 부분에 대한 설계를 간단 하게 나타낸 그림이 이 시스템 부분은 카페 점원 및 점주가 수월하게 카페 좌석 관리를 할 수 있도록 하는 부분으로, 현재 카페 좌석을 해당 매장의 계산 그림 6 시퀀스 다이어그램 위 그림 6 의 좌측 그림은 고객이 타이젠 어플리케 이션을 통해 수행한 로그인 과정을 나타낸 것이고, 우측 그림은 카페 점원 및 점주가 라즈베리파이를
통해 수행한 카페 좌석 현황 확인 과정을 나타낸 것 이 이를 기반으로 카페 좌석 관리 시스템의 동작 과정을 알아볼 수 있 그림 7 클래스 다이어그램 그림 7 은 구조 모형의 클래스 다이어그램을 나타 낸 것으로써 본 프로젝트인 카페 좌석 관리 시스템 의 클래스를 구체적으로 표현한 그림 8 타이젠 스테이트 머신 다이어그램 위 그림 8, 그림 9, 그림 10 은 스테이트 머신 다 이어그램으로, 객체의 상태와 상태를 변화시키는 이 벤트를 표현한 것으로써, 특정 객체의 생명주기 동 안에 가질 수 있는 조건, 생명주기 내 수행하는 활 동에 대하여 작성한 것이며, 각각의 그림은 순서대 로 타이젠 어플리케이션, 아두이노, 라즈베리파이에 대한 것이 이 외에도 많은 모형과 다이어그램을 통해 시스템 동작 과정을 설계하였고 이를 기반으로 동작한 시스템 동작 시나리오는 고객, 점원 및 점주 두 과정으로 나누어 볼 수 있 먼저, 카페 좌석 관리 시스템이 설치된 카페를 방문한, 타이젠 어플리케이 션을 설치한 고객의 시나리오는 다음과 같은 순서로 이루어진 1. 고객은 타이젠 어플리케이션 사용을 위하여 회원으로 가입한 2. 고객은 회원가입 정보 를 입력하여 로그인 한 3. 타이젠 어플리케이션에 서 제시하는 주변 카페 목록을 통해, 고객은 가려고 하는 카페를 선택한 4. 고객이 선택한 카페에 대 하여 카페의 위치, 세부정보, 현재 잔여 좌석의 수 와 위치 및 이벤트 등을 확인한 이와 같이 크게 총 네 가지 과정으로 고객의 관점에서 시스템은 동 작한 이 외, 점원 및 점주의 시스템 동작 시나리 오는 다음과 같 1. 점원 및 점주는 카페 내 라즈 베리파이를 통해 해당 카페의 정보를 확인한 2-1. 카페의 정보를 게시 및 수정한 2-2. 카페의 좌석 관리를 위하여 실시간으로 좌석 현황을 확인할 수 있 이 두 과정으로 카페의 점원 및 점주는 시스 템을 충분히 활용할 수 있 본 프로젝트의 시스템은 위 기본 시나리오대로 동 작하고 이 외에도 추가적으로 다른 시나리오를 진행 할 수 있도록 지원한 4. 구현 및 결과 프로젝트의 구현 및 결과로써 실제로 구현한 시스 템은 다음 그림과 같 그림 9 아두이노 스테이트 머신 다이어그램 그림 10 라즈베리파이 스테이트 머신 다이어그램 그림 11 타이젠 어플리케이션 구현 1
그림 11 은 타이젠 어플리케이션에서 회원가입과 로그인 과정을 나타낸 그림이 고객은 타이젠 어 플리케이션을 통해 서버에 회원 정보를 송신한 후, 인증을 받아 로그인 작업을 완료한 를 눌러, 좌석 사용 유무에 따른 결과를 타이젠 어 플리케이션을 통해 나타낸 그림이 그림 14 의 위 그림은 해당 좌석에 사람이 앉지 않은 경우이고 아 래 그림은 좌석에 사람이 앉아 잔여 좌석의 수가 하 나 줄어든 모습이 5. 테스트 그림 12 타이젠 어플리케이션 구현 2 그림 12 는 개발한 타이젠 어플리케이션에서 카페 목록과 해당 매장의 정보, 즐겨찾기 기능을 나타낸 그림 13 라즈베리파이 통신 구현 그림 13 의 좌측 그림은 아두이노 센서를 누르기 전 인, 좌석에 고객이 착석하기 전 라즈베리파이의 화 면이고, 우측 그림은 아두이노 센서를 통해, 좌석에 고객이 착석한 후 라즈베리파이의 화면이 자세히 살펴보면, 좌측의 그림은 전체 50 개 좌석 중 36 개의 잔여 좌석을 화면에 나타내고 있는 반면에, 우측 그 림은 전체 50 개 좌석 중 한 자리가 채워진 35 개의 잔여 좌석 수를 화면에 보이고 있 그림 14 타이젠 어플리케이션 통신 구현 그림 14 는 위 그림 13 과 마찬가지로 아두이노 센서 구현 및 결과 이후 테스트를 통해 시스템의 구현 정도를 검증하였 테스트는 개발 테스트, 릴리즈 테스트를 통하여 진행하였고, 기능 별로 나누어 유 닛 테스트, 시스템 테스트를 수행하였 테스트는 기기 간 통신과 센서의 동작에 초점을 맞추었 테스트 이름 아두이노 서버 연결 테스트 라벨 UNT_01 테스트 설명 아두이노의 센서 값이 실시간으로 서버와 동기화되는지 확인한 테스트 방법 아두이노의 센서 값을 바꾸어 서버 에 저장된, 변화하는 값과 동일한 가를 확인한 테스트 결과 49/50 (98%) 표 5 아두이노 서버 연결 테스트 테스트 이름 타이젠 서버 연결 테스트 라벨 UNT_02 테스트 설명 타이젠 어플리케이션에서 요청한 정 보를 서버에서 받아올 수 있는지 확 인한 테스트 방법 타이젠 어플리케이션에서 카페 정보 나 좌석의 현황을 요청하는 경우, 서버에서 제대로 받아오는지 확인한 테스트 결과 50/50 (100%) 표 6 타이젠 서버 연결 테스트 테스트 이름 라즈베리파이 서버 연결 테스트 라벨 UNT_03 테스트 설명 라즈베리파이에서 요청한 정보를 서 버에서 받아올 수 있는지 확인한 테스트 방법 라즈베리파이에서 카페 정보나 좌석 의 현황을 요청하는 경우 서버에서 제대로 받아오는지 확인한 테스트 결과 50/50 (100%) 표 7 라즈베리파이 서버 연결 테스트 테스트 이름 전체 시스템 연결 테스트 라벨 SYST_01 테스트 설명 아두이노에서 인식 및 감지한 값을 실시간으로 타이젠 어플리케이션, 라즈베리파이, 서버에서 즉시 동기 화되는지 확인한 테스트 방법 아두이노의 센서 값을 유지하거나 변화시켜서 타이젠 어플리케이션,
라즈베리파이, 서버의 값을 확인한 테스트 결과 48/50 (96%) 표 8 전체 시스템 연결 테스트 표 5 는 아두이노와 서버 간 연결로, 아두이노 기 기가 좌석의 사용 여부를 판단하여 즉시 재시도 없 이 서버로 값을 전송하는지 검증하였 표 6 은 이 와 마찬가지로 서버와 타이젠 어플리케이션 통신을, 표 7 은 서버와 라즈베리파이 통신을 검증하였 이 를 통하여 여러 차례 유닛 테스트 시행하여 작업을 완료하였고, 표 8 을 통해 전체적인 시스템 테스트를 진행하였 이 외에도 총 10 가지 테스트를 통해 본 프로젝트의 시스템은 100%에 근사한 테스트 결과를 보였고, 안정적이고 높은 신뢰성을 보장하는 시스템 을 구현하였다고 판단할 수 있었 이 시스템은 좌석에 부착한 센서를 통해 현재 매장 내 손님의 착석 유무를 판단하고 실시간으로 동기화 하여 다른 예상 고객들에게 시각적으로 바로 알려주 는 데에 의미를 가진 따라서 카페뿐만 아니라, 영화관, 도서관, 음식점, 강의실, 교실 등 수많은 곳에서 긍정적인 효과를 예상할 수 있 즉, 본 프 로젝트는 고객들이 기다릴 필요 없이 원하는 좌석에 앉게 도와주는 것, 매장의 좌석이 낭비되는 것을 막 는 것, 매장과 고객 모두에게 시간과 공간이라는 자 원을 효율적으로 사용하도록 돕는 것 등을 기대효과 로 가질 수 있 또한, 이 시스템이 활성화된다면 사람이 존재하는 모든 장소에 설치하여 개개인의 시 간과 공간, 에너지를 크게 절약할 수 있을 것이며, 경제적, 사회적으로도 막대한 효용을 가져올 수 있 을 것이 6. 결론 본 프로젝트는 처음부터 체계적인 설계, 개발 및 구현, 그리고 테스트 등의 소프트웨어 공학적 설계 를 통해 완료한 프로젝트이 기존의 대학교 학부 과정의 프로젝트 수행과 달리, 소프트웨어 공학적 관점에서 철저하게 분석하고, 업무 및 일정을 분할 하였으며, 개발과 구현까지 완료하였 소프트웨어 공학은 허용된 시간, 타당한 비용 범위 내에서 올바 르고 효과적인 융통성 있는 보수가 쉬운 프로그램을 작성하기 위한 지침으로, 본 프로젝트에서는 이를 기반으로 진행하였 이후, 실제적인 비즈니스적 측면에서 실제 카페의 허가를 받아 직접 도입해 볼 수 있을 것이 먼저, 손님이 적은 지역의 작은 카페들을 우선적으로 접촉 하여 카페의 실내 구조, 테이블 및 좌석의 위치와 개수 등을 파악하고 그 외 음료에 대한 정보 및 이 벤트 등을 입력하여 시스템을 설치한 해당 카페 에 찾아오는 고객들에게는 타이젠 어플리케이션을 설치하여 사용하도록 권장한 후, 시범적으로 테스트 를 시행해볼 수 있 이를 통하여 사업 계획 테스 트 모델인 유동인구와 손님이 적은 지역의 작은 카페 내에서 해당 시스템을 도입한 일부 카페가 상대적으로 매출이 오르거나 긍정적인 효과를 보았 다면, 점차 확장해나갈 수 있는 가능성이 높아지게 된 또한, 시스템에서 발생할 수 있는 오류를 점 차 수정하고 보완해나가면서 시스템은 더욱 완전해 지고 점진적으로 유동인구가 많은 지역에 도입할 수 있을 정도의 시스템으로 발전할 것으로 보인 최 종적으로는 카페 시장에서 유행을 선도하여 앞으로 크게 성장할 수 있을 것으로 보인 기대효과로 카페 좌석 관리 시스템은 좌석이 있는, 좌석의 관리가 필요한 모든 곳에 이용될 수 있 7. Acknowledgement 본 연구는 미래창조과학부 및 정보통신기술진흥센 터의 실전적 SW 교육(SW 중심대학)지원사업의 연구결 과로 수행되었음(R7115-15-1005) 참고문헌 [1] [2] [3] [4] [5] [6] Ian Sommerville. Software Engineering. Pearson, 2009 강민성 외 4 인. 사용자 중심의 효율적인 좌석 자원 관리 시스템 설계 및 구현. 한국정보통신학회, 2007. 박용배 외 4 인. 사용자 맥락에 따른 좌석 추천 시스템 제안. 한국 HCI 학회, 2015. 신동성 외 6 인. NFC 를 이용한 카페 웹 어플리케이션 설계. 한국정보과학회, 2014. 김용준 외 3 인. POS 시스템 기반의 매장 좌석정보 시스템. 한국정보과학회, 2015. 김지표. 대학 도서관 열람실의 효율적 운영방안. 대한산업공학회, 2006.