-
골프 발권 및 제어 기능 개발
- 키오스크, 운영툴, 앱 등에서 골프 타석기 이용을 위한 발권, 대기 등에 필요한 CRUD 기능을 개발하였습니다. 운영툴, 앱은 클라우드 서버를 거쳐 현장 애플리케이션과 통신하고, 이후 타석기 제어 업체와 통신합니다. 키오스크는 현장 애플리케이션과 직접 통신하고, 이후 타석기 업체와 통신합니다.
- 단지마다 타석기 연동 업체가 다르기 때문에, 단지별로 어떤 타석기 제어 업체와 연동하고 있는 지를 정책적으로 관리하고, 제어 로직을 추상화하여 업체 타입에 따라 구현체가 달라지도록 하였습니다.
- 업체마다 각기 연동 방식이 상이하며, TCP, UDP 통신이 필요한 경우는 Netty로, HTTP 통신은 Rest API로 구현하였습니다.
-
사우나 발권 및 제어 기능 개발
- 키오스크, 운영툴, 앱에서 사우나 서비스 발권을 받고, 이를 토대로 출입 및 락커 제어가 가능하도록 연동합니다. 특정 락커에 대해 발권 성공하면 해당 입주민 카드의 식별값이 락커의 KeyCode로 삽입됩니다. 이러한 락커 제어 업체와는 TCP 통신만 가능하여 Netty를 사용하여 연동하였습니다.
- 다만 비동기이기 때문에 개발과정에서 요구사항 달성을 위해 고려했던 부분이 있으며, 아무래도 디버깅이 어렵기 때문에, 로그를 적절하게 심어 디버깅 포인트를 만들기 위한 과정이 추가로 요구 됩니다.
-
독서실 발권 및 제어 기능 개발
- 사우나 비슷한 서비스 이용 방식을 가지고 있고, 업체도 동일하여 연동도 비슷하게 이루어졌다고 볼 수 있습니다. 다만 독서실 락커는 락커에 연결된 전등에 대한 제어도 가능해야 하기 때문에, ExtraKeyCode가 추가로 삽입됩니다.
- 마찬가지로 비동기이기 때문에 발생하는 어려움은 사우나와 같습니다.
-
어드민툴 2.0 스피드게이트 및 출입통제기 실제 테스트 기능 구현
- 어드민 툴에서도 직접 특정 단지의 스피드게이트를 열고 닫을 수 있는 기능 개발
- 사업부나 운영팀, 개발팀 모두에서 현장 세팅 혹은 장애 시에 테스트하기 위한 범용적인 용도
- 플로우는 클라이언트 요청(어드민 툴) → 클라우드 서버 → 현장 서버 → 출입 통제기를 거칩니다. 또한 응답결과가 역순으로 클라이언트에 돌아옵니다.
-
IOT 키오스크 설정값 관리를 위한 기능 구현
- IOT팀의 소프트웨어가 들어가는 현장 키오스크 설정 값들을 어드민 툴에서 관리하려는 하는 의도로 개발했습니다.
- 키오스크에서 로컬 데이터로 설정 값을 저장하고, 백엔드 서버에서도 관리를 하여 양방향 동기화 문제가 중요해서 작업 볼륨이 있었습니다.
-
IOT 기기 프로그램의 버전 정보 관리를 위한 기능 구현
- 마찬가지로 키오스크, 포스 등의 현장 기기에 들어갈 소프트웨어 프로그램 버전 정보를 관리하여, 버전 관리를 용이하게 하기 위한 용도로 IOT팀와 협업하여 개발했습니다.
- 프로그램 버전 정보 관리를 위한 CRUD API를 개발했습니다.
-
이력 수동 생성 시에 N건에 대해서도 이력 생성이 가능하도록 기능 확장
- 이력 수동 생성이 단건만 되서, 수십, 수백 건에 대한 수동 데이터 생성이 필요할 때 단지에서 불편함을 호소하던 문제를 기능 확장을 통해 해결하였습니다.
-
이용권 강좌 연결이 가능하도록 CRUD 기능 추가 및 확장
- 이용권이란 개념에 대해 처음 들으면 익숙지 않을거라 간단히 설명하자면, 현장 커뮤니티 시설을 이용할 수 있는 자유이용권 같은 개념으로 보시면 됩니다. 보통 매달 특정 세대에 특정 횟수 만큼은 무료로 주어지고, 그 무료 횟수를 초과하면 1회당 비용이 가산되는 개념입니다.
- 강좌시간엔 이용권 차감이 되지 않길 원하는 현장의 요구사항에 따라, 이용권에 강좌를 연결하여 해결하였습니다. (강좌는 예약시에 비용이 이미 지불되므로 이중부과하지 않기 위하여)
- 키오스크, 운영툴 등에서 관련 기능이 사용가능해야 한다는 점에서 프론트엔드와 IOT팀, 예약 도메인과의 협업도 필요했고, 협력적으로 작업이 잘 이루어졌습니다.