Menu
Coddy logo textTech

메서드 vs 함수

Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 10번째.

Go에서 메서드와 함수는 모두 연산을 수행하지만, 서로 다른 목적을 가지며 별개의 선언 패턴을 가집니다. 이 차이점을 이해하는 것은 명확하고 체계적인 코드를 작성하는 데 매우 중요합니다.

함수는 독립적이며 자립적입니다. 특정 타입에 속하지 않습니다:

func calculateArea(width, height float64) float64 {
    return width * height
}

메서드는 리시버를 통해 특정 타입에 연결됩니다. 이는 해당 타입에 속하며 그 데이터에 접근할 수 있습니다:

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

주요 차이점은 이를 호출하는 방식에 있습니다. 함수는 이름으로 직접 호출되는 반면, 메서드는 점 표기법(dot notation)을 사용하여 연관된 타입의 인스턴스에서 호출됩니다. 이러한 연관성 덕분에 메서드는 사용자 정의 타입에 자연스럽게 속하는 동작을 정의하는 데 적합하며, 함수는 특정 데이터 구조에 얽매일 필요가 없는 범용 작업에 적합합니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

치트 시트

함수는 독립적이며 자립적입니다:

func calculateArea(width, height float64) float64 {
    return width * height
}

메서드는 리시버를 통해 특정 타입에 연결됩니다:

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

함수는 이름으로 직접 호출되는 반면, 메서드는 점 표기법을 사용하여 인스턴스에서 호출됩니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨