6.1 개요
적응자 패턴은 서로 비슷한 기능을 하지만 사용 방법이 다른 경우 같은 인터페이스를 갖게 변환시키는 패턴입니다. 변환시키기 전에는 서로 다른 방법으로 사용해야 했던 작업들을 일관된 인터페이스를 사용할 수 있어 사용이 쉬워집니다. 적응자 패턴은 사용자에게 익숙한 인터페이스 형태로 포장하여 제공한다는 의미에서 래퍼(Wrapper)라고도 부릅니다.
“적응자 패턴은 일관성있는 인터페이스를 사용할 수 있는 래퍼(Wrapper)”
6. 2 시나리오
어느 날 강의를 하고 있는데 이 매핑 씨에게 전화가 왔습니다.
“안녕하세요. 혁재 아버지!”
“네, 잘 지내시죠. 그런데 어떤 일로 저에게…”
“저희가 이번에 새로운 모듈을 개발했거든요. 그런데 개발하는 과정에서 기존 모듈과 사용 방법이 다르게 만들게 되었어요. 개발을 완료해서 보니 모듈이 H/W에 종속적인 기능이 아니라서 기존 카메라에도 적용을 시킬 수 있다는 판단을 하게 되었어요.”
이 매핑 씨와 통화를 하다 보니 처음 영상 처리 모듈을 개발할 당시에는 새로운 카메라에만 적용할 목적으로 개발하였다고 하네요. 그런데 개발을 완료해서 보니 새로운 영상 처리 모듈이 H/W와 독립적인 기능이라 기존 카메라의 펌웨어 업그레이드를 통해 제공하고 싶은데 모듈 사용 방법이 기존 모듈들과 달라 다시 개발해야 할 것 같다는 얘기였습니다. 제가 전산 실무에 대해 교육을 하는 것을 알고 효과적인 방법이 있는지 자문을 요청한 것이죠.
저는 강의를 마치고 EHCamera 개발팀을 방문한 후에 기존 모듈과 새로운 모듈을 살펴보았습니다. 다행스럽게 두 개의 모듈은 노출된 기능의 이름만 서로 다르고 다른 부분은 크게 다르지 않았습니다. 간단하게 기존의 모듈에서 노출한 기능과 일치하는 인터페이스를 만들어 새로운 모듈을 감싸는 작업을 해 주고 이와 같은 구조 패턴에 대해 간략히 설명해 주었습니다.