소프트웨어 개발, 특히 그래픽 렌더링이나 게임 엔진처럼 각도 계산이 빈번한 분야에서 기존의 라디안(radian) 단위 대신 '턴(turn)' 단위를 사용하는 것이 효율적이라는 주장이 제기되었습니다. 턴은 한 바퀴 회전을 0부터 1까지의 값으로 표현하는 방식으로, 라디안 사용 시 발생하는 불필요한 연산과 부동소수점 정밀도 문제를 해결할 수 있다는 점에서 주목받고 있습니다.
현재 대부분의 삼각 함수 라이브러리는 라디안을 기본 입력으로 받지만, 내부적으로는 이 라디안 값을 다시 특정 범위로 변환하여 계산합니다. 예를 들어, 고속 사인(sin) 함수 구현은 라디안 입력에 4/π 같은 상수를 곱해 내부 범위로 변환하는 과정을 거칩니다. 이는 개발자가 sin(h * 2 * π)와 같이 라디안으로 변환하여 함수를 호출하면, 라이브러리 내부에서 다시 π를 곱했다가 나누는 비효율적인 연산이 발생함을 의미합니다. 턴 단위는 이러한 변환 과정을 없애 호출부의 연산을 줄이고, 라이브러리 내부 상수도 더 단순하고 정확하게 만들 수 있습니다. 또한, 90도, 180도, 270도와 같은 주요 각도를 턴에서는 각각 0.25, 0.5, 0.75와 같이 정확한 이진 분수로 표현할 수 있어, π를 포함하는 라디안보다 부동소수점 정밀도와 저장 효율 면에서 이점을 가집니다.
이러한 턴 단위의 도입은 게임 엔진처럼 주기적인 움직임이나 회전을 다루는 분야에서 특히 유용할 수 있습니다. 이미 고도 엔진(Godot Engine) 등의 일부 게임 엔진에서는 내부적으로 턴과 유사한 개념을 사용하고 있으며, CUDA의 sincospi 함수처럼 반회전([0, 2]) 단위를 지원하는 사례도 있습니다. 그러나 표준 미적분학의 삼각 함수 미분 및 부정적분 공식은 라디안을 전제로 하므로, 턴 단위로 전환 시 연쇄 법칙(chain rule)에 따른 추가 계수를 놓치지 않도록 주의해야 합니다. 결국 어떤 단위가 적합한지는 응용 분야에 따라 달라지며, 개발자는 효율성과 수학적 정확성 사이에서 적절한 균형점을 찾아야 할 것입니다.