인터페이스란 무엇인가요?
Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 12번째.
Go의 인터페이스는 타입이 어떤 동작을 가져야 하는지를 정의하는 계약과 같으며, 이러한 동작이 어떻게 구현되는지는 명시하지 않습니다. 그것을 무언가가 무엇을 할 수 있는지를 설명하는 메서드 시그니처의 집합이라고 생각하세요.
인터페이스를 더 잘 이해하기 위해, 집에 있는 콘센트를 상상해 보세요.
콘센트는 특정한 모양을 가지고 전기를 공급하지만, 어떤 장치를 꽂는지는 상관하지 않습니다. 램프든, 휴대폰 충전기든, 컴퓨터든 상관없이 올바른 플러그 모양을 가진 장치라면 무엇이든 연결하여 전력을 공급받을 수 있습니다. 콘센트는 연결을 위한 요구 사항인 '인터페이스'를 정의합니다.
Go에서 인터페이스는 비슷하게 작동합니다. 이는 타입이 해당 인터페이스에 "연결"되기 위해 반드시 가져야 하는 메서드 시그니처 집합을 정의합니다. 필요한 모든 메서드를 가진 타입은 해당 타입이 다른 어떤 작업을 수행하든, 또는 해당 메서드들을 어떻게 구현하든 상관없이 자동으로 인터페이스를 충족합니다.
이 개념은 특정 동작을 수행할 수 있는 모든 타입과 함께 작동하는 코드를 작성할 수 있게 해주어, 프로그램을 더 유연하고 재사용 가능하게 만들기 때문에 강력합니다. 서로 다른 기기들이 모두 동일한 전원 콘센트를 사용할 수 있는 것처럼, 서로 다른 Go 타입들도 필요한 메서드를 가지고 있는 한 모두 동일한 인터페이스를 충족할 수 있습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
치트 시트
Go에서 인터페이스는 타입이 반드시 구현해야 하는 메서드 시그니처의 계약을 정의합니다. 필요한 모든 메서드를 가진 모든 타입은 자동으로 인터페이스를 충족합니다.
인터페이스는 특정 동작을 수행할 수 있는 모든 타입과 함께 작동하는 유연한 코드를 작성할 수 있게 해줍니다. 이는 서로 다른 장치들이 올바른 플러그 모양을 가지고 있다면 동일한 전원 콘센트를 사용할 수 있는 것과 비슷합니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.