프로그래밍이란 ?
프로그래밍은 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.우리는 프로그래밍을 하기 전 무엇을 실행하고 싶은지 정의할 필요가 있다.다시말해, 해결해야 할 문제를 정확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다는 말이다.
하지만, 대부분의 문제는 복잡하며, 명확하지 않을 수 있다.
그렇기에 프로그래밍은 정확하고 상세하게 요구사항을 설명하는 작업이며 그 결과물이 바로 코드이다.
컴퓨터는 우리와 달리 논리적, 수학적 사고를 하기 때문에 우리가 프로그래밍을 하기 위해선 컴퓨터적 관점에서 바라보는 것이 중요하다.
이를 도와주는 역할을 하는 것이 프로그래밍 언어 이다.
그런데 .. 프로그래밍 언어를 기계가 알아먹을 수 있나 .. ?
아니다. 그래서 컴퓨터가 알아 들을 수 있도록 기계어로 변환 한다.이를 "컴파일러" 혹은 "인터프리터"라고 하는 것이다.
그렇다면, 프로그래밍 언어는 그냥 막 치면 되겠네 !
바보같은 소리 ,, 프로그래밍 언어는 구문과 의미의 조합으로 표현된다. 즉, 아무리 문법이 맞아도 의미가 없다면 소용이 없다는 것이다.
프로그래밍의 목적은 문제해결이다. 그러니까 요구사항이 실현되야 의미가 있다는 말이다.
결국, 프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환 후 그 흐름을 제어하는 것이다.
자바스크립트란 ?
우리가 앞으로 배울 자바스크립트는 대단한 친구다.
1995년 웹 페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경향프로그래밍 언어를 도입하기로 결정하는데,
그래서 탄생한 것이 바로 브렌던 아이크가 개발한 자바스크립트다.
자바스크립트는 현재 모든 브라우저의 표준 프로그래밍언어로 자리 잡았다.
하지만, 자바스크립트의 성장은 순탄한 편이 아니었다.
오잉 ..? 왜지
자바스크립트가 탄생한지 얼마되지 않은 시점, JScript가 출시됐다. JScript는 웹 브라우저의 시장 점유율을 높이기 위해 탄생한 것이였고, 자바 스크립트와 적당히 호환되어 크로스 브라우징 이슈를 만들었다.
이에 따라 사람들은 표준화된 자바스크립트가 필요했고, 넷스케이프 커뮤니케이션즈는 ECMA 인터네셔널에 자바스크립트 표준화를 요청한다. 초창기 자바스크립트는 그저 HTML과 CSS를 렌더링하는 역할 뿐이었지만, Ajax의 등장으로 이전의 페러다임을 획기적으로 전환 시키기 시작했다. Ajax는 서버로 부터 필요한 데이터만 전송 받아 변경할 수 있었고, 웹브라우저도 더 부드러워졌다.
그리고 2006년 jQuery의 등장으로 DOM을 더욱 쉽게 제어할 수 있었고, 크로싱 브라우저 이슈도 어느 정도 해결이 되었다.
그 후 2008년 V8 자바스크립트 엔진으로 빠르게 동작하는 자바스크립트 엔진이 탄생했고, 프로그래밍 언어로 자리 잡게 되었다.
거대한 변화, Node.js의 등장
Node.js란
2009년 라이언 달이 발표한 Node.js는 V8 스크립트 엔진으로 빌드된 자바 스크립트 런타임 환경이다. Node.js는 자바스크립트 엔진을
브라우저에서 독립시킨 자바스크립트 실행 환경
어떻게 동작하죠 .. ?
비동기 I/O를 지원하고, 단일 스레드 이벤트 루프 기반으로 동작한다. 점차 이렇게 성장한 자바 스크립트는 개발 규모도 커졌지만, 복잡도도 상승했다. 그래서 **SPA가 등장하게 된다.
**SPA프레임워크
애플리케이션 아키텍쳐 구축을 돕기 위해 등장
ex) Angular, React, Vue.js, Svelt
자바스크립트 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 별도의 컴파일을 수행하지 않는 인터프리터 언어
- 명령형, 함수형, 프로토타입 기반,객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어
'JavaScript' 카테고리의 다른 글
[모던 자바스크립트] 스코프 (0) | 2022.07.05 |
---|---|
[모던 자바스크립트] 함수 (0) | 2022.07.05 |
[모던자바스크립트] 원시값과 객체의 비교 (0) | 2022.07.04 |
[모던 자바스크립트] 객체 리터럴 (0) | 2022.07.04 |
[모던 자바스크립트] 변수 & 표현식과 문 (0) | 2022.06.24 |