스마트팜 모니터링 앱 UI·UX 리디자인
본 공고의 우선 개선 화면(메인 대시보드, 데이터 시각화·기록 검토, 알림·경고, 사용자 피드백)을 농장주가 보는 모니터링 화면으로 설계한 프로젝트입니다.
프로젝트 개요
본 공고의 우선 개선 화면(메인 대시보드, 데이터 시각화·기록 검토, 알림·경고, 사용자 피드백)을 농장주가 보는 모니터링 화면으로 설계한 프로젝트입니다. 화면 구조는 Flutter 위젯 단위로 옮길 수 있게 컴포넌트로 나누어 구현했습니다.
작업 범위
- 실시간 대시보드: 농장주가 첫 화면에서 동별 온도·습도·CO2 현재값과 오늘 관수 일정, 확인이 필요한 경고를 한 번에 봅니다
- 데이터 기록: 기간(일·주·월)을 고르고 온도·습도·CO2 추이를 차트와 표로 비교하며 이상 구간을 찾습니다
- 알림·경고: 심각도별로 알림을 거르고 경고 상세에서 원인 센서와 최근 값을 보며 확인 처리합니다
- 피드백 남기기: 농장주가 화면 사용 중 불편한 점이나 제안을 분류와 함께 남기고 접수 내역을 확인합니다
주요 업무
- 실시간 대시보드 화면: 동 선택 카드, 센서 값 갱신 표시, 경고 띠, 작업 일정 목록을 Flutter 위젯 단위 컴포넌트로 분리해 설계합니다
- 데이터 기록 화면: 기간 탭, 항목 겹쳐 보기, 한 점 선택 시 값 상세, 표 내려받기 구조를 설계합니다
- 알림·경고 화면: 심각도 칩 필터, 경고 상세 대화상자, 확인 처리와 되돌리기, 읽음 상태 동기화 구조를 설계합니다
- 피드백 남기기 화면: 분류 선택, 입력 검사, 접수 완료 상태, 내 피드백 목록의 처리 단계 표시 구조를 설계합니다




프로젝트 핵심 과제
센서 수신이 끊긴 동을 마지막 값과 구분해 표시하는 연결 상태 판정 규칙 설계
온도·습도·CO2처럼 단위와 적정 범위가 다른 항목을 한 차트에 겹쳐 보여주는 축 설계
같은 경고가 반복 발생할 때 알림 목록이 길어지지 않
묶는 기준 설계 필요
약 30개 화면에 공통 토큰을 적용하는 순서와 화면별 점검 기준 설계
핵심 기능 상세
실시간 대시보드
농장주가 첫 화면에서 동별 온도·습도·CO2 현재값과 오늘 관수 일정, 확인이 필요한 경고를 한 번에 봅니다.
- SSE 스트림으로 센서 값을 받아 값이 바뀐 카드만 다시 그리는 구조 설계
- 동·센서 단위 카드를 Flutter 위젯 트리와 1:1로 대응하는 컴포넌트로 분리
- 정상·주의·위험 3단계 상태를 한 곳의 매핑 표로 관리해 모든 화면에서 같은 색 적용
센서 값의 갱신 시각과 상태 등급을 하나의 데이터 모델로 묶어, 대시보드·기록·알림 화면이 같은 값을 읽는 구조를 구현합니다.


데이터 기록
기간(일·주·월)을 고르고 온도·습도·CO2 추이를 차트와 표로 비교하며 이상 구간을 찾습니다. 기간 탭, 항목 겹쳐 보기, 한 점 선택 시 값 상세, 표 내려받기 구조를 설계합니다.
- SVG로 직접 그린 선 차트에 기준선(적정 범위)과 이탈 구간 음영 표시 구현
- 기간별 집계(시간 평균·일 평균)를 서버 쿼리로 나눠 차트 점 개수를 일정하게 유지
- 차트와 표가 같은 선택 상태를 공유해 한 점을 누르면 해당 행이 강조되는 구조 설계
기간을 바꿔도 차트 점 개수가 일정하도록 서버 집계 단위를 자동 선택하는 쿼리 구조를 설계합니다.


알림·경고
심각도별로 알림을 거르고 경고 상세에서 원인 센서와 최근 값을 보며 확인 처리합니다. 심각도 칩 필터, 경고 상세 대화상자, 확인 처리와 되돌리기, 읽음 상태 동기화 구조를 설계합니다.
- 심각도 3단계(주의·위험·복구)를 알약과 정렬 순서에 일관되게 적용하는 상태 모델 설계
- 확인 처리 시 목록에서 바로 반영하고 되돌리기 토스트를 제공하는 낙관적 갱신 구현
- 경고 상세에서 원인 센서의 최근 24시간 값을 작은 차트로 함께 표시하는 구조 설계
경고 발생부터 확인 처리까지의 상태 전이를 하나의 상태 머신으로 정의해 목록·상세·대시보드 배지가 항상 같은 상태를 보이도록 구현합니다.


피드백 남기기
농장주가 화면 사용 중 불편한 점이나 제안을 분류와 함께 남기고 접수 내역을 확인합니다. 분류 선택, 입력 검사, 접수 완료 상태, 내 피드백 목록의 처리 단계 표시 구조를 설계합니다.
- 제출 시점에 검사하고 틀린 칸 아래에 고치는 방법을 한 줄로 안내하는 폼 검증 구현
- 접수·검토·반영 3단계 처리 상태를 내 피드백 목록에 같은 알약으로 표시
- 스크린샷 첨부 미리보기와 첨부 용량 검사를 Multer 업로드 API와 연결해 설계
피드백 접수부터 처리 단계 표시까지 하나의 API 모델로 연결해, 작성 화면과 내역 화면이 같은 상태값을 읽도록 구현합니다.


프로젝트 진행 단계
현행 화면 분석과 디자인 토큰 정리 · 2026.11
기존 앱 화면 목록 분석, 색상·글꼴·버튼·간격 토큰 정의, 화면 우선순위 5개 군 확정
핵심 5개 군 화면 설계 · 2026.11
메인 대시보드·데이터 기록·설정·알림·피드백 화면 구조와 상태별 화면 설계
컴포넌트 분리와 반응형 구현 · 2026.11
Flutter 위젯 단위로 대응되는 컴포넌트 구현, 390px부터 1440px까지 반응형 확인
기존 코드 반영과 회귀 점검 · 2026.11
확정 디자인을 위젯·테마에 반영, 기존 기능 동작 확인 목록 작성과 화면별 점검
개발 결과
기술적 주안점
- 센서 값의 갱신 시각과 상태 등급을 하나의 데이터 모델로 묶어, 대시보드·기록·알림 화면이 같은 값을 읽는 구조를 구현합니다
- 기간을 바꿔도 차트 점 개수가 일정하도록 서버 집계 단위를 자동 선택하는 쿼리 구조를 설계합니다
- 경고 발생부터 확인 처리까지의 상태 전이를 하나의 상태 머신으로 정의해 목록·상세·대시보드 배지가 항상 같은 상태를 보이도록 구현합니다