
프로그래밍 및 CS에서 routine은
- 특정 작업을 수행하기 위해
- 정해진 순서로 작성된
- 명령어들의 묶음을 의미함.
즉, 넓은 의미에서는 다음을 모두 routine이라고 부를 수 있음.
routine
├─ function
├─ procedure
├─ method
├─ subroutine
└─ handler / callback 등
0. 일반적 의미
routine은 원래 길 또는 경로를 의미하는 route 에 기반을 둔 단어임.
routine은
- 이미 정해진 길을 따라 가듯이 정해진 방식으로 수행되는 절차를 가리켰는데,
- 오늘날에는 의미가 확장되어 일상에서는 반복적으로 하는 일, 정해진 절차, 일과 를 가리키는데 많이 사용됨.
프로그래밍 및 CS에서는 특정 작업을 수행하기 위해 정해진 순서로 작성된 코드 단위 를 의미함.
1. 기본 의미
routine : 특정 기능을 수행하는 코드 단위
예를 들어 다음 function도 하나의 routine임.
def calculate_area(width, height):
return width * height
이 routine은 다음 작업을 수행함.
- width와 height를 받아서
- 사각형의 넓이를 계산하고
- 그 결과를 반환함.
2. function과 routine의 차이
일반적으로 프로그래밍에서는 비슷한 용도로 function이라는 용어를 더 많이 사용함.
function과 비교할 때 routine이 보다 더 포괄적인 뜻을 가짐.
다음 표를 참고할 것:
| 용어 | 의미 |
| routine | 특정 작업을 수행하는 코드 단위 전체 |
| function | 값을 반환하는 routine |
| procedure | 값을 반환하지 않고 동작을 수행하는 routine |
| method | class나 object에 소속된 routine |
| subroutine | 다른 코드에서 호출되어 실행되는 하위 routine |
즉, function 도 CS 일반론에서는 이것도 routine의 한 종류에 해당함.
Subroutine은 호출자에게 실행 흐름이 돌아오는 단일 진입-단일 반환 구조이고,
coroutine은 여러 지점에서 yield 하며 서로 실행 흐름을 주고받는 중단-재개 가능한 routine임.
3. subroutine과의 관계
subroutine은 말 그대로 하위 routine임.
즉, 큰 프로그램 안에서 특정 작업을 따로 분리해두고, 필요할 때 호출하는 코드 단위임.
def print_menu():
print("1. Start")
print("2. Exit")
print_menu()
여기서 print_menu()는 main 흐름에서 호출되는 subroutine임.
4. OS / low-level 문맥에서의 routine
OS 나 저수준 프로그래밍에서도 routine이라는 말이 자주 쓰임.
예를 들면 다음과 같음.
| 용어 | desc. |
| interrupt service routine, ISR | interrupt가 발생했을 때 실행되는 처리 코드 |
| signal handler routine | signal을 받았을 때 실행되는 처리 코드 |
| initialization routine | 초기화 작업을 수행하는 코드 |
| cleanup routine | 자원 해제 작업을 수행하는 코드 |
| error-handling routine | 오류 처리 코드 |
예:
Interrupt 발생
→ CPU가 현재 실행 흐름을 잠시 멈춤
→ Interrupt Service Routine 실행
→ 원래 실행 흐름으로 복귀
5. 요약
프로그래밍 및 CS에서 routine은 다음으로 정의 가능.
routine은
특정 작업을 수행하도록 만들어진 코드 단위를
가리키는 일반적 용어.
function, procedure, method, subroutine, handler 등은 모두 routine의 구체적인 형태라고 보면 됨.
'CE' 카테고리의 다른 글
| OS Platform and CPU Architecture (0) | 2026.05.24 |
|---|---|
| TOML 파일: 설정파일 형식 (0) | 2026.04.10 |
| 동기 처리 및 비동기 처리 (1) | 2026.04.10 |
| CE: Independent vs Agnostic (0) | 2026.03.17 |
| Machine 이란? (0) | 2026.03.03 |