핵심 인사이트 (3줄 요약)

> 1. **본질**: 부동소수점 (Floating Point)은 아주 큰 수와 아주 작은 수를 같은 형식으로 다루기 위해 가수와 지수를 분리한 근사 표현이다.
> 2. **가치**: IEEE 754 (Institute of Electrical and Electronics Engineers 754)는 표현 범위, 반올림, 특수값을 표준화해 서로 다른 시스템 간 호환성을 높였다.
> 3. **판단 포인트**: 실수처럼 보인다고 정확한 실수가 아니므로, 금액·비교·누적 계산에서는 오차 한계를 전제로 설계해야 한다.

---

## Ⅰ. 개요 및 필요성

고정 소수점이나 정수는 작은 값에는 강하지만, 범위가 넓어지면 자릿수가 부족하다. 부동소수점 (Floating Point)은 숫자를 `(-1)^sign × 1.fraction × 2^(exponent-bias)` 형태로 저장해, 범위와 정밀도를 절충한다.

그래서 과학 계산, 그래픽, 기계학습처럼 값의 크기 변화가 큰 영역에서 필수적이다. 반대로 돈 계산처럼 정확한 소수점이 중요한 경우에는 오차가 누적되므로, 부동소수점만 믿고 설계하면 안 된다.

- **📢 섹션 요약 비유**: 큰 운동장과 작은 칠판을 하나의 자로 재려면, 자를 늘였다 줄였다 해야 하는 것과 같다.

---

## Ⅱ. 아키텍처 및 핵심 원리

IEEE 754의 기본 구조는 sign, exponent, fraction이다. exponent는 bias를 더해 저장하고, fraction은 정규화된 경우 숨은 1을 포함해 실제 유효숫자를 표현한다.
형식부호지수가수특징
single precision1823빠르고 메모리 절약
double precision11152더 넓은 범위와 정밀도
32-bit single precision
[ sign ][ exponent ][ fraction            ]
  1bit     8bit        23bit

값 = (-1)^sign × 1.fraction × 2^(exponent-127)

지수가 모두 0이면 subnormal 또는 0, 모두 1이면 Infinity와 NaN (Not a Number)을 나타낸다. 이 특수값 덕분에 오류 상태를 수치 공간 안에 표현할 수 있다.

- **📢 섹션 요약 비유**: 숫자를 부호·지수·가수로 나눠 적는 것은 주소와 방 번호를 함께 적는 것처럼 생각하면 된다.

---

## Ⅲ. 비교 및 연결

부동소수점은 정수나 고정 소수점보다 범위가 넓지만, 정밀도가 균일하지 않다. 값이 커질수록 인접한 수 사이 간격이 벌어지므로, `0.1 + 0.2 == 0.3` 같은 비교가 실패할 수 있다.
형식장점한계
정수정확함범위와 소수 표현이 제한적
고정 소수점금액 계산에 적합스케일을 미리 정해야 함
부동소수점넓은 범위와 범용성반올림 오차와 비교 문제

싱글과 더블을 비교하면, 더블은 메모리와 연산 비용이 늘지만 누적 오차에 더 강하다. 따라서 정확도 요구가 높은 시뮬레이션은 더블을, 대규모 텐서 연산은 비용과 정확도의 균형을 함께 본다.

- **📢 섹션 요약 비유**: 정수는 칼같이 맞는 자, 부동소수점은 넓은 범위를 보는 망원경에 가깝다.

---

## Ⅳ. 실무 적용 및 기술사 판단

실무에서는 오차 허용 범위를 먼저 정하고, 비교는 절대 오차와 상대 오차를 함께 사용해야 한다. 또한 합산 순서가 결과를 바꾸므로, 큰 값과 작은 값을 섞어 더할 때는 보정 합산을 고려한다.

체크리스트

  1. 금액과 수량을 부동소수점으로 저장하지 않는가?
  2. 비교 시 epsilon을 기준으로 판단하는가?
  3. 누적 연산의 순서와 반올림 정책을 정의했는가?
  4. 필요한 정밀도에 맞는 형식(single/double)을 선택했는가?

안티패턴

  • 실수 비교를 ==로만 처리하는 것

  • 돈을 0.1 단위 float로 계산하는 것

  • NaN과 Infinity를 예외가 아닌 정상값처럼 넘기는 것

    • 📢 섹션 요약 비유: 돈 계산은 동전 개수로 세어야지, 모래알처럼 대충 재면 안 된다.

    Ⅴ. 기대효과 및 결론

    부동소수점은 "완벽한 실수"가 아니라 "계산 가능한 근사 실수"다. 이 사실을 이해하면 정밀도 예산을 설계할 수 있고, 오차를 버그가 아니라 모델의 일부로 다룰 수 있다.

따라서 부동소수점은 편리한 기본형이면서도, 오차 분석과 비교 정책이 함께 있어야 안전하다. 정확성이 최우선인 영역에서는 표현 방식부터 다시 고르는 것이 맞다.

- **📢 섹션 요약 비유**: 큰 그림은 멀리서 보되, 아주 정확한 조립은 다른 도구를 써야 한다.

---

### 📌 관련 개념 맵

| 개념 | 연결 포인트 |

| :-- | :-- | | IEEE 754 (Institute of Electrical and Electronics Engineers 754) | 부동소수점 표준 | | sign / exponent / fraction | 비트 필드 구조 | | bias | 지수 저장 보정값 | | NaN (Not a Number) | 계산 오류를 나타내는 특수값 | | ULP (Unit in the Last Place) | 인접 표현값 간 거리 |

### 📈 관련 키워드 및 발전 흐름도

실수 범위 요구
│
▼

부호 / 지수 / 가수 설계 │ ▼ 반올림과 특수값 처리 │ ▼ 오차 예산과 비교 정책

### 👶 어린이를 위한 3줄 비유 설명

1. 숫자를 적을 때 자릿수가 아주 많아도, 컴퓨터는 꼭 필요한 만큼만 적어요.
2. 그래서 어떤 숫자는 조금 덜 정확하지만 더 넓은 범위를 볼 수 있어요.
3. 돈처럼 딱 맞아야 하는 일은 다른 방법을 써야 해요.