센서에서 받아온 25.5라는 숫자는 그 자체로 정보가 될 수 없습니다. 이것이 현재 온도인지, 습도인지, 혹은 시스템 에러 코드인지 알려주는 '맥락'이 필요합니다. 컴퓨터가 이해하는 원시 데이터(Raw Data)를 사람이 이해하고 활용할 수 있는 구조화된 정보로 변환하는 과정을 데이터 파싱이라고 합니다.

1. 파싱이 왜 중요한가?

우리가 수집한 데이터를 나중에 데이터베이스에 저장하거나 웹 대시보드에 뿌려줄 때, 뒤죽박죽인 데이터는 분석을 불가능하게 만듭니다. 이를 위해 JSON(JavaScript Object Notation) 같은 규격화된 형식을 사용하는 것이 좋습니다.

2. 실습: 데이터를 JSON으로 구조화하기

단순히 print문으로 값을 찍는 대신, 딕셔너리(Dictionary) 형태를 거쳐 JSON으로 변환하면 데이터의 확장성이 비약적으로 상승합니다.

Python
import json
import datetime

# 센서 데이터 예시
humidity, temperature = 60.5, 25.5

# 데이터 파싱: 딕셔너리 형태로 구조화
sensor_data = {
    "timestamp": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
    "sensor_type": "DHT11",
    "values": {
        "temperature": temperature,
        "humidity": humidity
    },
    "unit": "metric"
}

# JSON 문자열로 변환 (데이터 송수신에 최적화)
json_data = json.dumps(sensor_data, indent=4)
print(json_data)

3. 파싱의 핵심 전략: 타임스탬프

데이터를 파싱할 때 절대 빼먹지 말아야 할 것이 바로 '시간(Timestamp)'입니다. 25도라는 온도가 '언제' 측정되었는지 기록되지 않으면, 데이터는 의미를 잃습니다. 스마트 팜 시스템에서는 1분 단위의 변화가 작물의 생육 상태를 결정하기 때문에, 데이터 생성 시점의 타임스탬프를 함께 패키징하는 습관을 들이세요.

4. 주의사항: 예외 처리 (Exception Handling)

데이터 파싱 과정에서 센서가 데이터를 보내지 않거나, 비정상적인 값(예: 온도 0도, 습도 0%)을 보내는 경우가 생깁니다. 이를 그대로 저장하면 나중에 분석할 때 오류가 발생합니다.

  • 데이터 검증(Validation): 파싱 전, 값이 정상 범위 내에 있는지 확인하는 if문을 반드시 넣으세요.

  • 로깅(Logging): 데이터 읽기에 실패했을 때 단순히 무시하지 말고, 오류 발생 시간과 상태를 별도의 로그 파일로 기록해두는 것이 전문가다운 운영 방식입니다.

[핵심 요약]

  • 파싱은 원시 데이터를 구조화하여 '정보'로 바꾸는 과정이며, JSON 형식을 권장한다.

  • 타임스탬프를 포함하는 것은 데이터 분석을 위한 필수적인 기초 작업이다.

  • 파싱 과정에서 데이터 유효성 검사를 거쳐야 데이터베이스의 무결성을 유지할 수 있다.