현대자동차 – 전기차충전플랫폼 파일럿과제

현대자동차 – 전기차충전플랫폼 파일럿과제 (HAC)

Hyundai Advanced Charging — 전기차 충전 예약·모니터링·관제 통합 플랫폼


프로젝트 개요

현대자동차의 전기차 충전 인프라를 위한 파일럿 과제로, 전기차 사용자가 충전소를 검색·예약하고 실시간으로 충전 상태를 모니터링할 수 있는 통합 플랫폼입니다. 일반 충전, 자동 충전, 로봇/무인 충전 세 가지 충전 방식을 지원하며, V2G(Vehicle-to-Grid) 방전 기능과 PnC(Plug & Charge) 자동 인증까지 포함합니다.

하나의 Android 코드베이스에서 스마트폰 앱(Portrait 모드)과 IVIS 차량 내 태블릿 앱(Landscape 모드)을 디바이스 방향에 따라 자동 전환하도록 구현했으며, 충전소 관리를 위한 관리자 웹 대시보드Supabase Self-hosted 서버리스 백엔드를 포함한 풀스택 시스템입니다.


시스템 아키텍처

클라이언트(Android 앱 + 관리자 웹)와 Supabase 기반 백엔드로 구성된 3-tier 아키텍처입니다.

CLIENT LAYER
📱 Mobile App (Portrait)
Kotlin · Jetpack Compose · Hilt
  • 충전소 검색/예약
  • 네이버 지도 연동
  • 차량 관리 · V2G · PnC
  • 충전 절차 안내
🚗 IVIS Tablet (Landscape)
동일 코드베이스, 다크 테마
  • 실시간 충전 모니터링
  • 대형 화면 UI
  • 차량 내 디스플레이
🖥️ Admin Dashboard
SvelteKit · TypeScript · Tailwind
  • 충전소/충전기 관리
  • 충전 분석 대시보드
  • 예약/차량/회원 관리
BACKEND LAYER — Supabase Self-hosted
Kong
API Gateway
라우팅 · 레이트 리미팅
GoTrue
인증 서버
JWT 토큰 관리
PostgREST
자동 REST API
Row-Level Security
Realtime
WebSocket
실시간 데이터 동기화
Storage
파일 스토리지
이미지 관리
Edge Functions
Deno 런타임
서버리스 로직
DATA LAYER — PostgreSQL 15
user · car · charging_station · charger · reservation · charging_log · notification · inquiry · message · notice

충전 프로세스

앱에서 충전소를 선택하면 6단계 절차 안내를 거쳐 충전이 시작됩니다. 일반 충전(수동 플러그), 자동 충전(PnC 인증), 로봇/무인 충전(로봇팔) 세 가지 모드를 지원합니다.

① 충전소
검색/예약
② 충전소
주행
③ 주차 ④ 시동
끄기
⑤ 차량
인식
⑥ 충전기
연결
일반 충전
수동 플러그 연결
자동 충전 (PnC)
Plug & Charge 자동 인증
로봇/무인 충전
로봇팔 자동 충전
충전 중 전력(kW) · 충전량(kWh) · 남은 시간 · 경과 시간 · 충전 요금 실시간 표시 — 설정 충전량 도달 시 자동 중지

모바일 앱 (스마트폰)

전기차 사용자를 위한 스마트폰 앱입니다. 충전소 검색·예약, 차량 관리, 실시간 충전 모니터링, 충전 내역 확인 등 전기차 충전 라이프사이클 전체를 지원합니다. Kotlin + Jetpack Compose로 개발되었으며, MVI(Model-View-Intent) 아키텍처 패턴을 적용했습니다.


1. Welcome & 인증

앱 진입 시 로그인 없이도 추천 충전소와 기본 정보를 확인할 수 있고, 차량 등록이나 충전 예약 등 핵심 기능 이용 시 로그인을 유도합니다. Supabase GoTrue 기반 인증으로 회원가입, 로그인, 아이디/비밀번호 찾기를 지원합니다.

웰컴 화면
홈 — 추천 충전소 + 차량 상태
로그인 화면
로그인 — HAC 브랜딩
로그인 유도
비로그인 시 로그인 유도

회원가입은 약관 동의 → 정보 입력 → 완료의 3단계로 구성됩니다. 아이디/비밀번호 찾기는 본인인증을 거쳐 결과를 제공합니다.

계정 생성 1
회원가입 — 약관 동의
계정 생성 2
회원가입 — 정보 입력
계정 생성 3
회원가입 — 완료
아이디 찾기
아이디 찾기
아이디 찾기 2
본인인증
아이디 찾기 결과
아이디 찾기 결과
비밀번호 찾기
비밀번호 찾기
비밀번호 찾기 인증
비밀번호 찾기 — 인증
비밀번호 재설정
비밀번호 재설정
로그인 유도 차량탭
로그인 유도 — 차량 탭
로그인 유도 알림
로그인 유도 — 알림

2. 충전소 검색 & 스테이션

네이버 지도 SDK를 연동하여 현재 위치 기반으로 주변 충전소를 검색합니다. 충전소별로 급속/완속 충전기 종류, 일반/자동/무인 충전 방식, 가용 수량을 한눈에 확인할 수 있으며, 거리순·가격순 정렬과 충전기 유형 필터를 지원합니다. 즐겨찾기 기능으로 자주 이용하는 충전소를 빠르게 접근할 수 있습니다.

충전소 지도
네이버 지도 기반 충전소 검색
스테이션 목록
거리순/가격순 충전소 목록
스테이션 상세
충전기 유형별 가용 현황

충전소를 선택하면 충전기 상세 정보, 위치 안내, 목록 보기 등 다양한 뷰를 제공합니다. 충전기별 출력(kW), 과금 정보, 현재 상태(충전 가능/사용 중/고장)를 실시간으로 확인할 수 있습니다.

스테이션 3
충전기 상세 정보
충전소 목록
충전소 목록 보기
충전소 상세
충전소 상세 정보

추천 충전소 기능은 사용자의 위치, 차량 충전 어댑터 유형, 충전기 가용 상태를 종합적으로 분석하여 최적의 충전소를 자동으로 제안합니다. 필터 설정으로 선호하는 충전 방식과 충전 속도를 지정할 수 있습니다.

충전소 안내 모달
충전소 안내 모달
충전기 위치 안내
충전기 위치 안내
추천 충전소
추천 충전소
추천 충전소 상세
추천 충전소 — 상세
추천 충전소 필터
추천 충전소 — 필터 설정

3. 충전 예약 & 절차 안내

충전기를 선택하면 6단계 절차 안내가 시작됩니다. 각 단계마다 3D 차량 애니메이션과 함께 직관적인 가이드를 제공하여 처음 이용하는 사용자도 쉽게 충전할 수 있습니다. 충전이 시작되면 전력(kW), 충전량(kWh), 남은 시간, 경과 시간, 충전 요금을 실시간으로 모니터링할 수 있습니다.

절차안내 충전소 주행
① 충전소로 주행
절차안내 주차
② 충전 구역 주차
절차안내 시동끄기
③ 시동 끄기
절차안내 차량인식
④ 차량 인식
절차안내 충전기연결
⑤ 충전기 연결
절차안내 안내사항
⑥ 안내사항 확인

충전이 진행되면 프로그레스 바와 함께 실시간 충전 상태가 표시됩니다. 설정한 충전량(예: 80%)에 도달하면 자동으로 충전이 중지됩니다.

예약 충전 1
주차 후 시동 끄기 안내
예약 충전 2
충전 진행 — 실시간 모니터링
예약 충전 3
충전 완료

4. 차량 관리

등록된 전기차의 상세 정보를 관리합니다. 충전 어댑터 유형(DC 차데모, DC 콤보 등), PnC(Plug & Charge) 등록 여부, V2G(Vehicle-to-Grid) 활성화, 충전/방전량 설정(목표 SOC)을 설정할 수 있습니다. 아이오닉 5, 제네시스 등 현대차 전기차 모델을 지원하며, 차량 등록 시 관리자 승인 프로세스를 거칩니다.

차량 관리
차량 탭 — V2G, PnC, 충전량 설정
차량 정보
차량 등록 정보
차량 충전 상태
차량 충전 상태

차량 등록은 차량 번호, 모델명, 충전 어댑터 유형을 입력한 뒤 관리자 승인을 거치는 흐름입니다. 승인 후에는 해당 차량의 충전 내역을 날짜별·충전소별로 조회할 수 있습니다.

차량 상세
차량 상세 관리
차량 등록
차량 등록
차량 등록 정보 확인
차량 등록 정보 확인
충전 내역
충전 내역 조회

5. 마이페이지 & 알림

마이페이지에서는 회원 정보 확인, 고객센터(전화 문의, 1:1 문의), 공지사항 열람이 가능합니다. 알림 센터는 충전 시작/완료, 예약 확인, 차량 등록 승인 등 주요 이벤트를 실시간 푸시 알림과 함께 인앱 목록으로 관리합니다.

마이페이지
마이페이지 — 고객센터, 공지사항
알림 센터
알림 센터
알림 충전시작
알림 — 충전 시작
알림 충전완료
알림 — 충전 완료
알림 예약
알림 — 예약 관련
알림 차량등록
알림 — 차량 등록 승인
공지사항
HAC 공지사항
문의 내역
1:1 문의 내역

IVIS 태블릿 앱 (차량 내 디스플레이)

차량 내 태블릿(In-Vehicle Infotainment System)에 탑재되는 전용 인터페이스입니다. 가로(Landscape) 모드에 최적화된 다크 테마 UI로, 운전 중에도 충전 상태를 쉽게 확인할 수 있도록 대형 텍스트와 직관적인 레이아웃을 적용했습니다. 모바일 앱과 동일한 Kotlin 코드베이스에서 디바이스 방향(Landscape)을 감지하여 자동으로 IVIS 모드로 전환됩니다.


1. 로그인

차량 디스플레이에 최적화된 로그인 화면입니다. 큰 입력 필드와 버튼으로 터치 조작이 용이하며, 다크 테마로 운전 시 눈부심을 줄입니다.

IVIS 로그인
IVIS 로그인 메인
IVIS 로그인 키패드
IVIS 로그인 — 키패드 입력

2. 홈 모니터링 & 충전 상태

IVIS의 핵심 화면입니다. 충전 중인 차량의 실시간 상태를 대형 화면에서 모니터링합니다. 자동 충전과 무인 충전 모드를 나란히 비교하며, 전력(kW), 충전량(kWh), 남은 시간, 경과 시간, 충전 요금을 큰 글씨로 표시하여 운전석에서도 한눈에 확인할 수 있습니다. 충전 진행률은 프로그레스 바로 시각화됩니다.

홈 모니터링
충전 중 — 자동 충전 | 급속 모드
홈 모니터링 비교
자동 충전 vs 무인 충전 동시 비교

3. 충전소 검색 & 선택

차량 내 디스플레이에서 네이버 지도로 주변 충전소를 검색하고, 일반 충전·자동 충전·무인 충전 아이콘으로 충전 방식을 한눈에 구분합니다. 왼쪽 패널에서 충전 방식을 필터링하고, 오른쪽 지도에서 위치를 확인하는 분할 화면(Split View) 레이아웃입니다.

IVIS 충전소
충전소 지도 — 네이버 지도 연동
IVIS 충전소 선택
충전소 선택 — 유형별 현황
IVIS 충전소 상세
충전소 상세 정보
IVIS 충전 내역
충전 내역 조회

4. 차량 & 예약 관리

차량 관리 화면에서는 충전량/방전량 설정을 슬라이더로 직관적으로 조절할 수 있습니다. 예약 관리에서는 현재 진행 중인 충전 예약의 상태 확인과 취소가 가능합니다. 로봇/무인 충전 가능 차량은 별도 뱃지로 표시됩니다.

IVIS 차량
차량 관리 — 충전량 설정 슬라이더
IVIS 차량 상세
차량 상세 — 로봇/무인충전 가능 뱃지
IVIS 예약 취소
예약 관리 — 충전 취소 확인
IVIS 예약 확인
예약 확인

5. 마이페이지 & 알림

IVIS 전용 마이페이지에서 계정 정보 확인, 비밀번호 변경, 차량 관리 기능을 제공합니다. 알림은 모바일 앱과 동기화되어 충전 상태 변경, 예약 알림 등을 차량 디스플레이에서도 확인할 수 있습니다.

IVIS 마이페이지
마이페이지
IVIS 마이페이지 상세
마이페이지 — 상세 설정
IVIS 알림
알림 — 차량 디스플레이

기술 스택

Android 앱 (Mobile + IVIS)

  • Kotlin + Jetpack Compose — 선언형 UI, 디바이스 방향에 따라 Mobile/IVIS 자동 전환
  • MVI 아키텍처(Model-View-Intent) + Hilt 의존성 주입
  • Supabase Kotlin SDK — 인증, 실시간 데이터, 스토리지
  • 네이버 지도 SDK — 충전소 위치 표시 및 검색
  • Kotlin Coroutines + Kotlin Serialization

관리자 웹 대시보드

  • SvelteKit 2.0 + TypeScript + Tailwind CSS 3.4
  • Supabase JS SDK — SSR 어댑터 통합
  • 충전소/충전기 관리 + 충전/방전 분석 대시보드 + 예약/차량 관리
  • Docker 컨테이너 배포 (Node.js 20)

백엔드 (Supabase Self-hosted)

  • PostgreSQL 15 + Row-Level Security (RLS) 정책
  • PostgREST — 자동 REST API 생성
  • GoTrue — 인증 + JWT 토큰 관리
  • Realtime — WebSocket 실시간 데이터 동기화
  • Kong API Gateway — 라우팅, 레이트 리미팅
  • Edge Functions(Deno) — 서버리스 로직
  • Docker Compose 기반 전체 인프라 오케스트레이션