진부함의 미학
코딩, 디자인, 기획 등 다양한 업무는 겉으로는 서로 다르게 보이지만, 사실 사람의 심리와 인지 과정에 깊이 연관된다는 점에서 공통된 특성을 지닙니다. 이들 작업의 결과물은 비록 컴퓨터나 특정 시스템에서 실행되지만, 그 과정을 설계하고 수행하는 것은 사람이며, 이는 작업 전반에 큰 영향을 미칩니다.
사람의 인지 능력에는 한계가 있기 때문에, 접근성을 높일려면 정보를 적절히 제한하는 것이 중요합니다. 복잡한 사용자 인터페이스를 설계할 때는 사용자가 이해하기 쉽게 정보를 단계적으로 제공하는 것이 좋습니다. 코드 작성에서도 가독성을 높이기 위해 기능을 작은 단위로 나누면 사용자가 이해하고 작업하기가 한결 수월해집니다.
여러 개념이 복합적으로 얽혀 있는 내용을 쉽게 이해하려면, 이를 추상화하는 과정이 필요합니다. 특정 함수를 사용할 때 그 내부 동작을 모두 알 필요는 없습니다. 함수의 역할과 사용법만 이해하면 되므로, 복잡성이 줄어들고 기능을 결합하기도 더 쉬워집니다. 마찬가지로 정렬 기능을 사용할 때, 다양한 정렬 방식이 있지만 사용자는 구현 방식보다는 정렬 그 자체에 집중할 수 있습니다.
이처럼 추상화는 복잡한 시스템을 이해하기 쉬운 수준으로 압축합니다. 이를 통해 복잡도를 유지하면서도 여러 요소들을 결합시켜 큰 기능을 만들어 냅니다.
코드는 다양한 상황에서 해석될 수 있으므로, 문맥에 맞는 정보를 제공하는 것이 중요합니다. 전체적인 흐름을 파악할 때는 세부 구현을 생략하고, 필요한 순간에만 구체적인 내용을 추가하는 것이 바람직합니다. 코드를 작성할 때는 이 코드가 어떤 관점에서 읽힐지를 고려해, 사용자가 필요한 정보에 집중할 수 있도록 신중하게 구성해야 합니다. 특정 관점에서 코드를 쉽게 이해할 수 있도록 관련 정보는 가깝게 배치하고, 덜 연관된 정보는 시각적으로 거리를 두어 가독성을 높여야 합니다.
사람들은 기존에 알고 있는 개념에 새로운 정보를 연결해 학습하는 경향이 있습니다. 그렇기에 기존의 익숙한 개념을 재활용하면 학습 효율을 높일 수 있습니다. 이러한 보편적이고 표준적인 개념을 활용하면 풍부한 기능을 제공하면서도 학습 부담을 줄일 수 있습니다.
사용자들은 이미 프로젝트 내에서 관련 부분을 알고 있을 가능성이 높기 때문에, 일관되고 예측 가능한 설계 방식을 적용하면 더 쉽게 적응할 수 있습니다. 이런 직관적이고 보편적인 패턴을 도입하면 학습 곡선이 완만해집니다.
또한, 이러한 진부한 방법들은 이미 많은 사람들이 시도하고 검증해왔으며, 그 과정에서 발전해왔습니다. 이러한 방식에는 깊은 지식이 내포되어 있어, 우리가 미처 예상하지 못한 여러 문제들을 해결하는 데 도움을 줄 수 있습니다.
반면 혁신적이거나 새로운 방식은 기존 개념을 활용하기 어려운 경우가 많아 학습 비용이 증가할 수 있습니다. 새로운 접근법은 특정 문제 해결에는 유용할 수 있지만, 모든 상황에 적용할 필요는 없습니다. 혁신적인 방법이 제공하는 가치와 그에 따른 비용을 신중하게 분석하고, 필요한 부분에만 적용하는 것이 좋습니다.
모든 부분에 새로운 방식을 도입하면 학습 부담이 커져 사용자가 이를 부담스러워할 수 있으며, 외면받을 위험도 있습니다. 따라서 필요한 부분에만 적용하고, 그 외의 영역에서는 더 직관적이고 진부한 방식을 유지하는 것이 더 효과적일 수 있습니다.
댓글남기기