인터페이스 (Interface)
이 페이지는 바이브 코딩 문맥에서 자주 쓰이는 인터페이스 (Interface)의 뜻과 쓰임을 입문 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 5개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
인터페이스(Interface)는 서로 다른 구성 요소가 어떤 입력과 기능, 결과를 통해 상호작용할지 정한 접점과 규칙입니다. 프로그램에서는 외부에 제공할 속성과 메서드의 형태를 설명하는 데 쓰입니다. 내부 구현을 모두 알지 않아도 정해진 방식으로 기능을 사용할 수 있게 하며, 사용자 화면을 뜻하는 UI와 프로그래밍 언어의 선언은 문맥에 따라 구분합니다.
구현을 감추고 제공하는 기능
MDN의 인터페이스 설명은 객체가 외부에 제공하는 속성과 메서드의 집합을 계약으로 설명합니다. 같은 인터페이스를 따르는 객체라면 내부를 다른 방식으로 구현해도 정해진 기능을 이용하는 코드와 연결할 수 있습니다. 어떤 이름으로 무엇을 호출하고 결과가 어떤 형태로 돌아오는지가 협력의 기준입니다.
파일 저장 기능을 호출하는 코드가 실제 파일 시스템과 원격 저장 서비스를 번갈아 사용하도록 만들 수 있습니다. 호출자는 저장할 내용과 대상 이름을 넘기고 결과를 받는 규칙을 알면 됩니다. 다만 두 구현이 같은 함수 이름만 가졌다고 같은 의미로 작동하는 것은 아닙니다. 오류를 어떻게 알리는지, 저장이 언제 완료되는지 같은 동작 조건도 계약에 포함됩니다.
인터페이스를 분명히 하면 구현 변경이 영향을 주는 범위를 줄이는 데 도움이 됩니다. 외부에서 쓰는 기능과 결과를 유지한 채 내부 처리 방법을 바꿀 수 있기 때문입니다. 반대로 호출자가 내부 파일 구조나 숨겨진 상태에 의존하면 구현을 바꿀 때 함께 깨질 수 있습니다. 공개한 규칙과 우연히 관찰된 내부 동작을 나누는 이유입니다.
언어가 제공하는 인터페이스 선언
TypeScript의 객체 자료형 문서는 interface로 객체가 가질 속성과 자료형을 표현하는 방법을 보여 줍니다. 필수 속성인지 선택 속성인지, 읽기 전용인지 같은 조건도 기술할 수 있습니다. 이런 선언은 코드를 작성할 때 어떤 형태의 값을 전달해야 하는지 검사하고 설명하는 데 쓰입니다.
Java SE 25 언어 명세의 인터페이스 장은 클래스가 인터페이스를 구현하고 필요한 동작을 제공하는 관계를 설명합니다. Java에서는 해당 인터페이스를 구현한다고 선언하는 관계가 중요합니다. 언어마다 타입을 판단하는 방식이 다르므로 TypeScript와 Java의 같은 단어를 보고 선언 규칙까지 동일하다고 가정하지 않습니다.
언어의 인터페이스 선언은 전체 업무 규칙을 자동으로 검증하지는 않습니다. 이름과 숫자 값을 받는 메서드라도 해당 계정에 권한이 있는지, 숫자가 업무상 허용 범위인지는 구현에서 확인할 수 있습니다. 네트워크로 받은 자료가 선언한 구조를 실제로 따르는지도 별도 문제입니다. 컴파일 단계의 형태 검사와 실행 중의 값·행동 검증을 구분합니다.
API와 UI에서의 접점
API는 프로그램이 다른 프로그램의 기능을 사용하는 인터페이스를 뜻합니다. 요청 형식과 응답, 오류 조건을 문서로 제공하면 서로 다른 언어로 작성된 프로그램도 정해진 규칙에 맞춰 통신할 수 있습니다. SDK는 이런 호출을 편하게 만드는 도구를 포함할 수 있지만, 호출을 감쌌다고 서비스의 권한이나 입력 규칙이 사라지지는 않습니다.
사용자 인터페이스는 사람이 시스템과 상호작용하는 접점입니다. 버튼과 입력창뿐 아니라 명령줄의 명령과 결과도 사람이 쓰는 인터페이스가 될 수 있습니다. 같은 시스템에서 사람에게 제공하는 접점과 프로그램에 제공하는 접점을 따로 설계할 수 있습니다. 화면에 있는 기능을 API에서도 제공하는지, 같은 권한 조건이 적용되는지 확인하면 두 경로의 차이를 찾기 쉽습니다.
인터페이스를 변경할 때는 기존 호출자가 어떤 가정을 하고 있는지 살핍니다. 필수 입력을 추가하거나 반환값의 뜻을 바꾸면 내부 코드는 정상이어도 연결된 다른 기능이 실패할 수 있습니다. 새 규칙과 이전 규칙을 어떤 기간 동안 지원할지, 호출자는 어떻게 이전할지 함께 정합니다. 검증에는 구현 자체의 성공뿐 아니라 기존 호출 코드가 기대한 결과를 계속 받는지도 포함합니다.
관련 용어
인터페이스 (Interface)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
