컴퓨터에게 일을 시키는 작업 내역을 쓰는 것이 코딩(또는 프로그래밍)이다.
컴퓨터는 사람처럼 말귀를 알아듣는 생명체가 아니므로 기계적 입장에서 논리를 구성하고 이를 순서에 맞춰 작성해 나가야 한다.
이러한 작업 내역을 적는 형식은 다양하고, 이를 우리는 코딩 언어(또는 프로그래밍 언어)라고 한다.
그중 가장 접하기 쉬운 JavaScript(자바스크립트) 언어를 수업의 개발도구로 선정하였고, 이를 기반으로 앞선 수업 #1~#5 까지를 진행 하였다. 모든 사람의 컴퓨터에 설치되어 있는 웹 브라우저인 크롬, 마이크로소프트 엣지 등의 프로그램에서 작성과 실행이 가능하게 하기 위한 선택이었다.
다른 프로그램 언어를 배우려면 해당 언어를 이해하는 통역사인 인터프리터, 또는 컴파일러를 설치하여야 하기 때문이다.
그리고 언어의 기본적인 구조를 설명하기보다는 초보자가 함께 관심을 가질 만한 사칙연산에 기반한 문제 몇 가지를 풀어 보았다. 이를 한 번쯤 정리하고 또 다른 문제를 풀어보기로 한다.
코딩의 기본 기능 3가지를 앞서 이야기했다.
1. 대입
2. 반복
3. 조건 비교
우리가 배운 내용을 기반으로 하나씩 짚어 보자.
1. 대입
- 변수
나는 대입이라고 하지만, 정식 명칭인지는 모르겠다.
이 기능은 변수와 밀접한 관계가 있다.
왜냐하면 특정한 변수에 특정값을 넣는 것을 대입이라고 이름 붙였기 때문이다.
그래서 먼저 변수에 대해 알아보고 대입에 대해서도 알아보자.
앞선 수업에서
var num=100;
var x;
과 같은 형태로 변수를 지정하였다.
var는 변수를 선언하는 것으로 그다음 나오는 단어 이름에 무언가를 보관해 두겠다는 것을 보여준다.
-변수의 형태(Type)
우리는 특정한 변수에 여러 가지 값을 넣을 수 있다.
숫자를 넣을 수도 있고(number),
문자를 넣을 수도 있고(string),
옳고 그름을 판단하는 참, 거짓을 넣을 수도 있고(Boolean)...
이렇게 3가지의 변수 형태뿐 아니라 더 많은 변수형이 있지만,
당분간 이 3가지 형태의 변수만을 알고 있다면 별 무리 없이 수업에 따라올 수 있다.
특정한 변수의 변수 형태(Type)를 알고 싶으면
typeof 변수명
과 같이 명령하면 된다.
저작도구에서 확인해 보면
위와 같은 결과를 보여준다.
설사 우리가 해당 변수의 Type이 무엇인지 결정하지 않고 데이터를 넣어도 이렇게 시스템에서 타입을 결정해 주는 것이다.
- number의 경우는 실수와 정수 등 모든 숫자 형태의 자료가 대입된 경우고,
- string은 문자가 대입된 경우로 string 데이터는 양 끝에 큰따옴표 " 나 홑 따옴표 '를 붙여서 이것이 스트링 임을 구분해 준다.
- boolean은 참과 거짓 만을 가지므로 true, false 두 값만을 가질 수 있다.
기타의 변수 Type은 해당 문제를 풀어 나갈 때 더 자세히 살펴보도록 하자.
-변수명
JavaScript에서는 해당 변수가 어떠한 형태의 값을 가질지 미리 판단할 필요는 없는 언어이다.
그러나 변수의 이름을 잘 정하고, 용도를 명확하게 정하는 것은 코딩을 진행하는 기본적인 자세이다.
변수명은 다른 변수의 이름과 구분이 되게 만들어져야 하며, 다음과 같은 규칙이 필요하다.
- 변수명은 문자로 시작하여 숫자, 언더바(_), 달러 사인($)을 포함할 수 있다.
- 소문자 대문자를 구분한다. 그러니까 xyx와 XYZ는 다른 변수명이다.
- JavaScript가 기본으로 지정한 키워드는 변수명으로 사용할 수 없다.
앞선 예제에서 본 for와 같은 단어는 변수명이 될 수 없는 것이다.
변수명을 정할 때는 그 변수가 할 역할에 맞는 이름을 지정해 주어야, 나중에 해당 프로그램을 유지 보수할 경우 쉽게 해당 변수의 기능을 추정할 수 있다.
그러니 좀 긴 변수명을 사용하게 되더라도 정확이 그 변수의 역할에 맞는 이름을 정해 줄 필요가 있다.
만일 첫 번째 숫자라면 그 이름을
var x; 로 하기보다는
var firstNum; 이라고 해주는 것이 차후에 구분하기 좋다는 것이다.
물론 반복을 위해 사용하는 반복의 제한 숫자와 같은 경우는 x,y,z,i,j,k 등과 같이 한자리 변수명을 사용하여도 무방하다.
-변수의 사용법
변수는 데이터의 값을 보관하거나, 계산식의 결과를 보관하거나 하는 과정을 통하여 사용되게 되는데, 이렇게 데이터를 보관하는 것을 대입이라고 이름 붙인 것이다.
자바스크립트(JavaScript)는 앞서 말한 바와 같이 데이터 형에 대한 구분을 타이트하게 구분하지 않지만 이로 인하여 데이터 형의 혼란이 있을 수 있다.
아래의 예를 살펴보자.
x에는 숫자 4를 대입하고,
y에는 문자 "5"를 대입하고,
z에는 숫자 23을 대입하였다.
그리고 간단한 연산식 3가지를 풀어보았는데,
첫 번째 x+z는 우리가 예상한 정답이 나오지만,
두 번째 세 번째처럼 문자가 포함된 연산식이 있을 경우
해당 연산식에 포함된 모든 숫자들 역시 문자로 처리되는 것을 알 수 있다.
다른 코딩 언어에서는 이런 경우 오류가 발생하는 경우가 많으나, JavaScrip에서는 이러한 결과를 보여주게 되는 것이다.
x+y의 경우 숫자 4가 문자로 변환되어 "45"로 문자 값이 출력되고,
y+z의 경우에도 "523"으로 더하기 순서에 맞추어 문자 값이 출력되는 것을 알 수 있다.
한 가지 더 추가하여 테스트해 볼 것은 Boolean(논리형)이다.
앞선 예제에 몇 가지를 추가해 보았다.
보는 바와 같이 논리형의 경우 그것이 true일 경우 숫자형의 타입의 변수 또는 값과 만나면 그 값이 숫자 1처럼 사용되고, 문자형 타입의 변수 또는 값과 만나면 true라는 문자형의 값으로 치환된다.
이렇게 변수 타입을 혼란스럽게 사용할 경우는 많지 않지만, 혹시라도 코딩에서 에러가 발생할 경우 이러한 문제가 그 에러를 유발하는지 살펴볼 필요가 있을 것이다.
변수를 잘 지정하고 해당 변수에 적절한 값을 대입하는 것은 코딩의 기본이다.
이야기가 길어져서 반복과 조건 비교는 다음 이야기에서 진행하도록 한다.