전산학의 프로그래밍 언어론은 언어학부에서 가르치는 언어학과 그 내용이 상당 부분 겹칩니다. 전산학부 대부분의 과목이 수학에서 파생된 과목인 것으로 보면 전산학부에서 언어론을 배우는 것 자체가 특이하게 느껴질 일이지요.
프로그래밍 언어론에서는 언어의 원리와 구조를 알려줍니다. 그리고 그것은 실세계 인간 언어의 원리와 구조를 그대로 따릅니다. 언어론이든 프로그래밍 언어론이든 이 원리와 구조를 아는 사람과 알지 못하는 사람의 언어구사능력 수준은 확실히 다릅니다. 문법을 정확하게 아는 것을 말하는 것이 아닙니다. 언어의 원리와 구조를 알면 언어를 내가 구사하는 언어가 상대방에게 어떤 영향을 끼치고 있는지를 느끼며 대화할 수 있습니다..
프로그래밍 언어에서 언어를 잘 못 구사하였을 경우에는 오류(error)가 납니다. 오류에도 여러 가지 종류가 있지만, 크게 나누면 컴파일 오류(compile time error)와 런타임 오류(runtime error)로 나눌 수 있겠습니다. 컴파일 오류는 대부분 문법(syntax)의 오류입니다. 말 그대로 말이 안되는 언어를 구사해서 컴퓨터가 못 알아 듣는 것이지요. 이런 경우는 즉시 수정을 할 수 있습니다. 반면에 런타임 오류는 대부분의 경우 문법적인 문제는 없습니다. 그러나 그 문맥(context) 안에 논리적인 오류가 있어서 나중에 큰 문제가 되는 것이지요. 경험 많고 노련한 개발자는 이런 문맥상의 오류를 일으키지 않습니다. 그리고 오류가 발생하여도 즉시 원인을 찾아내어 해결합니다.
우리가 실 세계에서 사용하는 언어도 이와 같이 컴파일 오류와 런타임 오류가 존재합니다. 대화 도중 상대방이 내 말을 알아듣지 못하는 경우에는 누구나 즉시 바로 잡을 수 있습니다. 반면에 대화 도중에는 아무 문제가 없다가 나중에 알고 보니 서로 다른 내용으로 이해하고 있는 경우에는 문제가 불거집니다. 우리가 흔히 말하는 오해라는 커뮤니케이션의 실수이지요. 노련한 개발자와 마찬가지로 노련한 달변가는 언어구사의 런타임 오류를 일으키지 않는 사람인 것 같습니다.
프로그래밍 언어에서 런타임 오류를 예방하기 위해서는 내가 구사하는 언어의 구조뿐 아니라 언어를 해석하는 컴파일러의 동작 원리 또한 잘 이해하여야 합니다. 이와 마찬가지로 실 세계에서 런타임 오류를 예방하기 위해서는 내가 구사한 언어를 해석하는 상대방(상대방의 이해력, 지식 수준, 감정 상태, 성격)을 잘 이해하여야 합니다. 능력있는 개발자가 컴파일러를 고려하여 언어를 구사하듯이 사람들과의 성공적인 커뮤니케이션을 위해서는 상대방을 고려하여 언어를 구사하는 능력 또한 중요합니다.
어떻게 보면 신뢰를 주는 대화에 화려하고 빈틈 없는 언변(Syntax)의 구사는 필수 요소가 아닙니다. 오히려 불필요하게 복잡한 언어 구사는 예기치 못한 문제(bug, runtime error)를 낳기도 하는 것 같습니다. 훌륭한 의사 전달은 내가 할 수 있는 표현이 아닌 상대방이 받아드릴 수 있는 표현을 사용하여야 합니다. 이를 위해서는 상대방을 잘 알아야 하며, 이는 또한 깊은 관심과 애정으로만 가능합니다. 노련한 개발자가 플랫폼과 컴파일러를 잘 이해하듯이 대화를 잘 이끄는 사람은 상대방을 잘 이해하는 사람입니다.

"좋은 생각" 분류의 다른 글
| 감독의 요건 | 2010/06/04 |
| 섬기는 사람이 되기 | 2010/05/16 |
| 성공의 열쇠는 어린이와 같은 마음 | 2010/05/05 |
| 유능한 공돌이가 되려면 | 2010/03/14 |
| 성공 경험 | 2010/02/01 |
트랙백 주소 :: http://guseongwoo.com/tt/trackback/783
-
Subject: ucandoit의 느낌
Tracked from seongwoo's me2DAY 2009년 4월 6일 5시 37분 삭제유능한 프로그래머가 대화도 잘 할 듯…
-
Subject: Miracle의 생각
Tracked from miracle0k's me2DAY 2009년 4월 6일 10시 21분 삭제노련한 개발자가 플랫폼과 컴파일러를 잘 이해하듯이 대화를 잘 이끄는 사람은 상대방을 잘 이해하는 사람입니다.




댓글을 달아 주세요