diff --git a/reports/week-1.md b/reports/week-1.md new file mode 100644 index 0000000..222f4a4 --- /dev/null +++ b/reports/week-1.md @@ -0,0 +1,126 @@ +# Week 1 보고서 — Bello + +## 이번 주 한 일 (계획 vs 실제) + +### 1. 팀 구성 및 문제 탐색 +- 계획했던 흐름대로 먼저 팀을 구성했다. +- 이후 각자 일상에서 느끼는 불편함이나 개선 가능한 문제 상황을 공유했다. +- 여러 아이디어 중 현재 사용 중인 출석 앱의 등하교 체크 방식에 주목하게 되었다. + +### 2. 문제 정의 및 아이디어 도출 +- 기존 버튼 기반 출석 방식의 불편함과 한계를 개선할 방법을 고민했다. +- 이를 해결할 수 있는 방식으로 NFC 기반 출석 시스템 아이디어를 떠올렸다. + +### 3. 아이디어 구체화 +- NFC 출석 방식이 실제 구현 가능한지 검토했다. +- 사용자 입장에서 받아들일 만한 방식인지, 기존 출석 앱과 비교했을 때 어떤 장단점이 있는지를 중심으로 기획을 구체화했다. + +### 4. 구현 방식 결정 +- 초기에는 NFC 태그 시 앱 자동 실행 방식, 백그라운드 출석 처리 방식 등을 함께 고려했다. +- 하지만 구현 가능성과 안정성을 고려해, MVP 단계에서는 앱을 실행한 상태에서 NFC 태그를 인식하고 출석 기록을 생성하는 방식으로 범위를 줄였다. 실제 출석 시스템 연동보다는 NFC 태그를 통해 출석 흐름을 만들 수 있는지 검증하는 데 집중하기로 했다. + +### 5. MVP 범위 설정 +- 완성도 높은 출석 서비스를 만드는 것보다, NFC 기반 출석 방식이 실제로 동작 가능한지 빠르게 검증하는 것을 목표로 삼았다. +- 이에 따라 MVP 범위를 다음과 같이 최소화했다. + - NFC 지원 여부 확인 + - NFC 태그 인식 + - 태그 값 읽기 + - 출석 요청 전송 + - 출석 결과 표시 + +### 6. 기술 플랫폼 선정 +- Flutter, React Native, Android Native, Swift 등을 비교했다. +- 이번 프로젝트는 NFC 기능 검증과 최소 기능 구현이 핵심이었기 때문에, Android의 NFC API를 직접 활용할 수 있는 Android Native 를 최종 플랫폼으로 선택했다. + +### 7. 발표 자료 준비 +- 지금까지 정리한 문제 상황, 해결 방안, MVP 범위, 기술 플랫폼 선택 이유, 검증 방법 등을 바탕으로 발표 자료를 제작했다. + +### 결론 +- 전반적으로 팀 구성부터 기획, 발표 준비까지 계획했던 흐름 안에서 안정적으로 진행할 수 있었다. + +--- + +## A. 기획 결과물 + +### 팀 정보 +- 팀 이름: Bello +- 팀장: 하로 +- 멤버: 엠버, 엘리 +- 한 줄 소개: 말랑이 셋 + +### 문제 정의 +- 누가: 우테코 크루원들이 +- 어떤 상황에서: 등/하교를 할 때 +- 어떤 불편을 겪는가: 특정 와이파이에 연결해야만 출석 기능을 사용할 수 있는데, 연결이 원활하지 않거나 오류가 발생하는 경우 UI가 정상적으로 표시되지 않아 출석/하교 버튼을 누르지 못하는 상황이 자주 발생한다. + + +### 솔루션 (한 줄) +- NFC 태그를 장소 확인 수단으로 활용하여 기존 Wi-Fi 기반 출석 방식의 불편함을 줄인다. + + +### 기술/플랫폼 선택 + +| 선택한 것 | 근거 | +|---|---| +| Android Native (Android Studio) | NFC는 단말기의 하드웨어 기능과 직접적으로 연결되는 기능이기 때문에 안정적인 기능 검증이 중요하다고 판단하였다. Flutter, React Native, KMP에서도 NFC 관련 라이브러리를 사용할 수 있지만, 이번 MVP의 목표는 멀티플랫폼 확장보다 NFC 출석 방식의 가능성을 빠르게 확인하는 것이었다. 따라서 팀이 익숙한 Kotlin과 Compose를 활용할 수 있고, Android NFC API를 직접 다룰 수 있는 Android Native를 선택하였다. | +| NFC 기반 출석 방식 | 기존 출석 방식은 앱 실행, 와이파이 연결, 버튼 클릭 등의 과정이 필요해 사용자가 번거로움을 느끼는 문제가 있었다. 이를 개선하기 위해 GPS, RFID, NFC를 비교했고, GPS는 실내 위치 정확도에 한계가 있으며 RFID는 별도 카드나 리더기 관리가 필요할 수 있다고 판단하였다. 반면 NFC는 스마트폰과 저렴한 태그만으로 빠르게 검증할 수 있고, 사용자가 특정 위치에 직접 태그해야 하므로 MVP 단계의 출석 장소 확인 방식으로 적합하다고 판단하였다. | + +### 선택하지 않은 옵션 + +| 후보 | 검토했지만 선택하지 않은 이유 | +|---|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Flutter / React Native | Flutter, React Native, KMP/CMP에서도 NFC 기능을 지원하는 라이브러리는 존재한다. 다만 이번 프로젝트의 목적은 여러 플랫폼을 동시에 지원하는 것이 아니라, NFC 기반 출석 방식이 실제로 편리한지 빠르게 검증하는 것이었다. 멀티플랫폼 구조를 도입하면 플랫폼별 NFC 동작 차이와 테스트 환경을 함께 고려해야 하므로, MVP 단계에서는 구현 범위를 Android로 한정하는 것이 더 적합하다고 판단하였다. | +| Swift(iOS Native) | iOS에서도 NFC 기능을 사용할 수 있지만, NFC 기능을 실제 기기에서 검증하려면 관련 Capability 및 Entitlement 설정이 필요하다. 이 과정에서 Apple Developer Program 계정이 필요하고, iOS의 NFC 동작 방식과 권한 제약도 추가로 고려해야 한다. 따라서 MVP 단계에서는 iOS까지 함께 구현하기보다, 테스트 환경 구성이 비교적 자유로운 Android를 우선 선택하였다. | + +### 사전 조사 +- 예시 이미지를 포함한 설문지 제작 +- 현재 출석 방식에서 느끼는 불편함 조사 +- NFC 기반 출석 방식에 대한 사용자 반응 확인 +- 실제 사용 의향 및 거부감 여부 조사 + +### MVP 범위 + +| 만들 것 | 만들지 않을 것 | +|----------------------------------------------| --- | +| Android 앱 | iOS 앱 | +| 앱을 실행한 상태에서 NFC를 태그하면 출석/하교 기록을 생성하고 결과를 보여주는 기능 | NFC 태그만으로 앱이 자동 실행되고 실제 출석 시스템까지 자동 반영되는 기능 | +| NFC 태그 인식 후 출석 성공/실패 상태를 보여주는 화면 | 앱을 실행하지 않아도 백그라운드에서 출석되는 기능 | +| 최소한의 MVP 검증용 프로토타입 | 대리 출석 방지, 계정 보안 강화 등 고도화 기능 | +| 사용자가 해당 방식을 실제로 사용할 의향이 있는지 확인하기 위한 프로토타입 배포 | 모든 사용자를 대상으로 한 정식 배포 | + +### 검증 방법 초안 +- 성공/실패를 판단할 기준: + - 사용자가 기존 출석 방식보다 NFC 방식이 더 편리하다고 느끼는가 + - “출석 버튼을 누르는 것을 자주 까먹는다”는 문제가 줄어들 것 같다고 응답하는가 + - NFC 기반 방식이라면 실제 사용할 의향이 있다고 응답하는가 + - 앱 실행 → NFC 태그 → 출석 완료 흐름을 사용자가 직관적으로 이해하는가 + +- 어떻게 측정할 것인가: + - 예시 화면 및 프로토타입 이미지를 포함한 설문조사 진행 + - 현재 출석 방식의 불편 요소(와이파이 연결, 버튼 클릭, UI 오류 등)에 대한 응답 수집 + - NFC 방식 사용 의향(긍정/부정) 조사 + - 기존 방식 대비 편의성 체감 여부를 5점 척도 또는 객관식으로 측정 + - 자유 의견을 통해 추가 불편 사항 및 우려 사항 수집 + +### 발표 자료 링크 +(5/29 발표 예정) +- https://www.canva.com/design/DAHK7E_XAak/HPWgX51EZZYIHIf39BJi4A/edit + +--- + +## B. 회고 + +### 가장 어려웠던 의사결정 + +- MVP 기능 구현 범위를 설정하는 과정이 어려웠다. 가장 단순한 방향은 “앱을 실행하지 않아도 NFC만으로 출석이 가능하도록 만드는 것”이라고 생각했지만, 실제로는 현재 문제를 최소한으로 해결할 수 있는 수준까지 기능 범위를 조정하는 과정이 쉽지 않았다. + +- 예를 들어 `앱을 실행하지 않아도 NFC만으로 출석이 가능한 방식`, `앱을 실행한 뒤 NFC를 통해 출석하는 방식` 등 여러 방향을 비교했고, 최종적으로는 “앱을 실행하지 않아도 가능한 방식”은 MVP 범위를 넘어서는 추가 기능에 가깝다고 판단하였다. + +- 문제 상황과 그 원인을 구체적으로 좁혀가는 과정이 어려웠다. + 단순히 “사람들이 왜 앱 사용을 불편해하는가?”라는 질문에서 시작했지만 `버튼을 누르는 것을 자주 까먹어서`, `와이파이 연결 과정이 번거로워서`, `와이파이에 연결했음에도 UI가 정상적으로 표시되지 않아서` 등 다양한 원인이 존재했다. 이 중 실제로 가장 큰 영향을 주는 핵심 원인이 무엇인지 우선순위를 정하고 정의하는 과정이 가장 어려웠다. + +### 합의되지 않은 부분 (있다면) +- + +### 가장 의심스러운 가정 1가지 +- 현재 출석 방식의 불편함은 특정 Wi-Fi 연결 확인, 앱 UI 표시, 출석/하교 버튼 클릭으로 이어지는 과정에서 발생한다고 가정하였다. 이 과정을 NFC 태그 중심으로 단순화하면 사용자가 더 직관적이고 편리하게 출석할 수 있을 것이라고 보았다.