DB

[MySQL] SIN, COS, TAN 삼각함수 완전 정리 📐

인생아 2025. 7. 24. 21:49
반응형

삼각함수는 수학, 물리, 그래픽, 위치 계산 등 다양한 분야에서 핵심적인 역할을 한다. MySQL에서도 이를 위해 SIN(), COS(), TAN()과 같은 삼각함수를 지원한다. 이 함수들은 단독으로 쓰이는 경우는 드물지만, 좌표계 연산, 경로 계산, 데이터 시각화, 나아가 3D 공간 계산에서도 유용하게 쓰인다.

삼각함수 입력 단위는 라디안(Radian)

MySQL에서 모든 삼각함수는 각도를 '라디안' 단위로 입력받는다. 즉, 90도는 π/2 라디안, 180도는 π 라디안이다. 만약 도(degree) 단위를 사용하고 싶다면 RADIANS() 함수로 변환해야 한다.

SELECT SIN(RADIANS(30));  -- 결과: 약 0.5

이를 명심하지 않으면 삼각함수 결과가 전혀 다른 값이 나올 수 있다.

SIN() 함수 – 사인

SIN(x) 함수는 주어진 라디안 값 x에 대한 사인 값(sine)을 반환한다. 사인 함수는 직각삼각형에서 높이/빗변의 비율로 정의되며, 주기적인 변화를 표현할 때 자주 사용된다.

SELECT SIN(RADIANS(90)); -- 결과: 1
SELECT SIN(RADIANS(0));  -- 결과: 0

예제: 파형 값 생성

SELECT i,
       SIN(RADIANS(i * 10)) AS sin_wave
FROM generate_series AS i
WHERE i BETWEEN 0 AND 36;

0도부터 360도까지 10도 단위로 사인값을 구하면 파형 형태 데이터를 만들 수 있어 그래프 처리에 유용하다.

반응형

COS() 함수 – 코사인

COS(x) 함수는 주어진 라디안 값 x에 대한 코사인 값(cosine)을 반환한다. 밑변/빗변의 비율로 정의되며, 사인과 함께 주기 함수를 만들거나 방향 계산에서 사용된다.

SELECT COS(RADIANS(60)); -- 결과: 약 0.5
SELECT COS(RADIANS(0));  -- 결과: 1

예제: 2D 원형 좌표 생성

SELECT 
  COS(RADIANS(angle)) * r AS x,
  SIN(RADIANS(angle)) * r AS y
FROM angles;

사인과 코사인을 조합하면 원형 좌표계(x, y)를 만들 수 있어 레이더 차트, 원형 그래프, 게임 캐릭터 이동 경로 등을 구현할 수 있다.

TAN() 함수 – 탄젠트

TAN(x) 함수는 주어진 라디안 값 x에 대한 탄젠트 값(tangent)을 반환한다. 탄젠트는 높이/밑변, 즉 SIN(x)/COS(x)로 정의된다. 경사도 계산, 회전 각도 계산 등에 유용하다.

SELECT TAN(RADIANS(45));  -- 결과: 1
SELECT TAN(RADIANS(0));   -- 결과: 0

예제: 경사도 계산

SELECT height / width AS 탄젠트값,
       DEGREES(ATAN(height / width)) AS 경사도_각도
FROM ramps;

TAN은 ATAN()의 반대 함수로써, 경사비로부터 각도를 유추하는 계산 과정의 일부로 쓰인다.

반응형

삼각함수 실무 활용 예시

  1. 경로 계산: 위도/경도 기반 거리 계산 (Haversine 공식을 구성할 때 사용)
  2. 좌표 변환: 도넛 차트, 파형 데이터, 그래픽 위치 처리
  3. 3D 게임 또는 지도 뷰: 물체 회전, 방향 계산, 시야각 구현
  4. IoT 센서 데이터 분석: 회전 센서, 각도 센서의 출력값 분석

주의사항

  • 입력은 도(degree)가 아니라 라디안(radian)이므로 RADIANS(x)로 변환 필수
  • TAN(x)는 x = 90°, 270°처럼 COS(x) = 0일 경우 무한대 값(INF) 또는 NULL이 반환될 수 있음
  • 실무에서는 SIN(), COS()는 함께 쓰는 경우가 많고, TAN()은 제한적인 상황에서 사용된다

정리

  • SIN(), COS(), TAN()은 각도 기반의 연산에 사용하는 대표적인 삼각함수이다.
  • MySQL에서는 모든 삼각함수 입력은 라디안 단위이며, RADIANS()를 꼭 함께 사용해야 한다.
  • 파형 생성, 좌표계 처리, 회전 각도 계산, 데이터 시각화 등 실무 활용도가 높다.
  • 삼각함수는 단순 계산 외에도 시계열 표현, 그래픽 계산, 방향성 처리에 매우 유용하다.

참고 문서

https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_sin
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_cos
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_tan

 

반응형