6. 적응자 패턴(Adapter Pattern)

6.1 개요

적응자 패턴은 서로 비슷한 기능을 하지만 사용 방법이 다른 경우 같은 인터페이스를 갖게 변환시키는 패턴입니다. 변환시키기 전에는 서로 다른 방법으로 사용해야 했던 작업들을 일관된 인터페이스를 사용할 수 있어 사용이 쉬워집니다. 적응자 패턴은 사용자에게 익숙한 인터페이스 형태로 포장하여 제공한다는 의미에서 래퍼(Wrapper)라고도 부릅니다.

“적응자 패턴은 일관성있는 인터페이스를 사용할 수 있는 래퍼(Wrapper)”

6. 2 시나리오

어느 날 강의를 하고 있는데 이 매핑 씨에게 전화가 왔습니다.

“안녕하세요. 혁재 아버지!”

“네, 잘 지내시죠. 그런데 어떤 일로 저에게…”

“저희가 이번에 새로운 모듈을 개발했거든요. 그런데 개발하는 과정에서 기존 모듈과 사용 방법이 다르게 만들게 되었어요. 개발을 완료해서 보니 모듈이 H/W에 종속적인 기능이 아니라서 기존 카메라에도 적용을 시킬 수 있다는 판단을 하게 되었어요.”

이 매핑 씨와 통화를 하다 보니 처음 영상 처리 모듈을 개발할 당시에는 새로운 카메라에만 적용할 목적으로 개발하였다고 하네요. 그런데 개발을 완료해서 보니 새로운 영상 처리 모듈이 H/W와 독립적인 기능이라 기존 카메라의 펌웨어 업그레이드를 통해 제공하고 싶은데 모듈 사용 방법이 기존 모듈들과 달라 다시 개발해야 할 것 같다는 얘기였습니다. 제가 전산 실무에 대해 교육을 하는 것을 알고 효과적인 방법이 있는지 자문을 요청한 것이죠.

저는 강의를 마치고 EHCamera 개발팀을 방문한 후에 기존 모듈과 새로운 모듈을 살펴보았습니다. 다행스럽게 두 개의 모듈은 노출된 기능의 이름만 서로 다르고 다른 부분은 크게 다르지 않았습니다. 간단하게 기존의 모듈에서 노출한 기능과 일치하는 인터페이스를 만들어 새로운 모듈을 감싸는 작업을 해 주고 이와 같은 구조 패턴에 대해 간략히 설명해 주었습니다.


6. 적응자 패턴(Adapter Pattern) 설계

6. 적응자 패턴(Adapter Pattern) 구현