encapsulation은 객체 내부 상태를 다루는 경계이고 polymorphism은 같은 호출이 대상에 따라 다르게 동작하는 성질이다. API는 시스템 밖으로 드러난 호출 약속이며 SOAP은 그 약속에 쓰일 수 있는 메시지 규약이다. 객체 안의 설계와 시스템 간 통합을 같은 '연결'로 뭉뚱그리지 않는다.
핵심어
캡슐화는 객체의 내부 상태를 경계 안에 두고, API는 외부와 약속한 호출 경계를 제공한다.
| 영단어 | 의미 |
|---|---|
inheritance | 상속은 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려 받는 것. |
object | 상태와 동작을 가지는 소프트웨어 개체다. 객체지향 언어에서는 보통 클래스나 프로토타입을 바탕으로 생성된 인스턴스를 뜻한다. |
class | 클래스는 공통된 속성과 연산을 갖는 객체의 집합. 객체 내부의 데이터 구조와 그 조작을 정리하여 정의한 것. |
encapsulation | 캡슐화는 데이터와 데이터를 처리하는 함수를 하나로 묶는 것. 세부 내용이 은폐되어(정보은닉) 외부의 접근이 제한적임. |
polymorphism | 다형성은 동일한 메시지를 여러 사람에게 보냈을 때 받는 자의 객체에 따라 각각 적절한 절차가 이루어지는 것. |
concrete class | 구체 클래스란 직접적으로 실체화를 통해 인스턴스를 가질 수 있는 클래스. |
함께 구분할 단어
| 영단어 | 의미 |
|---|---|
abstract class | 추상 클래스는 구체 클래스에서 구현하려는 기능들의 공통점만을 모아 추상화한 클래스로, 인스턴스 생성이 불가능하여 구체 클래스가 추상 클래스를 상속받아 구체화한 후 구체 클래스의 인스턴스를 생성하는 방식으로 사용. |
API | Application Programming Interface. 다른 소프트웨어 기능을 호출하거나 데이터를 교환하기 위한 규칙, 형식, 계약의 집합이다. |
EAI | Enterprise Application Integration. 서로 다른 기업 애플리케이션의 데이터와 프로세스를 연결·조정해 함께 동작하도록 만드는 통합 접근과 관련 시스템을 뜻한다. |
WSDL | Web Services Description Language. SOAP 웹 서비스의 작업, 메시지, 데이터 형식, 엔드포인트와 바인딩을 XML로 기술하는 언어다. |
UDDI | Universal Description, Discovery, and Integration의 약어로 인터넷에서 전 세계의 비즈니스 목록에 자신의 목록을 등재하고 검색하기 위한 XML 기반의 공용 등록부(registry) 서비스. (레거시 통합 기술) |
SOAP | SOAP은 구조화된 메시지를 교환하기 위한 XML 기반 프로토콜이다. 보통 WSDL과 함께 웹 서비스 통합에 사용된다. |
코드에서 만나는 단어
| 영단어 | 의미 |
|---|---|
RPC | 원격 절차 호출(Remote Procedure Call)이란 분산 처리 시스템에서 어떤 컴퓨터의 프로그램에서 다른 컴퓨터에서 동작하고 있는 프로그램의 절차를 직접 불러내는 것. 이 기능으로 두 머신의 프로그램 사이에서 직접 통신이 가능하며, 통신망을 통해 실행 결과의 값을 주고받는다. 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어. |
MOM | 메시지 기반 미들웨어(Message Oriented Middleware)란 상이한 애플리케이션 간 통신을 비동기 방식으로 지원하는 메시지 기반 미들웨어. 비동기(asynchronous)적이라는 것은 요청을 보내고 나서 그 응답을 받을 때까지 기다리지 않는다는 뜻으로, 요청한 처리가 끝나기를 기다리지 않고 다른 작업을 수행하다가 나중에 확인하는 방식. |
TP-Monitor | 트랜잭션 처리 모니터(Transaction Processing monitor)란 항공기, 철도 예약 업무 등과 같은 온라인 트랜잭션 데이터를 처리 및 감시하는 미들웨어. |
ORB | 객체 요청 브로커(Object Request Broker)란 분산 객체 환경에서, 객체 간의 통신을 매개하는 기능. 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어. |
CORBA | Common Object Request Broker Architecture. 서로 다른 언어와 시스템의 분산 객체 통신을 위한 표준이다. Java SE의 CORBA 모듈은 JDK 11에서 제거되어 현대 Java에서는 주로 레거시 시스템 맥락에서 다룬다. (레거시 맥락) |
Jakarta Enterprise Beans (formerly EJB) | Jakarta Enterprise Beans. 컨테이너가 트랜잭션, 보안, 생명주기 같은 서비스를 제공하는 Jakarta EE 컴포넌트 모델이다. 과거 명칭은 Enterprise JavaBeans(EJB)다. (현재 명칭으로 갱신) |
실무 문서에서 만나는 장면
encapsulation은 객체 안의 경계를, API와 SOAP은 시스템 사이의 약속을 설명한다. 같은 '연결'이라도 범위가 다르다.
한 문장에 낯선 용어가 여러 개 보여도 전부 동시에 외울 필요는 없다. 먼저 주어와 동작을 찾고, 나머지는 범위·상태·도구를 보충하는 말로 나눈다. 단어가 길어 보여도 역할을 붙이면 문장이 작은 부품처럼 분해된다. 용어가 몰려온다고 문서가 일부러 겁을 주는 것은 아니다. 대개는 분류가 아직 안 됐을 뿐이다.
핵심 요약
객체 내부의 책임과 시스템 사이의 통신 계약을 나눠 본다.
- inheritance — 상속은 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려 받는 것.
- WSDL — Web Services Description Language. SOAP 웹 서비스의 작업, 메시지, 데이터 형식, 엔드포인트와 바인딩을 XML로 기술하는 언어다.
- Jakarta Enterprise Beans (formerly EJB) — Jakarta Enterprise Beans. 컨테이너가 트랜잭션, 보안, 생명주기 같은 서비스를 제공하는 Jakarta EE 컴포넌트 모델이다. 과거 명칭은 Enterprise JavaBeans(EJB)다. (현재 명칭으로 갱신)

