Upbox Cloud Journey

리코 · 폐기물 매니지먼트 클라우드 (2021.01 ~ 진행중)

업박스 클라우드의 프론트엔드 핵심 멤버로 초기 1.0 온보딩부터 2.0 론칭, 2.x 운영까지 전체 흐름을 리드한 경험입니다. 복잡한 비즈니스 요구사항을 해결하기 위한 기술적 접근과 문제 해결 과정을 정리했습니다.

작업 기치관 (Job Principles)

업박스 클라우드에서 작업을 처리하는 핵심 원칙과 메커니즘을 설계했습니다. 복잡한 폐기물 처리 업무 흐름을 효율적으로 관리하기 위한 작업 처리 시스템을 구축했습니다.

작업 처리 흐름
작업 생성
유효성 검증
상태 관리
완료 처리

유효성 체크 시스템

Grapevine 방식의 유효성 검증 시스템을 구축했습니다. 컴포넌트 간 유효성 상태를 효율적으로 전파하고 관리하는 구조를 설계했습니다.

컴포넌트 간 검증

여러 컴포넌트에 걸친 복합적인 유효성 검증을 지원합니다.

실시간 피드백

사용자 입력에 대한 즉각적인 유효성 피드백을 제공합니다.

커스텀 규칙

비즈니스 로직에 맞춘 커스텀 유효성 검증 규칙을 정의할 수 있습니다.

Enum 관리 시스템

서버와의 통신에서 사용되는 Enum 값들을 효율적으로 관리하고, Deprecated된 항목을 안전하게 처리하는 시스템을 구축했습니다.

Enum 관리 구조
Enum 정의
활성 Enum
Deprecated Enum
프론트엔드 매핑
서버 통신

컴포넌트 설계

테이블 컴포넌트

대량의 데이터를 효율적으로 표시하기 위한 재사용 가능한 테이블 컴포넌트를 개발했습니다. 정렬, 필터링, 페이지네이션 기능을 포함합니다.

통합검색 컴포넌트

키워드 기반 통합 검색 기능을 제공하는 컴포넌트입니다. 여러 데이터 소스에서 검색 결과를 통합하여 표시합니다.

커스텀 컴포넌트 제작

비즈니스 요구사항에 맞춘 커스텀 컴포넌트를 제작했습니다. 선택 가능한 텍스트, 동시 컴포넌트 사용 등 특수한 요구사항을 지원합니다.

권한 체계

메뉴, 페이지, 필드 단위의 세밀한 권한 관리 시스템을 구축했습니다. 사용자 역할에 따라 접근 가능한 기능을 동적으로 제어합니다.

메뉴 권한
페이지 권한
필드 권한

DTO 관리

서버와의 데이터 통신을 위한 DTO를 체계적으로 관리했습니다. 각 기능별로 필요한 DTO를 정의하고 재사용성을 높였습니다.

DTO 구조
Model / DTO
스케줄 DTO
스케줄 수정 DTO
코스 생성 DTO
그 외 다른 DTO

Provide/Inject 패턴

Vue의 Provide/Inject 패턴을 활용하여 컴포넌트 간 데이터 공유를 효율적으로 관리했습니다. Props drilling 문제를 해결하고 코드 재사용성을 높였습니다.

스케줄 편집

스케줄 편집 화면에서 Provide/Inject를 활용하여 복잡한 데이터 흐름을 단순화했습니다.

스케줄 편집 컴포넌트 구조
Provide / Inject
컴포넌트 1
컴포넌트 3
컴포넌트 4
컴포넌트 2
컴포넌트 5

계약 관리

계약 관리 화면에서도 Provide/Inject 패턴을 적용하여 수많은 테스트 케이스를 효율적으로 처리했습니다.

웹뷰 아키텍처

Android WebView 환경에서 발생하는 캐시 이슈, 프론트엔드 이상 현상, 내부 사용자 운영 문제를 해결했습니다.

웹뷰 데이터 흐름
Server
RCM
RCM
Background
Foreground
Background
Foreground
Noti 표시
Noti 표시
안드로이드 앱 (Native)
안드로이드 앱 (Native)
웹뷰
ROCM
안드로이드 앱 (Native)

푸시 알림 시스템

Foreground와 Background 상태에 따라 다른 방식으로 푸시 알림을 처리하는 시스템을 구축했습니다. Android Native 앱과의 연동을 통해 안정적인 알림 전달을 보장합니다.

Foreground 상태

FCM 수신
즉시 표시
웹뷰 전달

Background 상태

FCM 수신
로컬 저장
앱 실행 시 전달

필드 Deprecated 처리

Select 컴포넌트의 문제점을 해결하고, 더 이상 사용하지 않는 필드를 안전하게 제거하는 프로세스를 구축했습니다. History Back 처리와 연계하여 사용자 경험을 유지하면서 점진적으로 마이그레이션했습니다.

드라이버 게근 플로우 화면 설계

드라이버 가이던스를 위한 플로우 화면을 설계하고 구현했습니다. 단일 플로우로 구성하여 사용자의 혼란을 최소화했습니다.

기술 스택

프론트엔드Vue3, TypeScript, Vite
상태 관리Pinia, Provide/Inject
스타일링SCSS, TailwindCSS
모바일Android WebView, Kotlin
인프라AWS S3, Github Actions
모니터링Datadog