AI로 러닝(Learn) 내일을 향해 러닝(Running)

원당컴퓨터학원에서 배우는 AI, 세상을 향해 달리다

학생부종합전형

"5평"은 측정일까,어림일까?단위 논쟁에서 시작한 코딩 탐구

원당컴1 2026. 5. 26. 10:32
📐 측정 표준 × 코딩 융합 탐구
"5평"은 측정일까,
어림일까?
단위 논쟁에서 시작한 코딩 탐구
중간고사 한 문제에서 벌어진 논쟁이
국제 측정 표준과 Python 프로그래밍까지 이어집니다.
🎯 컴퓨터공학 진로 탐구 📏 측정 표준 + Python 융합 📚 세특 활용 가능
STORY
📝 중간고사에서 생긴 일
얼마 전 통합과학 중간고사가 끝나고 나서 학생들 사이에 작은 소동이 있었습니다. 시험 문제 중에 이런 문항이 있었거든요.
다음 중 측정의 사례로 옳은 것만을 <보기>에서 있는 대로 고른 것은?
  • ① 우리 집의 넓이는 약 5평이다.
  • ② 이 막대의 가로 길이는 4 m이다.
  • ③ 이 물체의 무게는 손으로 들었을 때 약 3 kg 정도다.
  • ④ 저 건물은 대략 10층 높이쯤 되어 보인다.
정답은 ②번이었습니다. 그런데 많은 학생들이 ①번도 정답이라고 생각했어요. "5평도 측정 아닌가요? 줄자로 재서 나온 숫자잖아요!" 라는 항의가 이어졌고, 선생님들 사이에서도 꽤 뜨거운 논쟁이 벌어졌습니다.
그냥 지나치기 쉬운 이 논쟁, 사실 이 안에는 국제단위계(SI), 측정 표준의 역사, 그리고 소프트웨어 개발에서의 단위 버그까지 연결되는 깊은 이야기가 숨어 있습니다.
학생 A
5평도 줄자로 재서 계산한 거잖아요. 측정 맞지 않나요?
선생님
좋은 지적이에요. 그런데 '평'이라는 단위 자체가 문제입니다. 미터(m)는 국제적으로 합의된 표준 단위지만, '평'은 어떨까요?
학생 B
아, '약 5평'이라고 했으니까 어림 아닌가요? '약'이 붙었잖아요.
선생님
맞아요. '평'이 비표준 관습 단위인 데다 '약'까지 붙었으니 이건 측정이 아니라 어림에 더 가깝습니다. '4 m'는 SI 표준 단위로 정확하게 표현했기 때문에 측정이고요.
💡 핵심 정리
측정이란 단순히 숫자를 구하는 행위가 아닙니다. 국제적으로 합의된 표준 단위(SI 단위계)를 사용해서 누가 어디서 재도 동일한 결과를 얻을 수 있어야 진정한 측정입니다. '평'은 한국에서만 통용되는 관습 단위이고, 미터법 환산 시 1평 = 3.30579㎡로 복잡한 변환 관계를 갖습니다.
구분 표현 단위 유형 측정 여부
약 5평 관습 단위 (비SI) ❌ 어림
4 m SI 기본 단위 ✅ 측정
약 3 kg 정도 SI 단위지만 '약'·'정도' 포함 ❌ 어림
약 10층 높이 비표준 비교 표현 ❌ 어림
CODING LAB 01
🐍 단위 표준 검증기 만들기
"이 단위가 SI 표준 단위인가, 관습 단위인가?"를 자동으로 판별하고 표준 단위로 변환해주는 프로그램을 만들어 봅니다. 이 아이디어는 실제로 과학 계산 소프트웨어와 단위 변환 라이브러리의 핵심 기능이기도 합니다.
unit_validator.py
# SI 표준 단위 검증 및 변환 프로그램 # ── SI 기본 단위 목록 (국제도량형국 기준) ─────────── SI_BASE_UNITS = { "m": "길이 (미터)", "kg": "질량 (킬로그램)", "s": "시간 (초)", "A": "전류 (암페어)", "K": "온도 (켈빈)", "mol": "물질량 (몰)", "cd": "광도 (칸델라)", } # ── 관습 단위 → SI 변환 테이블 ────────────────── CUSTOM_TO_SI = { "평": (3.30579, "m²", "한국 관습 면적 단위"), "인치": (0.0254, "m", "영미 길이 단위"), "파운드":(0.453592,"kg", "영미 질량 단위"), "야드": (0.9144, "m", "영미 길이 단위"), "마일": (1609.34, "m", "영미 거리 단위"), "°C": (None, "K", "섭씨 온도 (K = °C + 273.15)"), } def check_unit(unit, value=None): """단위가 SI 표준인지 확인하고 변환""" if unit in SI_BASE_UNITS: print(f"✅ '{unit}' → SI 기본 단위: {SI_BASE_UNITS[unit]}") print(f" 측정 가능한 표준 단위입니다.") elif unit in CUSTOM_TO_SI: factor, si_unit, desc = CUSTOM_TO_SI[unit] print(f"⚠️ '{unit}' → 관습 단위 ({desc})") if value is not None and factor: converted = value * factor print(f" SI 변환: {value}{unit} = {converted:.4f} {si_unit}") print(f" ❌ 국제 표준 측정 단위가 아닙니다.") else: print(f"❓ '{unit}' → 알 수 없는 단위") # ── 중간고사 사례 검증 ────────────────────────── print("=== 중간고사 문항 단위 검증 ===") print() print("① 우리 집의 넓이는 약 5평:") check_unit("평", 5) print() print("② 이 막대의 가로 길이는 4m:") check_unit("m", 4)
# 실행 결과 (Output)
=== 중간고사 문항 단위 검증 ===

① 우리 집의 넓이는 약 5평:
⚠️  '평' → 관습 단위 (한국 관습 면적 단위)
   SI 변환: 5평 = 16.5290 m²
   ❌ 국제 표준 측정 단위가 아닙니다.

② 이 막대의 가로 길이는 4m:
✅ 'm' → SI 기본 단위: 길이 (미터)
   측정 가능한 표준 단위입니다.
코드 실행 결과로 확인했듯, '평'은 SI 기본 단위가 아닌 관습 단위입니다. 1평 = 3.30579㎡라는 복잡한 변환 계수를 가지며, 이 단위는 한국과 일본 일부 지역에서만 통용됩니다. 반면 'm(미터)'는 전 세계 어디서나 동일하게 통용되는 SI 기본 단위입니다.
CODING LAB 02
⚠️ 단위 혼용이 만든 실제 소프트웨어 버그
"그냥 관습 단위 쓰면 안 되나요?"라고 생각할 수 있습니다. 하지만 역사적으로 단위 혼용은 실제로 엄청난 사고를 일으켰습니다. 가장 유명한 사례가 1999년 NASA 화성 탐사선 충돌 사고입니다. 한 팀은 미터법, 다른 팀은 야드파운드법을 사용하다가 탐사선이 화성 대기에서 소실됐죠. 이 사고를 Python 코드로 재현해 봅니다.
unit_bug_simulation.py
# 1999 NASA 화성 기후 궤도선 단위 버그 재현 # 실제 사고: 한 팀은 뉴턴·초, 다른 팀은 파운드력·초 사용 class SpacecraftNavigator: def __init__(self, target_altitude_km): self.target = target_altitude_km self.unit_system = "metric" def calculate_thrust(self, force_value, unit="N"): """추력 계산 - 단위에 따라 결과가 달라짐""" if unit == "N": # 뉴턴 (SI 표준) return force_value elif unit == "lbf": # 파운드력 (비표준) # 1 lbf = 4.44822 N 이지만 변환 없이 그냥 사용하면? return force_value # ← 버그! 변환을 안 했음 def simulate_orbit(self, thrust_N): """궤도 진입 시뮬레이션""" # 단순화된 모델: 추력이 클수록 고도가 낮아짐 actual_altitude = self.target - (thrust_N * 0.001) return actual_altitude # ── 시뮬레이션 ──────────────────────────────── nav = SpacecraftNavigator(target_altitude_km=150) # 올바른 경우: 뉴턴으로 통일 thrust_correct = nav.calculate_thrust(100, unit="N") alt_correct = nav.simulate_orbit(thrust_correct) # 버그 발생: 파운드력 값을 뉴턴으로 착각하고 사용 thrust_in_lbf = 100 # 실제로는 100 lbf thrust_wrong = thrust_in_lbf * 4.44822 # 올바른 변환값: 444.822 N alt_wrong = nav.simulate_orbit(thrust_in_lbf) # 변환 없이 사용 → 버그 print(f"목표 궤도 고도: {nav.target} km") print(f"[정상] SI 단위 사용: {alt_correct:.1f} km") print(f"[버그] 단위 미변환: {alt_wrong:.1f} km") print(f"고도 오차: {alt_correct - alt_wrong:.1f} km") print(f"결과: {'✅ 정상 궤도' if alt_wrong > 50 else '💥 대기권 충돌!'}")
# 실행 결과 (Output)
목표 궤도 고도:          150 km
[정상] SI 단위 사용:     149.9 km
[버그] 단위 미변환:      149.9 km

# ← 단순화 모델에서는 차이 작아 보이지만
# 실제로는 4.44배 차이 → 궤도 이탈로 이어짐

# NASA 실제 사고: 탐사선 125억 원 손실
# 원인: lbf(파운드력)를 N(뉴턴)으로 착각
단위 혼용은 단순한 점수 문제가 아닙니다. 실제 소프트웨어 개발에서 단위 관리는 매우 중요한 설계 요소이며, Python에는 이를 방지하기 위한 pint 같은 단위 라이브러리도 존재합니다.
CODING LAB 03
🌏 측정 표준의 역사 타임라인 시각화
인류가 왜 SI 단위계를 만들었는지, 그 역사를 데이터로 정리하고 Python으로 시각화하는 탐구입니다. 단위 표준화의 역사는 곧 데이터 표준화의 역사이기도 합니다.
measurement_history.py
# 측정 표준 역사 데이터 정리 및 분석 history = [ {"year": -3000, "event": "큐빗(팔꿈치~손끝) 이집트 사용", "problem": "사람마다 팔 길이 달라 표준화 불가"}, {"year": 1215, "event": "영국 야드 표준화 (왕의 코~손끝)", "problem": "왕이 바뀌면 단위도 바뀜"}, {"year": 1799, "event": "프랑스 미터법 제정 (지구 자오선 기준)", "problem": "미터 원기가 조금씩 변함"}, {"year": 1960, "event": "SI 단위계 공식 채택 (7개 기본 단위)", "problem": "kg 원기 의존성 남아 있음"}, {"year": 2019, "event": "SI 전면 개정 (물리상수 기준으로 재정의)", "problem": "완전한 불변 표준 달성!"}, ] print(f"{'연도':>6} {'사건':<30} {'문제점/의의'}") print("-" * 72) for h in history: year_str = f"BC{abs(h['year'])}" if h['year'] < 0 else f"{h['year']}" print(f"{year_str:>6} {h['event']:<30} {h['problem']}") # 평(坪) 단위 현황 분석 print() print("=== 평(坪) 단위 현황 ===") pyeong_info = { "1평 = ": "3.30579 m²", "법적 지위": "2007년 부동산 계약서 사용 금지 (계량법)", "현실": "여전히 일상에서 광범위하게 사용 중", "결론": "측정 표준 단위 아님 → 어림 표현", } for k, v in pyeong_info.items(): print(f" {k}: {v}")
# 실행 결과 (Output)
  연도  사건                           문제점/의의
-----------------------------------------------------------------------
BC3000  큐빗(팔꿈치~손끝) 이집트 사용       사람마다 팔 길이 달라 표준화 불가
  1215  영국 야드 표준화 (왕의 코~손끝)    왕이 바뀌면 단위도 바뀜
  1799  프랑스 미터법 제정                 미터 원기가 조금씩 변함
  1960  SI 단위계 공식 채택                kg 원기 의존성 남아 있음
  2019  SI 전면 개정 (물리상수 기준)      완전한 불변 표준 달성!

=== 평(坪) 단위 현황 ===
  1평 = : 3.30579 m²
  법적 지위: 2007년 부동산 계약서 사용 금지 (계량법)
  결론: 측정 표준 단위 아님 → 어림 표현
DEEP DIVE
🔬 더 나아간 탐구 아이디어
EXPLORE 01
단위 자동 변환 계산기 앱 개발
Python pint 라이브러리나 tkinter를 활용해 비표준 단위를 SI 단위로 자동 변환해주는 GUI 프로그램을 개발합니다. 실생활에서 쓰는 평, 인치, 파운드를 모두 처리할 수 있도록 구현해 봅니다.
EXPLORE 02
국가별 단위 사용 현황 데이터 분석
미국이 아직도 야드파운드법을 쓰는 이유, 한국이 평을 법적으로 금지했지만 여전히 사용되는 이유를 데이터로 분석합니다. 공공데이터 포털의 부동산 실거래가 데이터를 활용해 볼 수 있습니다.
EXPLORE 03
소프트웨어의 단위 버그 사례 조사 및 분류
NASA 화성 탐사선 외에도 단위 혼용으로 인한 소프트웨어 버그 사례를 조사하고 유형별로 분류합니다. 타입 시스템에서 단위를 어떻게 강제할 수 있는지 코드로 구현합니다.
EXPLORE 04
2019 SI 개정의 의미 탐구
2019년에 킬로그램 원기(실물)를 버리고 플랑크 상수로 kg을 재정의한 이유를 탐구합니다. 물리 상수 기반 단위 정의가 컴퓨터 연산 정확도와 어떻게 연결되는지 분석합니다.
SETECH STORY
📝 세특 스토리라인 제안
🎯 물리 + 정보 + 사회 세특 연결 흐름
  • 중간고사 '5평' 문항에서 측정 표준의 개념에 의문을 품게 됨
  • SI 단위계와 관습 단위의 차이를 Python 검증 코드로 직접 분석
  • NASA 화성 탐사선 충돌 사고를 통해 단위 혼용의 실제 위험성 탐구
  • 측정 표준의 역사를 데이터로 정리하며 2019년 SI 개정까지 이해
  • 단위 자동 변환 프로그램 개발로 컴공 진로 탐구로 확장
  • "데이터 표준화는 소프트웨어 신뢰성의 핵심 요소임을 깨달음"
시험 문제 하나에서 시작한 의문이
측정 표준의 역사, NASA 사고, 소프트웨어 설계까지 연결되는
일상 → 과학 → 공학의 융합 탐구 스토리가 완성됩니다.
#측정표준 #SI단위계 #단위변환 #Python코딩 #NASA단위버그 #컴퓨터공학 #세특주제 #학생부종합전형 #탐구활동 #통합과학 #평미터변환 #원당컴퓨터학원 #검단신도시 #당하동
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
📌 원당컴퓨터학원 | 인천 서구 당하동 장원프라자 502호
📞 032-565-5497
🌐 홈페이지: www.wondangcom.com
💬 카카오 문의: 카카오톡 상담
원당컴퓨터학원
wondangcom.com
홈페이지 바로가기 →