피드로 돌아가기
TryParse Looks Like a Small Utility Method — Until You Realize It Prevents Entire Classes of Production Failures
Dev.toDev.to
Backend

TryParse 기반 Defensive Programming을 통한 Runtime Crash 원천 차단

TryParse Looks Like a Small Utility Method — Until You Realize It Prevents Entire Classes of Production Failures

Cristian Sifuentes2026년 6월 3일7beginner

Context

사용자 입력값에 대한 맹신으로 인해 Parse() 호출 시 System.FormatException이 발생하며 시스템이 비정상 종료되는 리스크 존재. Exception 기반의 에러 핸들링은 Stack Trace 캡처 및 메모리 할당으로 인해 런타임 오버헤드를 유발하는 구조적 한계 보유.

Technical Solution

  • Parse()의 성공 가정을 제거하고 Boolean 반환 기반의 TryParse()를 도입한 Runtime Safety 확보
  • out 키워드를 활용하여 변환 성공 여부와 결과값을 동시에 처리하는 효율적 데이터 파이프라인 구축
  • 금융 데이터의 정밀도 보장을 위해 Binary Floating-point의 오차를 제거한 decimal 타입 및 M suffix 명시적 사용
  • Exception Handling의 비용을 회피하기 위해 Validation-First 전략을 통한 제어 흐름 최적화
  • External Input에 대한 Zero Trust 원칙을 적용하여 데이터 진입점에서 유효성을 검증하는 Defensive Programming 구현

- 외부 입력 데이터 처리 시 try-catch 대신 TryParse 패턴 적용 여부 검토 - 금융 및 정밀 계산 로직에서 double 대신 decimal 타입 사용 및 리터럴 접미사 확인 - Exception을 비즈니스 로직의 흐름 제어 수단으로 사용하는 패턴 제거 - 모든 API, DB, 파일 입력값에 대해 '검증 후 실행(Validate First, Execute Second)' 원칙 준수

원문 읽기