# get_materials API 응답 오류 수정 ## 🚨 문제 상황 - **오류**: TypeError - Object of type 'RealDictRow' is not JSON serializable - **원인**: PostgreSQL Row 객체를 바로 JSON으로 변환 시도 - **위치**: `/api/materials` 엔드포인트 ## 🔍 문제 원인 분석 ### Before (오류 발생) ```python materials = [] for row in cur.fetchall(): materials.append(row) # ← psycopg2.extras.RealDictRow 객체 return jsonify({ 'data': materials # ← JSON 직렬화 불가능! }) 왜 오류가 발생했나? psycopg2.cursor.fetchall() → RealDictRow 객체 반환 Flask.jsonify() → Python dict만 JSON 변환 가능 RealDictRow ≠ dict → TypeError 발생 ✅ 해결 방법 After (정상 작동) pythonmaterials = [] for row in cur.fetchall(): # 명시적으로 딕셔너리 변환 material = { 'id': row[0], 'job_number': row[1], 'item_number': row[2], 'description': row[3], 'category': row[4], 'quantity': row[5], 'unit': row[6], 'created_at': row[7].isoformat() if row[7] else None } materials.append(material) return jsonify({'data': materials}) 🔧 핵심 수정사항 인덱스 접근: row[0], row[1], ... 방식으로 값 추출 명시적 변환: 각 필드를 수동으로 딕셔너리에 매핑 날짜 처리: datetime → isoformat() 변환 추가 📅 수정 정보 날짜: 2024-07-15 프로젝트: TK-MP-Project 파일: backend/app.py 함수: get_materials() 결과: API 응답 정상화 완료