이 글은 객체지향 설계 개념을 차례로 살펴보는 작은 시리즈의 세 번째 글입니다.
- 메서드 시그니처 - 계약에 남긴 서명(https://likebnb.tistory.com/183)
- 계약 - 자유를 줄이고 예측가능성을 만드는 방식(https://likebnb.tistory.com/184)
- 인터페이스 - 경계를 지키는 이름(https://likebnb.tistory.com/185)
- 프로토콜 - 상호작용의 질서(https://likebnb.tistory.com/186)
- 스테이트 머신 - 시공간의 맥락(https://likebnb.tistory.com/187)
- 이벤트 - 코드의 흐름을 삼키다(https://likebnb.tistory.com/188)
interface, 이 단어의 어근에 해당하는 face는 라틴어에서 출발해 고대 프랑스어를 거쳐 지금의 모습이 되었다.
라틴어 facies는 단순히 얼굴만을 뜻하지 않는다. 겉모습, 형태, 외관, 드러난 모습처럼 의미의 범위가 꽤 넓다. 그래서 이를 조금 넓게 이해하면 "밖으로 드러난 모습"을 가리키는 말이라고 할 수 있다.
건축물의 정면을 뜻하는 facade 역시 같은 뿌리를 두고 있다. 흥미롭게도 이 단어는 오늘날 소프트웨어 설계에서도 하나의 패턴 이름으로 쓰이고 있다.
인터페이스는 결국 '마주 보는 얼굴'이다.
비슷한 말로 surface가 있다. 하지만 surface는 어떤 것의 바깥 면을 가리킬 뿐이다. 반면 interface는 두 존재가 마주하는 면을 뜻한다. 이 단어에는 언제나 '사이(inter)'라는 관계가 전제되어 있다.
계면(界面).
말 그대로 두 세계가 만나는 경계다.
19세기 물리학에서는 물과 공기, 기름과 물처럼 서로 다른 물질이 맞닿는 면을 가리켜 interface라는 말을 사용하기 시작했다. 당시의 의미는 "두 물체가 공통으로 공유하는 경계면" 정도였다.
오늘날 물리학에서는 인터페이스를 "서로 다른 물질이나 상태가 접하는 경계 영역", 다시 말해 특별한 성질을 가진 얇은 층으로 설명한다.
인터페이스는 두 세계가 만나는 곳에서 생긴다.
이 개념은 이후 여러 분야로 퍼져 나갔다. 컴퓨터 사이언스에서도 예외는 아니다.
man-machine interface, hardware interface, software interface, Application Programming Interface 같은 표현은 이제 너무도 자연스럽다. 어쩌면 이 단어, interface가 없었다면 무엇으로 대신했을지 상상하기 어려울 정도다.
소프트웨어에서 인터페이스는 구현의 내부가 아니라, 서로 다른 시스템이 만나는 경계에 놓인다.
서로 다른 계(system)가 만나는 곳에서는 계약이 필요하기 때문이다. 그리고 그 계약은 사전조건과 사후조건이라는 형태로 드러난다.
소프트웨어에서 인터페이스는 기능이 아니라 경계다.
컴퓨터 사이언스 분야에 interface라는 이름을 누가 처음 가져왔을까? 정확히 한 사람을 지목하기는 어렵지만, 이 단어를 널리 퍼뜨린 곳은 아마도 IBM일 것이다.
1960년대 IBM은 거대한 컴퓨터 시스템을 설계하면서 장치와 장치, 모듈과 모듈, 그리고 인간과 기계가 만나는 경계를 설명해야 했다. 그때 그들은 물리학에서 쓰이던 단어 하나를 그대로 가져왔다. interface.
서로 다른 시스템이 만나는 경계.
그들이 만들어낸 말은 아니지만, 이 역할을 설명하는 데 이보다 정확한 단어도 없었을 것이다.
'일하는 중에' 카테고리의 다른 글
| 객체가 사는 법 #5. 스테이트 머신 - 시공간의 맥락 (0) | 2026.03.24 |
|---|---|
| 객체가 사는 법 #4. 프로토콜 - 상호작용의 질서 (0) | 2026.03.20 |
| 객체가 사는 법 #2. 계약 - 자유를 줄이고 예측 가능성을 만드는 방식 (0) | 2026.03.17 |
| 객체가 사는 법 #1. 메서드 시그니처 - 계약에 남긴 서명 (0) | 2026.03.16 |
| OpenClaw 설치하기 - Ollama 기반 로컬 AI 에이전트 환경 구축 (0) | 2026.03.12 |