본문 바로가기
카테고리 없음

프로그래밍 심리학

by 수터 2023. 8. 24.
반응형

프로그래밍 심리학 개념

프로그래밍 심리학은 컴퓨터 프로그래밍 과정에서 인간이 경험하는 심리적 문제를 다루는 학문입니다. 심리학적으로 컴퓨터 프로그래밍은 컴퓨터 언어를 읽고 쓰는 것과 학습하는 것, 그리고 문제해결과 추론하는 것과 같은 인지 행위이며, IT프로젝트 진행과정에서 개인과 집단의 성격에 따라 다양한 문제를 해결하는 과정에서 일어나는 상호작용문제를 다룹니다. 또한 팀의 리더들이 겪는 다양한 심리적 어려움에 대처하는 방법을 다루는 분야입니다. 프로그래밍 심리학에 대한 연구는 프로그래머들에게 심리학적 접근의 필요성을 알리는 계기가 되었고, 미국을 중심으로 경험적 연구를 통해 진행되었습니다. 프로그래밍 심리학 연구는 컴퓨터 프로그래머의 인지, 프로그래밍과 관련된 행위의 도구와 방법, 프로그래밍 교육을 연구합니다. '프로그래밍 심리학'이라는 용어는 1971년에 제럴드 마빈 와인버그(Gerald Marvin Weinberg)의 책 <프로그래밍 심리학>으로 처음 알려지게 되었는데, 제럴드 와인버그는 이 책에서 컴퓨터 프로그래밍 과정을 인간의 행위에 초점을 맞추어 사회적 활동과 개인적 특성으로 파악하고 프로그래머를 프로그래밍하는 과정의 도구의 관점에서 기술하였습니다. 국내에서 출판된 프로그래밍 심리학 서적은 한서대학교 이재용 교수의 <프로그래머는 왜 심리문제에 골몰하는가-메타인지를 위한 프로그래밍 심리학>가 있습니다. 

 

경험주의 접근

컴퓨터 프로그래밍의 과정을 경험주의로 해석하는 방법이며 제럴드 와인버그가 시도했으며, 관념의 형성과정에서 생득적, 관습보다는 경험이나 증거, 특히 감각에 의한 지각을 강조합니다. 실험에 토대를 두는 관점을 강조하며 애자일 소프트웨어 개발(간반, 익스트림 프로그래밍, 페어프로그래밍) 등으로 발전하였습니다. 경험주의 접근은 프로그래밍 심리학의 최초 방법론으로써 많은 기여를 했음에도 개인의 내부에서 내밀하게 벌어지는 점을 경험적으로 해석하므로 널리 알려지거나 적용하는데 어려움이 있습니다. 

 

행동주의 접근

행동주의 접근은 행동주의 심리학이 프로그래밍에 영향을 준 내용을 중심으로 프로그래밍을 학습하는 방법론과 프로그래머 집단내의 상호 작용에 초점을 맞추는 방법론이며 이는 세가지로 나누어볼 수 있는데 첫 번째, 프로그래밍 표현 시스템으로 구조적 프로그래밍, 제어구조의 효과성, 자료구조 연구 등을 포함합니다. 두 번째로 코딩기술에 관한 것인데 순서도, 들여 쓰기(Indent), 쉽게 기억할 수 있는 변수명 사용법(Case Style), 주석문 등입니다. 세 번째로는 과제의 해결과정에서 벌어지는 일들인데 문제해결로 생성, 주의, 수정, 디버깅, 테스트, 객체지향형 프로그래밍에서의 유지보수와 프로그래밍 학습에서의 개요의 파악, Glass Box/Blank Box, 지식구조의 동화, 내적처리의 가시성의 문제들입니다. 

 

분석심리학 접근

분석심리학 접근은 마이어스, 브릭스 모녀가 카를 융의 분석심리학을 기본으로 하여 개발된 MBTI 심리검사 도구를 이용하는 접근 방법이며, 개인의 작업 수준에 대한 행위를 분석하는 도구로 활용되거나 사회적 활동으로 보는 팀 협업에 적용되고 있습니다. 이 방법의 연구방향은 컴퓨터 프로그래밍직에서 일을 하는 사람들이 어떤 분포를 이루는가에 대한 연구와, 성격유형별로 프로그래밍 작업 중 적절한 공정이나 역할의 선호도에 대한 연구, 그리고 마지막으로 어떤 방식으로 협업을 하면 효율적인지에 대한 연구이며, 표준화된 MBTI검사를 이용할 수 있어서 표준화된 기준으로 알리거나 활용이 가능하다는 장점이 있습니다. 

 

인지주의 접근

인지주의 접근은 인지주의 심리학이 컴퓨터 프로그래밍에 영향을 준 내용을 중심으로 프로그래밍 학습과 절차를 연구하는 방법이며 프로그래밍 지식을 통사적 지식, 의미적 지식과 도식적 지식, 전략적 지식으로 나누고, 학습과 소통 그리고 자기 인식의 도구로 사용하는 방법론입니다. '통사적 지식'이란 INPUT, PRINT, CLS같은 명령 개개 요소의 규칙과 관련성에 관한 지식을 뜻하며, '의미적 지식'은 스택(stack), 메모리 공간, 프로그램 리스트와 같은 위치, 객체와 메모리에 대해 수행할 수 있는 작업에 대한 지식을 말합니다. 또한  '도식적 지식'은 정렬, 반복과 for문장과 같은 루틴의 지식을 말하며 '전략적 지식'이란 사고구술(Thinking Aloud)과 같이 계획하고 모니터 하는 기술을 말합니다.

 

인본주의 접근

인본주의 접근은 욕구단계설을 사용하여 프로그래머의 발달을 설명하는 방법으로 에이브러햄 매슬로가 제안했으며 두 가지로 나눌 수 있는데, 그 첫 번째는 프로젝트에 참여하는 프로그래머의 욕구는 요구단계설이 제시하는 욕구의 진행 과정의 욕구와 같다는 것이며 이를 통해서 프로그래머가 겪고 있는 심리적 발달단계와 어려움을 이해하고 해결할 수 있도록 도움을 줄 수 있습니다. 두 번째는 인터넷 서비스의 발전을 욕구단계설로 설명하는 것으로 이를 통해 소셜미디어와 네트워킹 서비스의 발전 과정에 많은 영향을 미쳤습니다. 

 

구성주의 접근

구성주의 접근은 피아제의 인지발달이론에 근거하여 컴퓨터 프로그래밍 능력을 설명하는 이론이며, 피아제가 주장한 발달이론의 감각운동기와 전조작기, 그리고 구체적조작기와 형식적 조작기의 발전과정이 컴퓨터 프로그래밍 과정에 그대로 적용됩니다. 초보인 프로그래머는 신뢰할 수 있는 코드를 수동으로 실행하지 못하며 변수의 최종값을 결정할 수 없고, 이 단계를 감각운동기에 있다고 정의합니다. 초보 프로그래머로 코드의 추적(Trace)을 안정적으로 할 수는 있지만 전체적인 구성을 보지 못하는 단계가 전조작기입니다. 이 때 프로그래머는 귀납적 접근 때문에 프로젝트롤 설계할 수 없는 단계인데 연역추론이 가능한 프로그래머라면 구체적 조작기에 이르렀다고 할 수 있으며, 형식적 조작기에 이른 프로그래머는 설명문으로 문제를 추상화하고 하위문제를 생성하여 그 하위문제를 결과로 만들어내서 재구성하고 평가하는 것을 반복적으로 수행할 수 있습니다.

반응형