본문 바로가기
목차
CE

[CE] Routine 이란

by ds31x 2026. 6. 11.
728x90
반응형

https://miro.medium.com/v2/resize:fit:1400/format:webp/0*u8LQUT-o3R32MBgP.jpg

 

프로그래밍 및 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의 구체적인 형태라고 보면 됨.

728x90

'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