더북(TheBook)

여러 환경과의 관계

제약이 많은 환경에서는 코드 재사용 부담이 큽니다. 하지만 복잡한 애플리케이션을 새로 구축하는 것은 비용이 많이 들어 소프트웨어 개발자 대부분은 시스템을 한 번 만들면 여러 환경에서 재사용할 수 있길 원합니다. 아키텍트 관점에서 볼 때 이 경우는 한 환경을 관리하는 문제에서 여러 환경을 관리해야 하는 문제로 바뀝니다.

환경이 서로 다르거나 최악의 경우 상충하는 구조를 요구하면 여러 환경에서 코드를 재사용하기 어렵습니다. 하지만 이러한 문제를 해결할 수 있는 세 가지 표준적인 방법이 있습니다.

• 첫 번째로 프로그램이 실행되는 환경을 무시하고 소프트웨어를 다른 방식으로 구현하는 방법입니다. 보통 이렇게 개발하면 환경에서 무료로 얻을 수 있는 동작을 재현하는 데 많은 시간과 노력이 듭니다. 더욱이 이러한 재현은 절대 완벽하지 않으므로 사용자는 기존 환경에서 제공하는 동작과 해당 소프트웨어에서 재현한 동작 사이의 차이를 결함으로 인식할 수도 있습니다.

• 두 번째로 여러 환경을 단일 모델에 적용할 수 있는 추상화 계층을 만드는 방법입니다. 이 방법은 주어진 환경에서 제공하는 기능과 밀접히 통합할 필요가 없는 시스템에 적합하며, 특히 게임 개발에서 효과적으로 사용합니다. 추상화 계층은 시스템 일부이거나 외부 요소일 수도 있고, 때로는 그 자체로 제품이 되기도 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.