스키마 변경 솔루션을 적용하기 위해서는 내부에서 제공하는 Driver나 API가 있을거 같은데 어플리케이션 개발자가 쓸 일을 없겠지만 엔지니어라면 그런 외부 솔루션을 개발한다고 가정하였을 때, MySQL의 어느 파일 혹은 어느 부분을 건드려야 할까요?(중요한건 아니니 안나오면 포기해주셔도 ㅎ)
DECIMAL, FLOAT, DOUBLE의 관계? 표현이 조금 애매한데,, DECIMAL은 정확한 수치를 저장(소수점이 들어간 실수를 저장하려면 DECIMAL 사용) 하지만 FLOAT와 DOUBLE은 근사치의 숫자를 저장함. 대신 FLOAT와 DOUBLE은 상당히 큰 숫자를 저장할 수 있음.
부동 소수점? <-> 고정 소수점. 위키에 따르면 ==> 부동 소수점은 플로팅 포인트(떠돌이 소수점) 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수와 소수점의 위치를 풀이하는 지수로 나누어 표현.
요약하면: 고정 소수점은 소수 부분의 자리수가 일정하고, 부동 소수점은 일정하지 않음. // 부동 소수점은 우리가 아는 0.01이 그대로 저장되는 게 아니라 근사치
위키의 예시가 적당해서 그대로 옮기면: 예를 들어, 0.1과 0.01을 표현하지 못하므로 0.1의 제곱이 0.01이 되지도 않고 0.01과 가장 가까운 수가 되지도 않는다. 24비트 단정밀도 표현에서, 십진수 0.1은 지수 = -4; 가수 = 110011001100110011001101 이고 그 값은, 정확히 0.1000000014901161193847656256이다. 이 수를 다시 제곱하면, 정확히 0.010000000298023226097399174250313080847263336181640625이다. 단정밀도 부동 소수점 (반올림 있는) 하드웨어에서 제곱을 한다면, 정확히 0.010000000707805156707763671875이다. 하지만 0.01과 가장 가까운 표현 가능한 실수는 정확히 0.009999999776482582092285156250이다.
정리는 여기에