[TIL] 22.05.22

kyh·2022년 5월 22일
2

원티드 프리온보딩

목록 보기
11/12

공부한 내용

  • 자바스크립트의 숫자 연산

    • 자바스크립트는 숫자에 대한 모든 데이터를 64bit의 부동 소수점 형태로 저장하고 있기 때문에 진정한 정수의 데이터는 존재하지 않는다. ( IEEE 754 표준에 따라 배정밀도 부동 소수점 데이터 ( -2^53-1 ~ 2^53-1 까지의 수 ) 를 사용한다.
      ✨ 참조 링크 : Double-precision floating-point format - Wikipedia

    • 따라서, 배정밀도를 이용한 근삿값으로 소수점 연산을 수행하며, 이는 높은 정밀도를 가지지만 컴퓨터가 0과 1만 가지고 사람이 사용하는 수의 체계를 표현하려고 하니 소수점 연산에서 간혹 정확한 값을 표현할 수 없는 경우가 발생한다.

      			0.1 + 0.2 == 0.3 // result : false
    • 정확하게 0.1과 0.2를 더하는 것이 아니라 근삿 값으로 연산을 수행하기 때문에 실제로 이 숫자의 덧셈 연산 결과는 0.3이 아닌 0.30000000000000004 의 결과를 보인다.

    • 이러한 오차를 보이는 이유는 예를 들어 설명하자면, 사람의 수 체계에서 10진수의 1 나누기 3은 0.333... 인 무한 소수로 정확하게 떨어지지 않는데, 컴퓨터가 이 무한 소수를 이진수로 표현하려고 한다면, 한정된 자원에 한계가 있을 뿐만 아니라 자연계의 정확한 수를 아예 표현할 수가 없다.

    • 따라서 컴퓨터는 표현할 수 있는 최대한의 범위 안에서 가장 근접한 값인 근삿값으로 해당 숫자를 반올림 처리해서 우리에게 결과를 보여주고, 이것 때문에 이와 같은 오차가 발생한다.

Tip

  • 차트 라이브러리
    • vicory.js : D3.js에 비해서 자유도가 조금 떨어지지만 간단한 차트를 구현하기 좋다. 타입스크립트 지원되고, 문서화가 잘 되어 있어 관련 속성을 참고해서 차트를 구현할 수 있다.
  • API 관련 도구
    • Postman : API 테스팅 및 문서화 도구
    • Swagger : API 문서 자동화 도구
  • 숫자 데이터 연산 도구
    • bignumber.js : 보다 정밀한 숫자 연산을 위한 라이브러리

1개의 댓글

comment-user-thumbnail
2022년 5월 22일

잘 보고 가요

답글 달기