수면 분석을 위한 생체 데이터 생성기: 테스트 데이터지만 진짜처럼

수면 분석을 위한 생체 데이터 생성기: 테스트 데이터지만 진짜처럼

소개

데이터는 통증 - 데이터는 통증입니다 - 데이터는 통증 - 데이터는 통증 - 데이터는 통증 - 데이터는 통증입니다 - -

어르신들의 수면 패턴을 분석하려면 무엇보다 방대한 양의 생체 데이터가 필요했습니다. 하지만 현실은 냉혹했죠. 하나하나 수작업으로 데이터를 만드는 건 시간이 너무 오래 걸리고, 그 자체로 오류가 많았습니다.

그래서 결심했어요. "자동화된 생체 데이터 생성기, 내가 만든다!"

그렇게 이 프로젝트는 시작됐습니다. 목표는 명확했습니다 — 심박수, 호흡수, 맥박 등 수면 분석에 필요한 데이터를 실제처럼 보이게, 대량으로 만들어내는 것!

진행 방법

🛠 사용한 도구와 기술

  • Python 3.x

  • SQLAlchemy (비동기 ORM)

  • asyncio (비동기 프로그래밍)

  • argparse (CLI 인터페이스)

  • dateutil (날짜 처리)

  • MySQL / MariaDB (DB 저장)

  • cursor

⚙️ 주요 기능 및 실행 방법

스크립트는 아래와 같은 방식으로 작동합니다. 기존 데이터가 있다면, 그 이후부터 데이터를 생성하고, 특정 날짜 범위도 지정할 수 있게 만들었어요.

실행 방법 및 예시:

# 가상환경 활성화 및 스크립트 실행 위치로 이동
cd path/to/프로젝트 폴더 이름
source .venv/bin/activate

# 스크립트 실행
PYTHONPATH=$PYTHONPATH:$(pwd)/app python app/파일경로/test_dailydate.py [옵션]

사용 예시:

# 1. 기본 실행 (마지막 데이터 이후 ~ 오늘)
python app/파일경로/test_dailydate.py

# 2. 특정 날짜까지 생성
python app/파일경로test_dailydate.py --end-date 2024-03-20

# 3. 특정 기간 데이터 생성
python app/파일경로/test_dailydate.py --start-date 2024-03-01 --end-date 2024-03-20

# 4. 오늘 하루 데이터만 생성
python app/파일경로/test_dailydate.py --start-date $(date +%Y-%m-%d) --end-date $(date +%Y-%m-%d)

💡 개발하면서 느낀 점

  • 현실적인 테스트 데이터를 만들기 위해선 시간대별 생체 신호 특성을 파악하는 것이 핵심이었어요. 단순히 랜덤으로 숫자를 넣는 게 아니라, 실제 수면 사이클과 유사하게 값을 구성해야 했죠.

  • 대량의 데이터를 효율적으로 처리하기 위해 배치 처리를 적용했고, 성능 병목은 asyncio를 활용한 비동기 DB 작업으로 해소했습니다.

결과와 배운 점

여러 다른 프로그램을 보여주는 컴퓨터 화면

데이터 생성 로그

Adobe Adobe Adobe Adobe Adobe Adobe Adobe

만들어진 테스트 데이터 테이블 (14일치)

  • 기술적으로는 성능이 월등히 개선된 자동화 도구를 만들었고,

  • 팀 내에서는 모듈 사용법을 문서화해서 공유함으로써 협업 효율도 높일 수 있었어요.

가장 인상 깊었던 순간은, 단순히 좋은 코드를 만드는 것보다 팀이 그것을 쉽게 쓸 수 있도록 설명하는 일이 훨씬 더 중요하다는 걸 깨달은 점이었습니다. 도구는 함께 쓸 때 더 강력해지니까요. 💪

남기고 싶은 메시지

  • 테스트 데이터라도 현실성 있게 만드는 것이 중요합니다. 그래야 실제 데이터로 전환할 때도 문제 없이 작동해요.

  • 자동화 도구는 만들고 끝이 아니라, 사용자 편의성(CLI 옵션, 로그 출력 등)을 고려해서 만들어야 모두가 잘 쓸 수 있습니다.

  • 비동기 프로그래밍과 배치 처리 같은 기법들은 대량 데이터 처리에 있어 꼭 배워두면 좋습니다!


이 사례가 여러분의 데이터 자동화 여정에 도움이 되기를 바랍니다 😊

호박을 가진 남자의 만화와 그 위에 고양이
2
1개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만