컴퓨터 프로그래밍 언어와 컴퓨터, 프로그래머, 사용자의 관계
지난 시간에 잠깐 이야기 했듯 컴퓨터 프로그래밍 언어는 "언어" 입니다. 그리고, 그 언어의 기본적인 형태는 "부탁" 입니다. A 라는 프로그램 사용자가 어떤일을 할때, 그 것을 도와주는 상대자는 "컴퓨터" 이지만, 컴퓨터가 사람처럼 생각하고 사용자의 요구를 받아들일수 없기 때문에 "프로그래머" 가 사용자 A 가 "이런 요구"를 할때는 "이렇게" 해라… 라고 지정을 해주는 것이지요. 사용자 A 를 대신해서 미리 컴퓨터에게 어떤 부탁을 해놓는것이 프로그래밍 이라고도 볼 수 있을것 같습니다.
그래서 전 개인적으로 컴퓨터가 차가운 금속 덩어리가 아닌, 아주 많은 프로그래머들의 애정이 듬뿍 담긴 상자처럼 생각되기도 합니다. 여러분이 컴퓨터를 부팅하고 나서부터 사용하는 모든 기능들은, 아주 많은 프로그램들이 (OS 부터 시작해서 많은 유틸들을 거쳐, 인터넷 프로그램들까지…) 사용자인 여러분을 위해서 "이사람이 이런게 필요할땐 이렇게 해주도록 하자…" 라면서 컴퓨터와 같이 머릴 맞대고 고민한 고민들의 결과이기 대문이죠. 그것이 어떤 분야이든 사람에 대한 애정이 담기지 않은 명품은 세상에 나오기 힘듭니다.
어떤 일이든 마찬가지 이지만, 그래서 컴퓨터 프로그래밍 이란걸 배울때 아무리 수학이네, 공학이네 하면서 떠들어봤자, 실제 그것을 세상 사람들이 사용하기 위해 내놓을때 가장 크게 작용하는건 "애정" 이 되는것 같습니다. 실력 좋은 프로그래머들은 많지만, "이것을 사용하게 되는 상대방이 사람이다" 라는 것을 잊어버린채 만들어진 물건이 성공하는 꼴은 보지 못했기 때문에, 결국은 사람에 대한 배려와 애정이 좋은 물건이냐, 아니냐를 결정하게 되는 기준이 되어버리더군요. "결국은 사람이다" 라는 말은 이바닥에서도 똑같이 통용되는 것 같습니다. 프로그래밍은 딱딱하고 차가워 보인다는 말은 그래서 헛소리 입니다. (사람이 하는일의 90% 는 사람을 위해 하는 일이기 때문에 어떤 일이든 애정 없이는 잘할 수가 없죠… Love and Peace 가 괜히 나온말이 아니에요.)
프로그래머가 사용하는 복잡한 "부탁" 들을 제어하는 방법중에 가장 기본적인 방법이 바로 오늘 배울 if 입니다.
만약… 만약… 이란 뜻이지요.
어떤 아가씨네 집에 놀러갔어요~
하악… 하악… 뭐 이런거 생각하지 말고, 아가씨가 저에게 물어봅니다.
"커피 줄까?"
전 생각합니다.
'음… 난 커피는 안좋아 하는데… 녹차 없나?'
그리고 말하죠.
"녹차는 없어?"
여기서 변수가 되는것은 "내가 무엇을 좋아하느냐" 가 될 수 있습니다. 이것을 코드로 풀어보자면
이렇게 될 수 있겠네요. 여기에 그녀의 성깔이란 변수를 도입해보면
이렇게도 될 수 있겠죠.
if 라는 문법은 보는바와 같이
if (조건) {
조건이 맞을때의 결과
} else {
조건이 맞지 않을때의 결과
}
와 같이 구성됩니다. 조건이 맞지 않을때 또다른 조건을 제시하는 방법으로는
if (조건) {
조건이 맞을때의 결과
} else if(다른 조건) {
조건이 맞을때의 결과
} else {
뭐 맞는게 하나도 없을때의 결과
}
이렇게 됩니다.
조건을 구성하는 방식으로는 아래와 같은 방식들이 있습니다.
a == b (a 와 b 가 같을때)
a > b (숫자 a 가 숫자 b 보다 클때)
a >= b (숫자 a 가 숫자 b 랑 같거나 클때)
a < b (숫자 a 가 숫자 b 보다 작을때)
크다, 작다의 조건은 당연히 숫자가 들어가야겠죠. 규칙이니깐요.
a = b 는 이미 "a 는 b 이다" 라는 대입(저장하기) 이 가지고 있기 때문에,
a == b 로 해서 "a 와 b 가 같을때" 로 사용합니다.
게임의 경우를 예로 들어보죠
캐릭터의 최초 위치 x, y 좌표를 [0 , 0] 이라고 하고, 움직임이 한 번 발생할때의 이동값을 5로 했을때,
좌, 우, 전, 후의 이동에 따른 움직임을 만들어보죠
대충 읽어보면 아시겠죠? move 라는 변수의 발생을 키보드로 바꾸고, trace() 로 되어있는 위치출력을 무비클립으로 바꾼다면 게임상에서 캐릭터가 4방향으로 움직이게 됩니다.
Boolean, true 와 false
일단 if 를 정확히 이해하기 위해서는 Boolean (불리언) 이라는 것을 알아야 합니다. true 는 참이고, false 는 거짓 이죠. 이건 초딩 산수시간에 배운거니깐 누구나 아는거죠.
참과 거짓에 대한 것은 별달리 어려운 내용이 아니지만, 시각적 사고에 의존하는 디자이너를 비롯한 많은 보통사람들은 쉽사리 몸으로 받아들이지 못하는 개념입니다. 일단 눈에 보이지 않기 때문에 소홀해 지기 쉽죠. 하지만, 말했듯 프로그래밍은 그 동작원리에 대해 아는것이 100번의 경험보다 더 뛰어난 깨달음을 줍니다. 어려운거 하다보면 되겄지… 라는 드래곤볼 식의 수련은 잘안통하죠.
if 문을 이해하기 위해서는 Boolean 과 참, 거짓에 대한 개념을 이해하셔야 해요.




