1. [JavaScript/초보자를 위한 자바스크립트] - 초보자를 위한 자바스크립트 커리큘럼
  2. [JavaScript/초보자를 위한 자바스크립트] - 1. 초보자를 위한 '자바스크립트는 무엇인가?' (feat.프로그래밍을 배우고 싶다면)
  3. [JavaScript/초보자를 위한 자바스크립트] - 2. 자바스크립트 변수(variable)와 자료형(data type)

지난시간에 자바스크립트(JavaScript) 변수와 자료형을 공부했던 것에 이어서 이번에는 비교연산자와 조건문에 대해 공부해보도록 하겠습니다. '초보자를 위한 자바스크립트'에 있는 내용들은 정말 basic하고 모든 프로그래밍 언어에 존재하는 기본 문법들입니다.

 

비교연산자

 

비교연산자란 주어진 값들이 서로 같은지, 다른지, 큰지, 작은지 비교해주는 연산을 수행합니다.

비교연산자를 통해 연산된 결과값으로는 true 또는 false 즉 – 참이냐 거짓이냐 이 2가지만 존재하게 됩니다. 앞서 자료형을 학습했는데, 거기서 boolean형을 언급한 적이 있습니다. 이러한 true 또는 false의 값을 갖게 되는 것이 바로 boolean형 데이터입니다.

 

23 < 4

 true인가요, false인가요?

아래에 23 < 4 라고 입력해서 직접 확인해보세요.

 

4는 23보다 작은 숫자이므로 결과는 false가 됩니다.

 

 ==  변수의 데이터 타입과 상관없이 값이 같으면 참이다.
 ===  변수의 데이터 타입까지 고려하여 값이 같으면 참이다.
 !=  변수의 데이터 타입과 상관없이 값이 다르면 참이다.
 !==  변수의 데이터 타입까지 고려하여 값이 다르면 참이다.
 >  변수의 값이 더 크면 참이다. (초과)
 <  변수의 값이 더 작으면 참이다. (미달)
 >=  변수의 값이 더 크거나 같으면 참이다. (이상)
 <=  변수의 값이 더 작거나 같으면 참이다. (이하)

비교연산자의 종류는 위와 같습니다. 그런데 여기서 ==와 ===이 어떻게 다른지 예시를 통해 살펴볼까요?

*그전에 한가지 주의할 점은 = 과 == 은 다른 종류의 연산자라는 것입니다.

=은 대입연산자로 우항의 값을 좌황에 대입해주겠다-라는 뜻이고, ==는 좌항과 우항의 값을 비교하겠다는 비교연산자입니다.

 

 

저번 시간에 언급했듯이 "문자열"은 따옴표로 둘러싸서 표기해야한다고 했습니다.

하지만 숫자는 따옴표가 필요하지 않았죠.

기억이 나지 않는다면 저번시간 내용을 복습하고 오세요 ^ㅇ^

 

1 이건 숫자 데이터 타입입니다.

'1' 이건 문자 데이터 타입입니다.

 

 데이터 타입이 다르다는 의미입니다. 1은 숫자이고, '1'은 문자이니까요. 

1 == '1' 은 'true'입니다.

1 === '1' 은 false입니다.

 

이제 좀 이해가 되셨나요? 

 

==와 ===가 '같은지'를 따져주는 연산자라면, != 와 !==는 반대의 의미를 갖고 있습니다. 이 연산자는 '다를 경우에' 참(true)을 반환합니다. 위에서 1 === '1'은 false라고 했습니다. 왜냐하면 1은 숫자이고, '1'은 문자여서 자료형이 다르기 때문이었습니다.

 

그렇다면

1 !== '1'

은 무슨 결과값이 나와야할까요? 한번 맞춰보세요!

 

네, 정답은~~~ true(참)입니다. 왜냐하면 1과 '1'은 다르기 때문입니다.

===는 자료형까지 같은 경우 참을 반환하고, !==은 다를 경우에 참을 반환합니다.

 

그리고 5 <= 5 은 참일까요, 거짓일까요?

네, 참입니다. 왜냐하면 왼쪽의 값이 오른쪽값보다 작거나 같으면 '참'을 반환하기 때문입니다.

5 <= 6 또한 참이라고 할 수 있습니다! 

 

이 비교연산자 문제에 대해선 제가 퀴즈도 많이 낼테니 문제를 풀면서 달달달 헷갈리지 않게 익혀주세요^^


조건문

이번엔 이 비교연산자를 활용할 수 있는 '조건문'을 배워보도록 하겠습니다.

조건문은 주어진 조건에 따라서 애플리케이션을 다르게 동작하도록 하는 것 입니다.

if조건문

if ~ else if ~ else 이런식으로 구성이 되어있습니다.

if(조건1) → 조건1일 경우 실행

else if(조건2) → 조건2일 경우 실행

else → 조건1, 조건2 둘다 해당되지 않은 나머지 경우에 실행

 

예를 들어서 우리가 성적을 계산할 때 이용할 수 있습니다.

앞서 배운 '비교연산자'를 이용하여 내 성적과 기준점수(90점)을 비교합니다. 내 성적 78점은 90점보다 작기 때문에 조건 "내성적 >= 90"을 만족하지 못하고 조건은 false를 반환합니다. 이처럼 조건이 false인 경우는 해당 조건에 만족할 경우에만 실행되는 "점수 A주기"를 실행하지 않습니다.

90점 이상은 A, 71~89점은 B, 70점 이하로는 모두 C 라고 합시다. 그럴 경우 아래와 같은 코드를 작성할 수 있습니다. scroe엔 여러분이 바라는 점수를 적어보세요. 여러분의 점수는 몇등급 인가요?

var score = 78; //내 점수
var grade;//내 성적

if(score >= 90) grade = 'A'; //90점 이상은 A

else if(score >= 71 && score <= 89) grade = 'B'; // 71~89점은 B

else grade = 'C'; //70점 이하는 C

alert("점수는 " + grade);

여기서 추가적인 부분을 설명하자면 &&은 and를 의미 [footname] 이와 같은걸 '논리연산자'라고 합니다. 조금 더 자세히 알고 싶으시다면 https://m.blog.naver.com/PostView.nhn?blogId=smilebanner88&logNo=220729516010&proxyReferer=https%3A%2F%2Fwww.google.com%2F 글을 참고해주세요. [/footname] 합니다. score >= 71 (점수가 71점이상) 이면서 score <= 89 (점수가 89점 이하) 일 경우에는 true를 반환합니다. 그러니까 즉 2가지 조건에 '모두' 만족할 경우에만 참인 것입니다. 

 

이런식으로 조건문은

if(조건) → {조건이 '참'일 경우 실행할 내용 } 

 

이런식으로 쓰시면 됩니다. 그리고 이 조건문 안에 들어가는 '조건'은 반환값이 ture 또는 false여야하기 때문에 위에서 우리가 공부한 '비교연산자'가 쓰이는 것입니다.

 

만약 처음부터 조건 자체가 'false'(거짓)이라면 아무것도 실행되지 않습니다.

우리가 위에서 했던 예시를 바탕으로 해보자면

if(23 < 4){
alert('실행될 내용');
}

이렇게 입력해보시면 아마 아무것도 실행되지 않을 겁니다. 이유는 23<4는 false이기 때문이죠. 이처럼 조건문은 조건이 거짓일 경우에는 작동하지 않습니다.

*퀴즈는 모바일에선 지원되지 않습니다.

3과 비교연산자와 조건문 퀴즈

  • 30 <= 30 은 참인가 거짓인가?

거짓(false)
참(true)

  • '2' === 2 는 참인가 거짓인가?

거짓(false)
참(true)

  • '2' !== 2 는 참인가 거짓인가?

거짓(false)
참(true)
 

*이전글 :

0. 초보자를 위한 자바스크립트 커리큘럼

1. 초보자를 위한 '자바스크립트는 무엇인가?' (feat.프로그래밍을 배우고 싶다면)

 

 

이번 시간에는 자바스크립트(JavaScript)의 변수와 자료형에 대해서 공부하는 시간을 가져보도록 하겠습니다.

 

먼저 변수와 자료형은 모든 프로그래밍 언어에서 존재하는 아주 기초적인 부분입니다.

외국어 공부할 때도 기본적인 뼈대가 되는 문법이 존재하는 것과 마찬가지입니다. 


 

0. 실습을 위한 준비작업

별도의 개발 프로그램을 설치하는 과정 없이 그냥 codesandbox 웹사이트(https://codesandbox.io)를 이용하도록 하겠습니다.

1. codesandbox에 회원가입을 하고 로그인을 합니다. 그러면 바로 dashboard창이 뜰텐데 그렇지 않은 분들은 우측 하단에서 프로필 이미지를 누르고 dashboard를 클릭합니다.

2. Dashboard에서 create sandbox를 클릭합니다.

3. vanila 를 클릭합니다.

4. 빨간색으로 표시한 부분은 전부 지워주세요. 

이제 실습을 위한 준비가 완료되었습니다!


변수(Variable)란?

변수는 영어로 variable이라고 하며, 쉽게 얘기해서 "데이터를 저장하는 공간"이라고 생각하시면 됩니다.

변수는 '변하는 수'라는 뜻입니다. 왜냐면 변수 안에 든 데이터들은 수시로 바뀔 수 있기 때문입니다. 예를 들어서 제가 이 블로그 포스팅의 제목을 수정할 수도 있고, 글 내용을 수정할 수도 있는 것처럼 말이죠. 변수를 선언할 땐
var 변수명 = 변수 안에 넣을 데이터 값;
이런식으로 쓰시면 됩니다. var은 변수를 선언하겠다는 것을 의미하며 생략해도 되지만 의미가 있기 때문에 일단 꼭 써주도록 합시다.


자료형(Data Type)이란?

데이터의 종류를 나타내는 것 입니다. 

 

 자바스크립트에는 이렇게 5가지의 데이터 타입이 있습니다.

  • string 문자열
  • number 숫자
  • boolean 참, 거짓(true, false)값 [각주:1]
이게 의미하는 건 그냥 이런 종류의 데이터들이 변수에 들어갈 수 있다는 것 입니다.

일단은 이렇게만 알아두시고 object(객체)와 function(함수)은 이후에 배워봅시다!


2. 실습

 

 

alert("hi");​

위 코드를 codesandbox에 적으시면 알람 창이 뜰 것입니다. alert는 그냥 그런 용도로 알아두시면 됩니다.

※hi와 같은 문자를 입력할 때는 꼭 "" 따옴표를 붙여주시고, 문장에 마침표를 찍듯 코드의 마지막에는 ; 를 붙여주시기 바랍니다.

var name = "김커피";

이는 name이라는 변수를 선언하고, 그 변수 안에 "김커피"라는 문자 데이터를 넣어줬습니다.

현재 name이라는 변수 안에는 "김커피"라는 데이터가 들어있는 것 입니다.

 

var name = "김커피";
alert(name);

이렇게 적어주면 이번엔 알람창 안에 김커피 라는 값이 뜨죠?

이유는 name이라는 변수 안에 "김커피"라는 데이터가 들어있기 때문입니다.

var name = "김커피";
name = "김커피2";
alert(name);

이런식으로 name변수 에 있는 데이터를 수정할 수 있습니다.

알람창에는 "김커피"가 아니라 "김커피2"가 뜰 것입니다. 왜냐면 name이라는 변수 안에 데이터값이 김커피->김커피2로 변화했기 때문입니다. 이처럼 변수 안에 있는 값은 바꿀 수 있습니다.

alert("김커피");

만약 이런식으로 썼다면 알람창 안의 메세지를 계속해서 지우고 다시  쓰는 작업을 반복해야할 것입니다.

그러나 name이라는 변수를 선언하고 그 안에 데이터를 넣어줬다면, 그냥 name = " "; 이런식으로 name안에 값을 바꿔서 넣어주면 됩니다.  

 

Edit 2j2go

*이를 통해 실제 위의 코드 결과값을 확인해볼 수 있습니다. 

 


3. 응용(사칙연산)

1
2
3
4
5
6
7
8
9
10
11
12
var age = 18;
//18+2 = 20
age = age + 2// age += 2; 와 같이 쓸 수도 있다.
//20-5 = 15
age = age - 5// age -= 5; 와 같이 쓸 수도 있다.
//15*10 = 150
age = age * 10// age *= 10 곱셈
//150/5= 30
age = age/5// age /= 4 나눗셈
 
alert(age);
 
cs

이번엔 age라는 변수에 18이라는 숫자를 넣었습니다. 문자와 다르게 숫자는 ""따옴표가 필요하지 않습니다.

덧셈, 뺄셈, 곱셈, 나눗셈 이와 같은 사칙연산은 + - * / 기호를 통해 할 수 있고 위의 예제와 같이 작성하실 수 있습니다.

참고로 // 은 주석을 표시하는 것으로 코드에는 영향을 미치지 않고 '이해를 돕도록 코드를 설명' 할 때 쓰이는 것입니다. 

 

실제로 위 코드를 따라서 차분히 쳐보시고 알람창에 정말로 30이 뜨는지 꼭 확인해보세요!


4. 퀴즈

 

*퀴즈는 모바일버전은 지원하지 않습니다.

2과.변수와 자료형 퀴즈

  • boolean자료형이 가질 수 있는 값은?
숫자
참/거짓
문자
정수

  • 나눗셈을 하려면 어떤 기호를 써야하는가?
+
-
*
/

 

 

 

 

 

 

  1. 이 boolean형에 대해서는 다음시간에 비교연산자를 공부할때 자세히 알 수 있습니다. [본문으로]

 

<초보자를 위한 자바스크립트 커리큘럼>

 

1.An introduction of JavaScript & What can you do with JavaScript?

2.Variables & Data types

3.Comparisons & Conditional operators (vending machine example)

4.Array and Loops (calendar example)

5.Functions (calculator example)

6.Objects (to-do-list example)

7.Guideline for Next Step!

...더보기

1. 자바스크립트에 대한 아주 간략한 소개 & 자바스크립트를 통해 무엇을 할 수 있는지 소개 =동기부여

2. 자료형과 변수

3. 비교문과 조건문 - 이를 통해 간단한 자판기를 만들어봅니다

4. 배열과 반복문 - 이를 통해 달력을 만들 수 있습니다

5. 함수 - 이를 통해 계산기를 만들어봅시다

6. 객체 - to do list를 만들어봅시다

 

 

*교육대상 : 프로그래밍에 관심은 있으나 프로그래밍에 대한 지식이 없는 중고등학생 이상의 학습자들 

*교육목표 : 자바스크립트(JavaScript)가 무엇인지 이해하고, 간단한 예제와 함께 자바스크립트에 대한 기본적인 문법 지식을 이해한다. (beginner수준이라고 보시면 됩니다)

 

 


초보자를 위한 자바스크립트 카테고리에 업로드될 콘텐츠들은

위와 같은 커리큘럼으로 진행될 예정입니다.

 

*마지막으로 모든 교육 콘텐츠 업로드 이후 이 교육콘텐츠를 통해 목표에 달성한 학습자들을 위해 다음 단계의 학습 가이드라인(다음으로 무엇을 공부할지 제공할 예정입니다. 이는 beginner수준에서 더 나아가 advanced 수준의 학습을 원하는 학습자들에게 도움이 될 것입니다.

이 글은 프로그래밍에 관심은 있으나 프로그래밍이 뭔지, 왜 배워야하는지 구체적인 목표가 없는 고등학생 이상을 대상으로 한 포스팅입니다. 이 글을 통해서 프로그래밍 언어 중 하나인 JavaScript가 무엇인지, 그리고 프로그래밍을 공부함으로써 무엇을 얻을 수 있는지에 대한 개념을 최대한 쉽게 설명하고자 합니다. 


0. 왜 프로그래밍을 배워야 하는가?

먼저 우리는 왜 프로그래밍 언어를 배워야할까요? 이제는 프로그래밍이 의무교육이 될 정도로 중요시되고 있는데 그저 '중요하고 다들 배우려한다'정도로 알고 있을 뿐 그 이유를 명확히 아는 사람들은 많지 않은 것 같습니다. 특히 개발자를 꿈꾸지 않는 사람이라면 더더욱 왜 공부해야하는지 그 이유가 불명확해집니다.

 

구글검색결과

 

  • 선택할 수 있는 직업의 폭이 넓어진다.
  • 문제해결능력을 기를 수 있다.
  • 아이디어를 현실화할 수 있다.
  • 이제는 코딩을 모르면 도태될 수 있다.
출처: https://taegon.kim/archives/9716

여러 인터넷자료들과 제 경험을 비추어보았을 때 가장 와닿고 현실적인 이유들을 꼽아보았습니다.

이제는 IT직군 뿐만 아니라 기타 산업군에서도 코딩능력을 필요로 하고 있습니다. 그렇기 때문에 프로그래밍을 할 줄 알면 선택할 수 있는 직업의 폭이 넓어집니다.  혹은 코딩 능력을 통해 다른 지원자들과의 차별점을 만들 수 있습니다.

또한 코딩을 통해 간단한 프로그램을 개발하여 반복적인 업무를 간편하게 단순화하고, 추상적인 아이디어를 현실화할 수 있으며, 코딩을 통해 문제해결능력을 키울 수도 있습니다.

게다가 이제는 코딩이 의무교육이 된 때입니다. (얼마나 실효성이 있을진 모르겠지만;) 지금은 막 의무교육이 도입된 시점이라 체감할 수 없겠지만, 앞으로는 코딩을 모르면 도태되는 때가 올 수도 있지 않을까 하는 염려도 있습니다.

 

1. 자바스크립트로 선정한 이유

 

  • 프로그램을 설치하는 사전작업이 필요 없어서

  • 직관적으로 실행결과를 눈으로 볼 수 있어서
  • 비교적 다른 프로그래밍언어에 비해 배우기 쉬워서

일단 기초적인 수준의 *프론트엔드 개발을 공부하는 데 있어서 자바스크립트는 별도의 프로그램을 설치하여 복잡하게 개발환경을 구축할 필요 없습니다. codesandbox나 codepen과 같이 브라우저에서 작동하는 에디터들을 사용하여 간편하게 자바스크립트 프로그래밍을 할 수 있다는 장점이 있습니다.

 

*프론트엔드 개발: 쉽게 말하면 사용자들의 눈에 보이는 웹화면을 개발하는 것입니다.

*백엔드 개발: 반대되는 개념으로 백엔드 개발이 있고, 사용자들의 눈에 보이지 않는 뒷부분- 서버개발 등을 의미합니다.

 

또한 실행결과를 웹브라우저를 통해 볼 수 있어서 바로 바로 실행결과를 직관적으로 확인할 수 있다는 장점이 있습니다. 그리고 웹 브라우저에서 동작하다보니 운영체제의 제한을 받지 않습니다. 

 

마지막으로 다른 프로그래밍 언어들에 비해 비교적 진입장벽이 낮고 배우기 쉽다는 장점이 있습니다. 보통 프로그래밍 언어를 공부할 때 C언어를 시작으로 하는 경우가 많은데 C언어는 비교적 어려운 언어라서 초반부터 너무 어려움을 느끼고 쉽게 공부를 포기할 수 있다는 단점이 있다고 생각합니다.

 

덧붙이자면 자바스크립트는 수요도 많은 편이라 전망 있는 프로그래밍 언어로 볼 수 있습니다.

 

2. 자바스크립트란?

 


자바스크립트
(영어: JavaScript)는 객체 기반 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. (출처: 위키백과)

 

위는 위키백과에 나와있는 자바스크립트에 대한 설명입니다. 여기서부터 낯선 단어들이 등장하죠.ㅋㅋ 객체 기반? 스크립트 프로그래밍 언어? 서버사이드 네트워크 프로그래밍? 벌써부터 뭔가가 어려워보입니다. 그냥 쉽고 간단하게 설명하도록 하겠습니다.

 

자바스크립트는 우리가 사용하는 웹브라우저 (크롬, 인터넷 익스플로러러 등등)에서 동작하는 프로그래밍언어입니다.

 

웹페이지의 구성요소

우리가 방문하는 모든 웹페이지들은 모두 html, css, 그리고 JavaScript 이렇게 3가지로 구성되어있습니다.

먼저 html은 웹의 '내용들'입니다. 예를 들면 제가 이렇게 작성하고 있는 글의 내용, 제목 등이 되겠습니다. 

그리고 CSS는 이런 html이 보여주는 콘텐츠를 보기 좋게 예쁘게 꾸며주는 역할을 담당합니다. 예를 들면 글의 폰트나 색상과 같은 '디자인적인 요소를 담당'하죠.

마지막으로 JavaScript'동작'을 담당합니다. 예를 들면 html로 버튼을 하나 만들어 넣고, css로 그 버튼을 예쁘게 디자인합니다. 그리고 그 버튼을 클릭해서 발생하는 동작은 javascript가 담당하는 것입니다.

 

3. 자바스크립트로 무엇을 할 수 있는가?

 

그렇다면 자바스크립트를 배워서 우리는 무엇을 할 수 있을까요?

https://www.grandcircus.co/blog/10-things-you-can-build-with-javascript/

 

10 Things You Can Build with JavaScript - Grand Circus - Tech Training

JavaScript is the most widely used programming language in the world. But what does it build? Learn about 10 things you can build with JavaScript.

www.grandcircus.co

위 글을 참고하여 아래 자바스크립트로 할 수 있는 것들을 적어보도록 하겠습니다.

 

  • 웹사이트 개발
  • 웹서버 개발
  • 게임 개발
  • 모바일 앱 개발

자바스크립트는 독보적인 웹프로그래밍 언어로 웹페이지, 웹서버를 개발할 수 있습니다. 웹을 개발하고 싶으시다면 무조건 자바스크립트를 공부해야 합니다. 

뿐만 아니라 간단한 게임도 만들 수 있습니다. 그리고 요새 핫한 모바일 개발 또한 안드로이드 프로그래밍을 배우지 않고, 자바스크립트로 개발할 수 있습니다.

이밖에도 VR/AR이나 사물인터넷까지 충분히 다양한 분야에 자바스크립트를 활용할 수 있습니다. 


 

 

+ Recent posts