뇌과학 또는 심리학/SW개발

프로그래밍 문제 해결에서 Mental Set Effect 극복하기

growdai1y 2025. 1. 23. 10:32

프로그래밍 문제를 해결할 때, 우리 모두는 한 번쯤 "왜 이렇게 생각했을까?"라며 스스로에게 질문해본 경험이 있을 겁니다. Mental Set Effect(심리적 고정 효과)는 바로 이런 순간에 숨어있는 장애물입니다. 과거에 성공했던 방법에 지나치게 의존하거나 익숙한 접근법만 고수하면, 창의적이고 혁신적인 해결책을 찾는 데 걸림돌이 될 수 있습니다. 이번 글에서는 논문 "Overcoming the Mental Set Effect in Programming Problem Solving[각주:1]"을 바탕으로, 이 현상이 무엇인지, 왜 중요한지, 그리고 이를 극복할 방법은 무엇인지 쉽게 풀어보겠습니다.

심리적 고정 효과 (Mental Set Effect)
심리적 고정 효과 (Mental Set Effect)

Mental Set Effect란 무엇인가?

Mental Set Effect는 심리학에서 유래된 개념으로, 과거 성공적인 경험이 현재 문제를 해결하는 방식을 제한하는 현상을 뜻합니다. 간단히 말해, "전에 이렇게 했으니 이번에도 통할 거야"라는 생각이 문제가 되는 상황입니다.

프로그래밍에서도 비슷한 상황이 발생합니다. 익숙한 알고리즘, 데이터 구조, 코드 패턴에 의존해 새로운 문제를 해결하려다 보면, 최적의 해결책을 놓치거나 완전히 잘못된 방향으로 나아갈 수 있습니다. 예를 들어, 특정 정렬 알고리즘만 고집하거나, 과거 프로젝트에서 사용했던 설계를 반복하는 경우가 이에 해당합니다.

 

실제 사례: 한 개발자가 이전 프로젝트에서 효율적으로 사용했던 해시맵(HashMap)을 새로운 문제에도 적용하려고 했지만, 문제의 특성상 트리 구조가 더 적합했음을 나중에 깨달은 경우입니다.

아인슈텔룽 효과와의 유사성

Mental Set Effect는 독일 심리학 용어인 아인슈텔룽 효과(Einstellung Effect)와 유사한 개념으로 볼 수 있습니다. 둘 다 과거의 성공적 경험이 새로운 문제 해결 방식을 제한한다는 공통점을 가지고 있습니다. 하지만 Mental Set Effect는 더 광범위하게, 일반적인 인지적 고착 현상을 설명하는 데 사용됩니다.


프로그래밍에서의 Mental Set Effect – 왜 문제인가?

1. 제한된 사고 방식

Mental Set Effect는 문제 해결의 창의성을 제한합니다. 개발자는 새로운 접근법을 시도하지 않고, 익숙한 방식에만 의존하게 됩니다. 이는 특히 빠르게 변화하는 기술 환경에서 큰 문제로 작용합니다. 최신 기술이나 트렌드를 반영하지 못하면, 경쟁에서 뒤처질 수밖에 없습니다.

2. 학습과 성장 방해

익숙한 방법에만 의존하다 보면, 새로운 기술이나 개념을 배우는 기회를 놓치게 됩니다. 이는 장기적으로 개인과 팀 모두의 성장을 방해합니다.

3. 비효율적인 문제 해결

기존 방식이 항상 최적의 솔루션은 아닙니다. 때로는 문제의 특성에 따라 완전히 새로운 접근이 필요하지만, Mental Set Effect에 갇혀 이를 놓칠 위험이 있습니다.


Mental Set Effect를 극복하는 4가지 전략

"그럼 어떻게 해야 이 함정을 피할 수 있을까?" 아래에서 제시하는 네 가지 방법은 창의적인 사고를 촉진하고, 더 나은 문제 해결 능력을 키우는 데 도움이 됩니다.

 

1. 인지적 유연성(Cognitive Flexibility) 기르기

문제를 다양한 관점에서 바라보는 연습을 통해 인지적 유연성을 키울 수 있습니다. 예를 들어, 동일한 문제를 해결하는 여러 알고리즘을 시도하거나, 기존과 다른 프로그래밍 언어로 문제를 풀어보는 것이 좋습니다.

 

Tip: "이 문제를 해결할 다른 방법은 없을까?"라는 질문을 습관화하세요.

 

2. 프레임 전환(Reframing) 활용

문제를 새로운 시각에서 바라보는 연습도 효과적입니다. 예를 들어, 성능 최적화 문제를 해결할 때 "시간 복잡도"가 아니라 "공간 복잡도" 관점에서 접근해보는 겁니다.

 

실제 적용 예시: 기존에 반복문으로 처리하던 작업을 재귀 함수로 전환하여 효율성을 높이는 방식.

 

3. 학습 기반 접근법(Exploratory Learning) 적용

새로운 도구나 기술을 배우고, 이를 문제 해결에 적용하는 연습을 하세요. 학습 기반 접근법은 기존의 사고 틀에서 벗어나는 데 큰 도움을 줍니다.

 

Tip: GitHub에 올라온 오픈소스 프로젝트를 분석하거나, 해커톤에 참여해보세요.

 

4. 메타인지(Metacognition) 활용

스스로의 사고 방식을 객관적으로 평가하고, 필요시 수정하는 능력을 기르는 것도 중요합니다. "내가 이 문제를 이렇게 접근한 이유는 무엇인가?"라는 질문을 스스로에게 던져 보세요.

 

Tip: 문제 해결 과정에서 자신의 논리를 기록하고, 이후 검토해보는 습관을 들이세요.


실험 데이터로 본 Mental Set Effect

논문에서는 프로그래머들이 Mental Set Effect를 어떻게 경험하는지 보여주는 흥미로운 실험 결과를 제시합니다.

실험 구조:

  1. 참가자들에게 두 가지 문제를 제시:
    • 첫 번째 문제는 기존 알고리즘으로 쉽게 해결 가능.
    • 두 번째 문제는 기존 알고리즘 대신 새로운 접근이 필요.
  2. 참가자들의 문제 해결 방식을 분석.

결과:

  • 첫 번째 문제에서는 대부분이 익숙한 알고리즘을 성공적으로 적용.
  • 두 번째 문제에서는 많은 참가자들이 기존 접근법에 집착하다 실패.
  • 하지만 새로운 방법을 시도한 소수의 참가자들은 훨씬 높은 성공률을 기록.

이 실험은 Mental Set Effect가 실제로 문제 해결에 어떻게 부정적인 영향을 미치는지, 그리고 이를 극복하는 창의적 접근이 얼마나 중요한지를 명확히 보여줍니다.


결론: 창의적인 문제 해결은 선택이 아닌 필수

프로그래밍 문제 해결 과정에서 Mental Set Effect는 종종 간과되지만, 이는 개발자의 성장과 문제 해결 능력에 큰 영향을 미칩니다.

이를 극복하기 위해서는 인지적 유연성, 프레임 전환, 학습 기반 접근법, 메타인지와 같은 전략을 적극 활용해야 합니다. 또한, 다양한 도구와 기술을 배우고 적용하려는 태도가 필수적입니다.

다음에 프로그래밍 문제를 만났을 때, 한 번 더 생각해 보세요. "내가 이 문제를 이렇게 해결하려는 이유는 무엇인가?" 그리고 새로운 길을 시도하는 데 두려워하지 마세요. 창의적인 해결책은 바로 그곳에 있을지 모릅니다.

 

 

  1. Overcoming the Mental Set Effect in Programming Problem Solving: https://arxiv.org/abs/2307.06673 [본문으로]
반응형