함수 기초와 시그니처
매개변수, 반환 타입 및 호출 규약
함수 기초와 시그니처은(는) CoddyKit의 무료 Go Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Go Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
함수 정의
Go에서는 func 키워드로 함수를 정의합니다:
func greet(name string) string {
return "Hello, " + name
}매개변수와 인수
매개변수에는 타입이 지정되며 name type 쌍으로 나열합니다. 같은 타입의 여러 매개변수는 타입 표기를 공유할 수 있습니다:
func add(x, y int) int {
return x + y
}
func rect(w, h float64) float64 {
return w * h
}반환 값이 없는 함수
값을 반환하지 않는 함수는 반환 타입을 생략하면 됩니다. 실행이 끝에 도달하면 암시적으로 반환됩니다:
func printBanner(title string) {
fmt.Println("=====", title, "======")
}함수 호출
함수 이름 뒤에 괄호를 붙이고 해당 인수를 전달하여 함수를 호출합니다:
result := add(3, 4) // 7
fmt.Println(greet("Go")) // Hello, Go
printBanner("Welcome")일급 값으로서의 함수
Go에서 함수는 일급 값입니다. 변수에 할당하거나 인수로 전달할 수 있습니다:
apply := func(n int, f func(int) int) int {
return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10함수 타입
더 깔끔한 시그니처를 위해 이름이 있는 함수 타입을 정의할 수 있습니다:
type Transform func(int) int
func applyAll(n int, fns []Transform) int {
for _, f := range fns {
n = f(n)
}
return n
}재귀 함수
Go는 재귀를 지원합니다. 스택 깊이에 주의해야 합니다. Go의 고루틴 스택은 동적으로 증가하지만, 제한 없는 재귀는 여전히 스택 오버플로를 일으킵니다:
func factorial(n int) int {
if n <= 1 {
return 1
}
return n * factorial(n-1)
}함수 이름 지정 규칙
Go의 함수 이름 지정 규칙은 다음과 같습니다:
MixedCaps(내보낸 함수) 또는mixedCaps(내보내지 않은 함수)를 사용합니다- 짧고 동작을 나타내는 이름을 사용합니다:
New,Get,Parse,Write - 단순한 접근자에는
GetX를 사용하지 말고X만 사용합니다 - 불리언 술어에는
IsValid,HasPrefix를 사용합니다
init() 함수
특수한 init() 함수는 패키지가 로드될 때 main()보다 먼저 자동으로 실행됩니다:
- 인수를 받지 않고 아무것도 반환하지 않습니다
- 하나의 패키지에 여러 초기화 함수를 둘 수 있습니다
- 드라이버 등록과 같은 일회성 설정에 사용합니다
함수와 메서드 비교
함수는 어떤 타입과도 연결되지 않습니다. 메서드에는 수신자가 있습니다(구조체와 메서드에서 다룹니다). 둘 다 func 키워드를 사용합니다:
// Function
func max(a, b int) int { ... }
// Method
func (c Counter) Value() int { ... }빠른 확인
Go에서 함수가 여러 값을 반환할 수 있습니까?
복습: 함수 기초
Go의 함수는 표현력이 뛰어나고 유연합니다:
func name(params) returnType { }- 같은 타입의 매개변수는 타입 표기를 공유할 수 있습니다
- 함수는 일급 값입니다
- 재사용 가능한 시그니처를 위해 함수 타입을 정의할 수 있습니다
- 재귀를 지원하며 패키지가 로드될 때 init()이 실행됩니다
다음: 여러 반환 값을 자세히 살펴봅니다.
자주 묻는 질문
“함수 기초와 시그니처” 강의는 무료인가요?
네 — “함수 기초와 시그니처” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Go Academy 강의 전체를 잠금 해제할 수 있습니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“함수 기초와 시그니처”에서 뭘 배우나요?
매개변수, 반환 타입 및 호출 규약 브라우저에서 직접 실행하는 실습 코드로 Go Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Go Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Go Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“함수 기초와 시그니처” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Go Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Go Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 함수 기초와 시그니처
- 여러 반환값
- 가변 인수 함수
- defer, 익명 함수와 클로저