오늘은 컴퓨터과학의 이론 지식을 배우고, 이를 바탕으로 앞으로 배울 Javascript의 역사, 구동방식, 쓰임새 등을 알았다.
어제까지 HTML과 CSS에 대해 배우고 앞으로 Javascirpt를 공부하는데 Javascript는 첫째로는 브라우저에서 둘째로는 Node.js에서 구동된다고 한다.
최초의 브라우저는 넷스케이프라고 한다. 이들은 웹이 더 동적으로 변화해야 한다고 생각했다. HTML에 코드를 직접 마크업으로 작성하면서 웹 디자이너와 프로그래머들이 이미지, 플러그인 등의 요소를 쉽게 조합할 수 있는 글루 언어(Glue Language)가 필요했다고 믿었다. 원래 모카(Mocha)라는 이름으로 개발되었지만 공식적으로는 라이브스크립트(Livescript)로 불렸고, 나중에 이름이 자바스크립트로 바뀌었는데 이 언어가 자바 프로그래밍 언어에서 파생되었다는 인상을 심었으며 이런 선택이 마케팅적인 특징을 보였다. 자바와 자바스크립트 사이에는 구문이 유사하다는 점(둘 다 C언어에 바탕을 두었다.)빼고는 실제 관련성이 없다. 두 언어는 의미론적으로 매우 다르고, 각각 개체 모델은 관련성이 없고 상당 부분이 호환되지 않는다.
예전에는 flash가 javascirpt를 대신해줬다고 한다. flash 는 어도비에서 만든 애니메이션을 만드는 프로그램이다. 간단한 액션스크립트를 작성해서 움직이는 모션을 프로그래밍해서 처리할 수 있다.
한 줄을 끝낼 때는 ;으로 끝내준다. 마침표와 같다.
언어 중에는 내 마음대로 작성해도 되는 부분과, 정해진대로 써야하는 부분이 있다.
정해진대로 써야하는 부분을 예약어라고 한다.
변하는 수, 변하는 값이라고 한다.
ES6 변수를 선언하는 예약어
let seongho; //시작을 숫자로 할 수 없다. 특수문자도 입력할 수는 있는데 적당한 것만 가능하다 (_,-같은 거)
seongho = 427; // 변수에 넣는 값들에도 데이터 타입이 존재한다.
출력문이다.
ES6 변수를 선언하는 예약어
수학에서는 1=1 이 '1과 1은 같다.'라면 프로그래밍에서 1=1은 '1이라는 곳에 1을 집어 넣겠다.'를 뜻한다. 우변에 있는 값을 좌변에 쓰여져 있는 걸로 한다.
데이터타입은 단일 데이터타입과 군집형 데이터타입으로 나눈다. 단일 데이터타입이 하나의 변수에 하나의 데이터를 입력하는 반면, 군집형 데이터타입은 변수 하나에 여러 개의 데이터를 입력한다.
숫자. int 정수 boolean(불리언) true false 참거짓 문자 '' "" ``
오늘 배운 숫자(정수)와 불리언, 문자 모두 단일 데이터타입이다
배열 안에는 숫자, 문자(string)상관없이 어떠한 값도 넣을 수 있다.
배열 선언은 대괄호([])를 사용하여 이렇게 한다.
arr= [1,2,3];
앞에 괄호 (4)는 배열된 값의 길이를 나타낸다. 원하는 값만 출력하고 싶을 때는 인덱스를 쓴다.
console.log(변수[인덱스넘버]);
인덱스넘버는 0에서부터 시작한다. 그러므로 여기서 우리가 보통 네번 째로 인식하는 값 4는 사실은 0~3인 인덱스넘버중 마지막, 즉 3번째 이므로 문법에 맞게 입력한다.
선언하는 방법 { }
CSS를 설명할 때 객체는 아니지만 객체형태라고 했었다.
마찬가지로 객체에서도 중괄호 안에 key: value 값을 넣어준다. key는 변수를 가리키는 역할을 한다.
객체안에 변수값만 출력할 수도 있다.
이렇게 console.log(객체.변수이름); 출력하고 싶은 변수값을 가지고 있는 변수이름을 입력하면 된다. obj 안에 name이라는 key를 가지고 있는 value를 출력 해달라는 뜻.
( + - / % ... ) 1++ = 1+1 2++ = 2+2 3++ = 3+3
더하기(+), 빼기(-), 나누기(/), 나눈값의 나머지(%) 등이 있다.
연산할 때 사용하는 연산자이다.
1++, 2++, 3++ 같이 'n++'형태의 것들은 n+n라고 한다.
앞에 있는 데이터타입에 따라서 연산자 역할이 달라진다. 산술연산자 +는 출력문의 함숫값서 연결하려고 하는 데이터의 앞부분이 문자(string)이거나, 그 뒤에 위치해도 +연산자를 연결연산자로 쓴다. 값+값 이다.
값과 값 사이에 들어간다. 누가 크고 작은지, 누가 같은지 연산할 때 쓴다.
결과물을 boolean 타입으로 반환한다. 1=1 같다 참이다. 참이다 라는 개념을 boolean 형태로 표현해준다. > , < , == , >= <=등이 있다.
1.AND && 값(boolean) && 값(boolean)
2.OR || 값 || 값
3.NOT ! !값 !true ! false
논리연산자는 비교연산자와 짝꿍같다. 비교연산자가 두 수를 비교하여 boolean 타입으로 반환해준다고 했다. 논리연산자는 두 개의 boolean을 확인해서 반환하는 연산자다. 1번 값&&값 은 두 값이 모두 T여야 true로 반환하고 둘 중에 하나라도 틀리면 false가 된다. 값&&값 중 '값'에 비교연산자를 활용할 수 있다.
2번 값||값에서는 둘 중에 하나만 참이여도 true값을 반환하고 3번 팩토리얼은 console.log(!(값)); 에서 값의 원래 환산치의 반대를 내놓는다.
위 예시에서는 !(참);이니까 false로 반환된다.
if()안의 값이 참이면 {}안에 있는 출력문을 내놓고 거짓이면 else {} 안에 있는 출력문의 값을 내놓는다.
내가 설정한 조건이 true가 되는 한 계속 반복하겠다는 뜻이다.
false가 되면 반복하지 않는다.
변수 i의 값을 0으로 설정하고, 내가 설정한 변수(0)가 10보다 작은 경우까지만, 산술연산자대로 처리해서 그 안에 있는 for{} 출력문을 내놓겠다는 뜻이다.
변수는 메모리에 저장된다.
API는 모듈은 아닌데 일단 쉬운 이해를 위해 '모듈'이라고 부르고 이해하기로 했다.
해시넷 위키에 따르면 API(에이피아이)는 "Application Programming Interface"의 약자로서, 하나의 응용 프로그램이 다른 응용 프로그램에 요청을 보내고 응답을 받을 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스(I/F)를 말한다. 응용 프로그램 인터페이스 또는 애플리케이션 프로그래밍 인터페이스라고 한다.
운영체제라고 한다. 개인 PC, 스마트폰, 서버컴퓨터, 채굴기 등 각종 컴퓨터 운영에 필요한 하드웨어와 소프트웨어를 제어하고 관리하기 위해 기본적이고 공통적인 기능을 모아둔 시스템 소프트웨어를 말한다. 맥이나 윈도우나 구성화면이 조금씩 다른 건 이 운영체제가 다르기 때문이라고 한다. 대표적으로는 리눅스, 유닉스, 윈도우, 맥이 있다고 한다.
학생이 시험 직전에 벼락치기로 공부하는 것처럼 컴퓨터가 켜져있는 동안만 데이터를 기억하는 공간이라고 한다. 휘발성이다.
메모리와는 대조적으로 컴퓨터가 꺼져있어도 데이터를 계속 기억하는 공간이라고 한다. 비휘발성이다.
연산을 담당하는 부분이라고 한다. 인간의 뇌가 하는 역할과 비슷하다고 한다.
블록체인을 제대로 알려면 16진수를 잘 알아야 한다. 컴퓨터의 특성상 그렇다고 한다. 16진수의 자릿수는 0부터 15까지 표현할 수 있는데 아라비아 숫자는 0~9까지밖에 없다. 그래서 알파벳으로 10~15까지 표현하는데 abc순이다.
a=10, b=11, c=12, d=13, e=14, f=15
16진법을 컴퓨터 분야에서 사용하는 이유는 16진수 자릿수 하나가 2을 표현할 수 있기 때문이다. HTML에서 색상을 표현할 때도 사용한다고 한다.
니블(nibble)은 1바이트의 절반으로 보통 4비트를 가리키는 컴퓨터 환경의 용어이다 . 4개씩 묶는다, 그럼 1니블은 4비트, 4비트는 16가지 내용을 담을 수 있다.
4비트를 한 자리로 표현하면, 2바이트는 두 자리로 표현 가능함
1바이트 = 2니블 = 8비트 인데 32가지
16으로 나눠서 2가지로 표현하면 그나마 사람이 보기 편하다.
프로그램을 잘짠다는 건 어떤 데이터가 들어올지 예상하고 거기에 맞게끔 선언한다.