Do Developers Read Type Information? An Eye-Tracking Study on TypeScript
26명의 학부생을 대상으로 한 이 안구 추적 연구는 개발자들이 TypeScript의 코드 이해 또는 버그 위치 파악 작업 중에 타입 어노테이션을 더 빈번하게 직접적으로 쳐다보지 않는다는 것을 밝혀냈으며, 이는 타입이 문서로서의 역할을 할 수는 있지만 이전에 가설로 세워졌던 방식처럼 능동적으로 읽히지는 않는다는 점을 시사한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 요리책을 읽고 있다고 상상해 보세요. 어떤 레시피에는 재료 목록에 "밀가루 2컵" 또는 "닭고기, 뼈 없는 것"과 같은 작은 포스트잇이 붙어 있습니다. 이 메모들은 컴퓨터 코드의 **타입 어노테이션(type annotations)**과 같습니다. 이들은 프로그래머(요리사)에게 정확히 어떤 종류의 데이터(재료)가 사용되는지 알려줍니다.
수년 동안 전문가들은 이 "포스트잇"이 내장된 설명서 역할을 한다고 믿어 왔습니다. 프로그래머가 코드를 이해하다 막혔을 때, 이 메모를 보고 도움을 받는다는 이론입니다.
핵심 질문:
프로그래머들은 실제로 코드를 읽을 때 이 메모들을 볼까요, 아니-면 그냥 무시할까요?
이 연구의 연구진은 이 질문을 알아내기 위해 "주방" 실험을 설계했습니다. 그들은 단순히 프로그래머들에게 무엇을 한다고 생각하는지 묻는 데 그치지 않고, 아이 트래킹 안경(눈이 정확히 어디를 향하는지 기록하는 첨단 안경)을 사용하여 22명의 학생이 코드를 이해하고 버그를 찾는 과정을 관찰했습니다.
연구 결과는 다음과 같이 쉬운 개념들로 나누어 설명할 수 있습니다.
1. "유령 메모" 현상 (The "Ghost Note" Phenomenon)
예상: 만약 이 포스트잇이 도움이 된다면, 사람들은 특히 혼란스러울 때 그것을 자주 보아야 합니다.
현실: 아이 트래킹 데이터에 따르면, 프로그래머들은 타입 어노테이션을 거의 보지 않았습니다.
- 비유: 이는 지도 위에 밝은 빨간색으로 "당신은 여기에 있습니다"라는 스티커가 붙어 있는데, 운전자는 그 스티커를 완전히 무시한 채 도로와 GPS 화면만 계속 응시하는 것과 같습니다. 메모가 있음에도 불구하고, 프로그래머들의 시선은 메모가 없을 때보다 더 오래 머물지 않았습니다.
- 결과: 이 메모의 존재 여부는 프로그래머들이 코드를 읽는 방식에 변화를 주지 못했습니다. 그들은 메모를 더 자주 보지도 않았고, 막혔을 때 다시 돌아가서 읽지도 않았습니다.
2. "기억력" 테스트 (The "Memory" Test)
예상: 어쩌면 이 메모가 기억을 돕는 도구일 수도 있지 않을까요? 만약 프로그래머가 기억해야 할 것이 많다면(높은 작업 기억력), 그들은 정보를 머릿속에 담아둘 수 있으므로 메모를 덜 사용할지도 모릅니다. 반대로 기억하기 힘들어한다면 메모에 더 의존할 수도 있습니다.
현실: 연구진은 학생들의 기억력을 테스트했습니다(수학 문제를 풀면서 동시에 글자 목록을 기억하게 하는 방식 등).
- 결과: 그들의 기억력이 얼마나 좋은지는 별로 중요하지 않았습니다. "천재적인 기억력"을 가졌든 "평범한 기억력"을 가졌든, 그들은 타입 메모를 유의미하게 더 많이 혹은 더 적게 보지 않았습니다. 메모는 연구진이 기대했던 것처럼 기억력을 보조하는 지팡이 역할을 하지 못했습니다.
3. "레시피마다 다르다"는 요소 (The "It Depends on the Recipe" Factor)
결과: 프로그래머들의 독해 방식에 가장 큰 영향을 미친 것은 메모가 아니라, 바로 코드 그 자체였습니다.
- 비유: 어떤 레시피는 읽기가 훨씬 쉽습니다. 레시피가 지저분하거나 혼란스러우면 요리사는 그것을 이해하기 위해 더 오래 응시합니다. 반면 명확하면 빠르게 지나갑니다. 연구진은 타입 어노테이션의 유무보다 특정 코드의 내용이 훨씬 더 중요하다는 것을 발견했습니다. 어떤 코드는 메모가 있든 없든 상관없이 이해하기 어려웠습니다.
4. "메모를 사랑해"의 역설 (The "I Love Notes" Paradox)
반전: 실험이 끝난 후, 연구진은 학생들에게 물었습니다. "이 타입 메모들이 마음에 드나요?"
- 결과: 학생들은 **YES!**라고 답했습니다. 그들은 타입 어노테이션이 코드를 작성하고 이해하는 데 매우 도움이 된다고 압도적으로 말했습니다. 그들은 이것이 유용하다고 생각합니다.
- 역설: 이 부분이 혼란스러운 지점입니다. 학생들은 메모가 아주 좋다고 말하지만, 그들의 눈은 그것을 보지 않는다는 사실을 증명합니다. 이는 마치 "나는 시리얼의 영양 성분표를 읽는 것을 좋아해"라고 말하면서, 정작 시리얼을 살 때는 영양 성분표를 한 번도 쳐다보지 않는 것과 같습니다.
이것이 의미하는 바는 무엇인가요?
이 논문은 프로그래머들이 타입 어노테이션을 코드 내의 유용한 문서화 도구라고 믿고 있지만, 실제로는 우리가 예상하는 방식으로 그것을 읽지 않는다고 결론짓습니다. 그들은 메모를 뚫어지게 쳐다보지도 않고, 막혔을 때 다시 돌아가 확인하지도 않습니다.
누가 관심을 가져야 할까요?
- 도구 제작자: 프로그래머들이 메모를 보지 않는다면, 아마도 도구(예: 그들이 사용하는 소프트웨어 에디터)가 이 정보를 단순히 화면에 출력하는 것이 아니라, 더 눈에 띄는 다른 방식으로 보여줘야 할 수도 있습니다.
- 교사: 학생들이 메모를 읽지 않는다면, 교사는 단순히 학생들이 자연스럽게 습득할 것이라고 가정할 것이 아니라, 이 정보를 어떻게 읽고 활용해야 하는지 가르쳐야 할 수도 있습니다.
- 커뮤니티: 이는 단순히 코드에 이러한 메모를 추가하는 것만으로는 이해를 돕는 마법 같은 해결책이 될 수 없음을 시사합니다. 우리는 아직 이 메모들을 어떤 방식으로 사용해야 하는지 정확히 파악하지 못했습니다.
요약하자면: 프로그래머들은 타입 어노테이션이라는 개념은 좋아하지만, 실제 행동에서는 그들의 눈이 다른 이야기를 하고 있습니다. 그들은 대부분 그것을 무시하고 있습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.