1. `재귀적 / 순환적 (Recursive)` 이란?
ㅇ 자기 자신을 이용하여 정의하거나 응용하는 것
- 주로, 반복적으로 스스로를 호출/사용하게 됨
ㅇ 분야별 의미
- [수학] 자기자신을 다시 이용하여 대상을 정의하는 것
- [프로그래밍] 자기자신을 다시 호출하는 프로그램을 일컬음
- [신호처리/시스템] 출력이 다시 입력으로 되돌아서 사용되는 것
- [DNS 질의] 자신에게 없으면 타 네임서버에게 질의를, 연이어 넘겨가며, 응답하게 됨
2. [ 수학 ] 재귀적 정의(recursive definition) 또는 귀납적 정의(inductive definition)
ㅇ 자기자신을 이용하여 표현 대상을 정의하는 것
- 재귀에 의해 수열,함수,집합 등을 정의할 수 있음 ☞ 수학적 귀납법 참조
. 例) 점화관계에 의한 수열의 재귀적 정의
. 例) 계승(팩토리얼),피보나치 수열,파스칼의 삼각형,프랙털 도형 등
ㅇ 재귀적 정의의 구성
- 기본 단계 : 몇몇 초기 원소(조건)들을 기술함
- 귀납적 단계 : 이미 존재하는 원소들로부터 새로운 원소들을 구성하는 규칙을 제시함
ㅇ 例) 팩토리얼의 귀납적 정의
- 기본 단계 : f(0) = 1
- 귀납적 단계 : f(n) = n * f(n-1)
. n!을 정의하는데, 다시 (n-1)!를 사용함
3. [ 프로그래밍 ] 재귀 함수 (Recursive Function)
※ ☞ 재귀 함수/재귀 호출 참조
- 함수 정의에, 자기자신을 사용하며 정의하고, 이를 호출함 (반복 연산 등에 쓰임)
4. [ 신호처리/시스템 ] 재귀적/비재귀적 시스템
ㅇ 순환적(재귀적) 시스템
- 출력이 다시 입력으로 사용되는 시스템
. 출력이 과거의 출력값과 현재 및 과거의 입력값에 영향을 받음
.. y[n] = F ( y[n-1], y[n-2], ..., y[n-N], x[n], x[n-1], ..., x[n-M] )
ㅇ 비순환적(비재귀적) 시스템
- 출력이 다시 입력으로 사용되지 않는 시스템
. 출력이 현재와 과거의 입력에 만 영향을 받음
.. y[n] = F ( x[n], x[n-1], ..., x[n-M] )
5. [ DNS 질의 ] 재귀 질의 (Recursive Query)
ㅇ DNS 클라이언트가 질의한 도메인에 대해,
- 자신이 갖고있는 정보로부터 즉각 응답하거나,
- 자신에게 없으면 다른 서버에게 질의하여 그 결과를 응답하거나,
- 찾고 있는 정보가 없다는 에러 메시지를 보내주는,
- 가장 단순한 DNS 쿼리 유형