-
개발자로서 성장하기 위해서는 멘탈 모델을 만들어야 한다.ETC 2023. 1. 30. 08:48
멘탈 모델이란 어떠한 실체가 없는 개념이나 현상을 실체가 있는 대상으로 만들고 이를 통해 역으로 개념이나 현상을 이해하는 역할을 하는 녀석이다. 일례로 전압은 우리가 눈으로 볼 수 없고 실체가 없는 어떠한 개념상으로만 존재하는 것이지만, 이 전압을 수압으로 치환해서 생각해 본다면, 물이 가득 찬 댐의 벽에 10cm 지름의 구멍을 뚫었을 때보다 10m의 지름을 뚫었을 때 더 많은 물이 더 느린 속도로 빠져나가게 된다. 이와 유사하게 전압도 그렇다. 사실 전기 전자에 그리 조예가 깊지 않아서, 아니 없어서, 이게 틀린 멘탈 모델일 가능성이 다분하다. 그저 예시를 들기 위함임을 감안하자. 내가 멘탈 모델에 대한 글을 쓰겠다고 동기부여된 이유는 다음과 같다.
코딩, 프로그래밍이야말로 모든 것이 실체가 없고, 오직 멘탈 모델들의 결합으로 이루어진 분야이기 때문이다. 컴퓨터 부품 중 주기억장치 역할을 하는 메모리를 살펴보자. 우선, 메모리는 실체가 있다. 우리가 살 수 있고, 보통 초록색이며, 메인보드에 장착 가능하다. 하지만 메모리의 작동은 우리가 볼 수 없다. 우리는 단지 우리의 생각으로, "메모리가 이러이러한 방식으로 데이터를 저장하겠구나"라고 생각할 뿐이다. 이때, 우리의 머리에는 실체가 없는 메모리의 동작 과정을 실체화하기 위해 노력한다. 메모리를 칸으로 나누어진 선반 구조로 멘탈 모델들을 만들고, 이 각 칸에 명령어가 담긴 모습을 상상한다. 결국 메모리를 잘 알기 위해서는 얼마나 멘탈 모델을 정교하게 실제와 유사하게 만들었는지에 따라 달린다.
요즘은 자바 프레임워크 중 하나인, 스프링에 대해 알아가고 있다. 강의를 보면, 스프링의 내부 동작 방식을 그림으로 표현하는 것을 쉽게 볼 수 있다. 그럼 이 그림을 보는 학습자들은 머리에 스프링에 대한 멘탈 모델이 생기게 되고, 학습을 진행함에 따라 해당 멘탈 모델은 점점 실제와 유사하게 정교해진다.
그래서 상상을 잘 하는 N 성향인 사람이 개발자가 적성에 잘 맞는다고 하는 것 같다. 개발은 무의 상태에서 유의 상태로 무언가를 창조해 내는 과정이고, 이때 필요한 것이 바로 상상이기 때문이다. 머릿속으로 그림 그리기가 잘 되는 사람이면 개발도 적성에 잘 맞는다.
네트워크 강의를 들으면서 느꼈던 것은, 단순히 전공서적의 빽빽하게 쓰인 글을 보는 것보다, 교수의 설명과 인용 그림을 듣고 보는 게 네트워크에 대한 이해를 더욱 돕는다는 것이었다. 아무리 글로 쓰인 개념을 열심히 읽어서 이해했다고 여기더라도, 눈으로 네트워크의 작동 방식을 보면서 이를 멘탈 모델로 만드는 것이 훨씬 이해하기 수월하다는 것을 깨달았다. 개념을 읽는 것 또한, 이해의 과정을 통해 나만의 멘탈 모델을 만들기 위함인데, 애초부터 그림을 보면서 익히게 되면 훨씬 멘탈 모델을 만드는 게 수월하다.
하지만 글로서 개념을 이해하려는 작업 또한 중요한데, 이해하려는 노력 속에서 뇌가 활발히 움직이게 되고, 결과적으로 '뇌력'을, '상상력'을 증진시키기 때문이다. 엄마가 항상 밥을 차려주는 아이보다, 자기 스스로 밥을 해먹는 아이가 나중에 엄마가 없을 때도 밥을 먹을 가능성이 높다.
따라서 우리는 다른 사람이 이미 만들어 놓은 것을 멘탈 모델로 수용하면서도, 글을 읽음으로써 멘탈 모델을 생성하려는 의도적인 노력을 하며 적절한 균형을 이루어야 하겠다.
'ETC' 카테고리의 다른 글
오버엔지니어링을 조심하자 (0) 2024.05.23 코딩 배우지 말고 생각하는 법을 배우라는데요 (0) 2021.07.09 어떤 도메인에 관심이 가는가 (0) 2021.07.08