Hyunjun Kim
← 전체 작업

Case 04 / 09

AttenNFC

기획자의 설계를 AI 구현으로 — NFC·GPS 출퇴근과 급여 자동정산을 묶은 태국 소규모 사업장용 앱

개발 중아이디어→출시약 9일

2026.09 – 현재 (개발 중) / 1인 (AI를 팀으로) / iOS · Android · Web

문제
태국 소규모 사업장은 출퇴근을 종이로 관리 — 대리 출근·시간 조작·느린 급여 정산.
내 역할
기획 · 아키텍처·보안 기준 설계 · AI 지휘로 구현
스택
Flutter · Dart · Riverpod (코드젠) · Supabase · NFC (NTAG424 DNA)

결과

아이디어 → 핵심 로직 동작 (개발 중)
약 9일
아이디어 → 핵심 로직 동작 (개발 중)
출퇴근 인증 보안 레이어
4중
출퇴근 인증 보안 레이어
급여 수식 변수 (하드코딩 없이 설정)
9종
급여 수식 변수 (하드코딩 없이 설정)
이상징후 탐지 룰
5종
이상징후 탐지 룰

⚡ 아이디어→출시

약 9일

  1. 2026-09-08

    첫 지시

  2. 9일 뒤

    2026-09-17

    첫 동작 · 최신

아이디어→핵심 로직 동작 약 9일(실작업 약 5~7일). 현재 개발 중, 미배포

01

아이디어 / 문제

첫 지시: "NFC 태그와 서버를 조합한 근태 앱을, 화면·기능 설계부터 디테일하게 끝내자. 플러터면 iOS·안드로이드 둘 다 되지?"

태국의 작은 덴탈클리닉·카페·레스토랑은 출퇴근을 수기로 관리하다 보니 대리 출근·시간 조작이 생기고 급여 정산에도 손이 많이 갑니다. NFC 태그와 위치 확인으로 출퇴근을 정직하게 기록하고, 그 기록으로 급여까지 자동 계산해 주는 앱을 목표로 삼았습니다.

02

내가 정한 기획·기준

이 프로젝트는 기준(설계) 자체가 핵심입니다. 코드를 짜기 전에 다음을 직접 설계했습니다.

  • 4중 보안 레이어: NFC 동적 토큰(NTAG424 DNA) + Wi-Fi 신호(보조) + 기기 바인딩 + 루팅/탈옥 탐지
  • 이상징후 5종 룰: 심각한 위반(기기 불일치 등)만 즉시 거부, 나머지는 기록 후 관리자 확인(Manual Review)
  • 급여 수식을 코드가 아닌 설정값으로: 관리자가 화면에서 수식을 설정하면 안전한 파서가 계산. 변수는 기본급·초과·야간·지각 등 9종으로 고정
  • 개인정보(PDPA): GPS·기기ID는 휘발성 인증용으로만, 영구 저장 금지
  • 멀티테넌트(여러 회사를 한 시스템에서) 구조

Fig. attennfc-02

급여를 코드가 아닌 설정값으로 — Formula 엔진

관리자수식 설정 (GUI)업종 템플릿에서 시작

변수 9종 (고정)

기본급초과야간지각…
계산안전한 수식 파서하드코딩 없음
결과급여 + 실시간 예상 급여
관리자가 화면에서 수식을 설정하면 안전한 파서가 계산합니다. 변수는 9종으로 고정, 업종 템플릿과 실시간 예상 급여 제공. (설정 화면은 개발 중이라 구조도로 대신합니다.)

03

AI 지휘 과정

Fig. attennfc-direction

AI 지휘 과정

  1. 01 처음 시킨 것

    위 기준을 바탕으로 DB 스키마, 상태관리(Provider), 급여 엔진을 만들도록 지시했습니다.

  2. 02 확인한 것

    생성된 코드를 점검하니 문제가 반복됐습니다 — NFC 라이브러리 API 불일치, company_id 누락, 폴더 중복, 급여 변수가 9종이 아닌 5종만 구현, GPS 좌표 하드코딩.

  3. 03 수정 지시

    SQL 스키마·RLS·설계 결정은 유지하고 문제 코드는 처음부터 재작성하도록 지시했습니다. 재작성 후 flutter analyze에서 "No issues found"를 직접 확인했습니다.

실제 지시 (발췌)

  • 디자인을 전 화면 다 뽑은 뒤에 개발을 시작하자 — 병행하면 꼬여.
  • 완전히 막기보다, 이상하면 관리자가 검토하게 하자.

Fig. attennfc-03

AI 결과를 기준과 대조해 바로잡기

Before

  • 급여 변수 9종 중 5종만 구현
  • NFC 라이브러리 API 불일치
  • GPS 좌표 하드코딩 · 폴더 중복

내 지시 (요지)

설계·데이터 모델은 유지하고, 문제 코드는 처음부터 다시 작성해

After

  • ✓ 급여 변수 9종 모두 반영
  • ✓ flutter analyze — No issues found
AttenNFC — attennfc 04 mobile dark

04

막힌 순간과 해결

  • iOS Wi-Fi 신호 검증 한계: iOS는 Wi-Fi 접근이 제한돼 보조 인증이 실패할 수 있습니다. 이 경우 GPS 범위 검증만으로 넘기되 "Wi-Fi 검증 건너뜀"을 로그로 남기도록 지시해 추적 가능하게 했습니다.
  • 오프라인 시간 조작: 기기 시계를 바꿔 시간을 속이는 경우를 대비해, 마지막 서버 시각과 경과 시간을 합산해 참 시간을 추정하고 오차가 크면 관리자 확인으로 넘기는 로직을 지시했습니다.

Fig. attennfc-05

이상징후 5종 룰 — 막기보다 분기

입력출퇴근 시도
검사이상징후 5종 룰
정상기록
이상기록 + 관리자 확인Manual Review
심각즉시 거부예: 기기 불일치
“완전히 막기보다, 이상하면 관리자가 검토하게 하자.” 심각한 위반만 즉시 거부하고 나머지는 기록 후 관리자 확인.

Fig. attennfc-06

오프라인 시각 검증 (TrueTime)

A마지막 서버 시각
B기기 경과 시간시계 변경과 무관한 값
A + B추정 참 시간
오차 작음정상 기록
오차 큼관리자 확인
기기 시계를 바꿔 시간을 속이는 경우를 대비해, 마지막 서버 시각과 경과 시간으로 참 시간을 추정합니다.

Case 01

생성된 코드가 기준 미달

  1. 증상

    생성된 코드가 기준 미달 — 급여 변수 9종 중 5종만, NFC 라이브러리 API 불일치, GPS 좌표 하드코딩, 폴더 중복.

  2. 내 설명

    내가 세운 기준(변수 9종·동적 토큰 API·좌표 설정값)을 조목조목 대조해 어긋난 지점을 지적.
  3. AI 첫 시도

    부분 수정으로는 같은 문제가 반복됨.

  4. 내가 잡은 포인트

    SQL 스키마·RLS·설계는 유지하되 문제 코드는 부분 땜질이 아니라 재작성이 맞다는 판단.

  5. 해결

    처음부터 재작성하도록 지시, 이후 flutter analyze 이슈 0을 직접 확인.

  6. 재발 방지

    AI 결과는 '기준 체크리스트'로 받고, 어긋나면 재작성 기준을 적용.

05

결과 · 수치

  • 4중 보안 레이어와 이상징후 5종 룰 + 관리자 확인 흐름 설계·구현
  • 하드코딩 없는 급여 수식 엔진(변수 9종, 업종 템플릿, 실시간 예상 급여)
  • 인터넷이 끊겨도 시간 조작을 잡는 오프라인 시각 검증
  • 코어 로직 1차 구현 완료(flutter analyze 이슈 0) — 개발 중

06

회고

AI가 만든 코드를 그대로 믿지 않고 기준과 대조해 "다시"를 지시한 경험이, 이 프로젝트에서 가장 중요한 역량이었습니다. 보안·급여처럼 틀리면 안 되는 영역일수록 기준을 문서로 먼저 세우는 게 답이었습니다. 다음 단계는 설계한 화면을 붙여 파일럿 사업장에서 검증하는 것입니다.

더 많은 화면 · 8장

AttenNFC — 온보딩 — Google Stitch 디자인
온보딩 — Google Stitch 디자인
AttenNFC — 업종 템플릿
업종 템플릿
AttenNFC — 급여 수식 엔진
급여 수식 엔진
AttenNFC — 월 급여 정산
월 급여 정산
AttenNFC — 개인별 급여 조정
개인별 급여 조정
AttenNFC — 이상징후 검토
이상징후 검토
AttenNFC — 휴일 캘린더
휴일 캘린더
AttenNFC — 감사 로그
감사 로그

관리자 화면은 Google Stitch(AI 디자인)로 설계했고, Flutter 구현은 진행 중입니다.

(01) Review

Honest Review

개발자가 만들었다면?

강점2
  • 속도 — 7일 만에 스택 확정·백엔드 전환·기반 구축

    첫 주에 Firebase→Supabase 전환과 전체 재작성 1회를 혼자 완료.

  • 문서화 — 같은 단계 팀 기획서보다 깊은 설계

    PDPA 90일 보관, 이상징후 5종, 급여 변수 9종, 플랫폼 한계를 코딩 전에 문서화.

동등3
  • 구조 — 클린 아키텍처 구성

    기능별 data / domain / presentation, 저장소 인터페이스, 의존성 주입.

  • 가독성 — 깔끔

    주석·이름이 명확하고 디버그 출력 0.

  • 성능 — 아직 측정 단계 아님

    실제 부하 전. 기본기(애니메이션 해제, 상수 위젯)는 갖춤.

다음 단계 (보완 중)4
  • 기능 완성도 — 설계 대비 구현 약 10~15%

    설계를 깊게 먼저 했고, 지금은 화면 4개가 목업 데이터로 동작.

    개선 계획 → '로그인 → 출근 1회 왕복(서버 확인 포함)'으로 좁혀 끝까지 연결한 뒤 확장.

  • 보안 — 설계는 됐고 구현 중

    4중 확인과 GPS 최소 저장(PDPA)을 설계했고, 서버 측 확인은 핵심 흐름과 함께 구현 중.

    개선 계획 → 파일럿 전에 승인·검증을 전부 서버로.

  • 테스트·CI — 아직 없음, 원격 저장소 준비 중

    급여 수식은 돈이 걸린 로직인데 테스트가 없음.

    개선 계획 → 급여 수식 테스트부터 → 비공개 원격 저장소와 CI.

  • 현지화·접근성 — 태국어 중심 설계인데 번역 파일 없음

    하드코딩 영어 문구 31개, 화면낭독 라벨 없음.

    개선 계획 → 출시 때 몰아서가 아니라 화면 만들 때마다 번역·라벨 추가.

다음 프로젝트 →

AI 동영상 스트리밍 플랫폼

Cloudflare 엣지 위에 서버 없이 올린 동영상 스트리밍 서비스 — 10개 언어 AI 자동 번역과 암호화폐 구독 결제, AI를 지휘해 혼자 구축

AI 동영상 스트리밍 플랫폼 desktop screenshot
AI 동영상 스트리밍 플랫폼 mobile screenshot
케이스 보기
이력서 PDF