서브루틴
서브루틴 (영어: subroutine, procedure, function, routine)은 컴퓨터 프로그래밍에서 특정 작업을 수행하는 일련의 코드 블록을 의미한다. 프로그램 내에서 반복적으로 사용되는 코드를 하나의 서브루틴으로 묶어 필요할 때마다 호출함으로써 코드의 중복을 줄이고, 프로그램의 가독성과 유지보수성을 향상시킨다.
개요
서브루틴은 메인 프로그램으로부터 독립적으로 존재하며, 특정한 입력(매개변수)을 받아 주어진 작업을 수행한 후 결과값을 반환할 수 있다. 서브루틴은 다양한 이름으로 불리는데, 프로그래밍 언어에 따라 함수(function), 프로시저(procedure), 메소드(method, 객체 지향 프로그래밍에서) 등으로 지칭되기도 한다.
특징
- 재사용성: 동일한 코드를 반복 작성하는 대신, 서브루틴을 호출하여 재사용할 수 있다.
- 모듈성: 프로그램을 작은 기능 단위로 분할하여 개발하므로, 프로그램의 구조를 이해하고 관리하기 용이하다.
- 가독성: 코드의 중복을 줄이고 기능을 명확하게 분리함으로써, 프로그램의 가독성을 높인다.
- 유지보수성: 코드 변경이 필요한 경우, 해당 서브루틴만 수정하면 되므로 유지보수가 용이하다.
동작 방식
서브루틴은 호출될 때 프로그램의 실행 흐름이 서브루틴 내부로 이동하며, 서브루틴 내의 코드가 순차적으로 실행된다. 서브루틴의 실행이 완료되면 프로그램의 실행 흐름은 서브루틴을 호출한 지점으로 되돌아오며, 필요에 따라 결과값을 반환한다. 서브루틴 호출 시에는 매개변수를 전달할 수 있으며, 전달된 매개변수는 서브루틴 내부에서 사용된다.
예시
다양한 프로그래밍 언어에서 서브루틴을 정의하고 사용하는 방법을 보여주는 간단한 예시이다 (특정 언어에 국한되지 않음):
# Python 예시
def greet(name):
"""인사말을 출력하는 서브루틴"""
print("Hello, " + name + "!")
greet("World") # 서브루틴 호출
// JavaScript 예시
function add(a, b) {
// 두 수를 더하는 서브루틴
return a + b;
}
let result = add(5, 3); // 서브루틴 호출
console.log(result); // 8 출력
관련 개념
- 함수 (Function): 특정 값을 반환하는 서브루틴
- 프로시저 (Procedure): 특정 작업을 수행하지만 값을 반환하지 않을 수도 있는 서브루틴
- 메소드 (Method): 객체 지향 프로그래밍에서 객체와 관련된 서브루틴
- 매개변수 (Parameter): 서브루틴에 전달되는 입력 값
- 반환값 (Return value): 서브루틴이 실행 후 호출자에게 돌려주는 값