Ha Junsoo (河 俊 秀)

기능성-확장성 트레이드오프

2017-04-11

편리한 기능일수록 확장 가능성은 떨어진다. 기능이 편리하다는 말은 크고 특수한 문제를 해결해준다는 뜻이고, 크고 특수한 문제를 해결해주는 기능은 그 문제밖에 해결하지 못할 가능성이 크기 때문이다. 기능 ABC문제 ABC를 멋지게 해결하지만, 문제가 조금만 바뀌어도 — 가령 문제 ABC문제 ABD로 변형되는 경우 — 순식간에 쓸모없는 기능으로 전락하고 만다.

확장 가능성이 큰 기능은 대부분 사용하기 불편하다. 확장 가능하다는 말은 작고 보편적인 기능으로 쪼개져 있다는 뜻이고, 작고 보편적인 기능은 작고 보편적인 문제밖에 해결하지 못하기 때문이다. 기능 A는 문제가 조금 바뀌더라도 — 가령 문제 A문제 AB, 문제 AC, 문제 AD 따위로 확장되더라도 — 유연하게 사용될 수 있다는 장점이 있지만, 문제 A를 제외한 그 어느것도 완벽하게 해결하지 못한다는 단점이 있다. 물론 작고 보편적인 기능 여럿을 조합해 크고 특수한 문제를 해결할 수 있긴 하지만, 그 조합하는 과정에서 발생하는 부하가 온전히 사용자에게 위임된다는 점에서 여전히 불편한 것은 마찬가지다.

이 기능성-확장성 트레이드오프의 딜레마는 인터페이스 설계에서도 나타난다. 지나치게 편리한 인터페이스는 훗날 확장하지 못하고, 필요 이상으로 확장 가능하게 설계된 인터페이스는 아무기능도 제공하지 못할 가능성이 크다. 기능성 좋은 인터페이스가 한샘 완제품 가구라면, 확장성 좋은 인터페이스는 이케아 조립식 가구에 비유할 수 있다. 인터페이스 설계는 이 기능성-확장성 트레이드오프, 또는 한샘-이케아 상충 사이에서 최적의 균형점을 찾는 일이다. 엔지니어라면 자신의 고객이 완제품 가구를 찾는 사람인지, 아니면 조립식 가구를 찾는 사람인지 고민해볼 필요가 있다. 결국 인터페이스 설계에서 중요한 것은 기능성도, 확장성도 아닌 사용자 경험이기 때문이다.