프로그래밍과 자바스크립트

이보아·2024년 9월 10일
0

모던_자바스크립트

목록 보기
5/18
post-thumbnail

📌 01장 프로그래밍

✅ 프로그래밍이란?

0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업

✅프로그래밍 언어

사람이 사용하는 언어 체계와 다르기 때문에 직접 명령을 전달하는 것은 매우 어려워 컴파일러 혹은 인터프리터를 사용해서 컴퓨터와 대화한다. 이런한 프로그래밍 언어는 구문 과 의미의 조합으로 표현된다.

✅ 구문과 의미

문법을 잘 안다고 해서 외국어를 잘한다고 말할 수 없듯이, 프로그래밍도 마찬가지로 문법을 정확히 이해한 후에, 문법에 맞는 문장을 구성하는것은 물론 의미를 가지고 있어야 언어의 역할을 충실히 수행할 수 있다.

const number = 'string';
console.log(number * number); // NaN
  • 문법적으로 전혀 문제가 없지만 의미적으로는 옮지 X, number라는 이름의 변수에는 숫자를 할당하는 것이 의미적으로 옳다.

👉 결국 프로그래밍은 요구항의 집합을 분석해서 적절한 자료구조 + 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.


📌 02장 자바스크립트란?

✅ 자바스크립트의 탄생

1995년, 넷스케이프 커뮤니케이션즈에서 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입함 이것이 브랜던 아이크가 만든 자바스크립트이다. 그러나 자바스크립트의 파생 버전인 JScript가 출시되어 위기를 맞는다.

이름 변경
모카 → 라이브스크립트 → 자바스크립트

✅ 자바스크립트의 표준화

마이크로 소트트는 자바스크립트의 파생 버전 JScript를 인터넷 익스플로러에 탑재 → 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는 기능 추가 → 크라스 브라우징 이슈 발생

이로 인해, 표준화된 자바스크립트의 필요성이 대두되고 ECMA 인터내셔널에서 표준화된 ECMAScript가 탄생됨

2009년에 ECMAScript5가 HTML5와 함께 표준 사양이 출현하고 이후로는 작은 버전업만 한다.

✅ 자바스크립트 성장의 역사

초창기 자바스크립트는 웹의 보조적인 기능을 수행하기 위해 한정적인 용도로 사용하였습니다.

  • Ajax
    자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능이다.

  • jQuery
    jQuery의 등장으로 DOM을 더욱 쉽게 제어하고, 크로스 브라우징 이슈도 많이 완화 됬다. 배우기 쉽고 직관적인다.

  • V8 자바스크립트 엔진
    V8 자바스크립트 엔진 등장으로 웹 어플리케이션 구축이 더욱 빠르게 작동하게 된다.
    웹 서버 수행 → 클라이언트로 이동하게 됨

  • SPA 프레임워크
    복잡해진 개발 과정을 수행하기 어려워져 이에 따라 많은 패턴과 라이브러리가 출현 했지만 부족함 → 프레임워크 등장

👉 SPA가 대중화 되면서 Angular, React, Vue.js, Svelte등 다양한 SPA 프레임워크/라이브러리가 등장함.

✅ 자바스크립트 특징

웹 브라우저에서 동작하는 유일한 프로그래밍 언어

인터프리터 언어이며 대부분의 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결함.

또한 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어 이면서 다른 객체지향 언어와의 차이점이 있긴 하지만 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어다.

✅ ES6 브라우저 지원 현황

브라우저에서 아직 지원하지 않는 최신 기능을 사용하거나 인터넷 익스플로러나 구형 브라우저를 고려해야 하는 상황이면 바벨(Babel)과 같은 트랜스파일러를 사용한다.


📌 03장 자바스크립트 개발환경과 실행 방법

✅ 자바스크립트 실행 환경

브라우저와 Node.js 용도가 다르기 때문에 이에따라 지원하는 API들이 다르다.

✅ Node js

프로젝트 규모가 커짐에 따라 프레임워크 또는 라이브러리 도입, Babel, Webpack, ESLint등 여러가지 도구를 사용하기 위해 Node.js와 npm이 필요함.

✅ Node.js와 npm소개

Node.js는 자바스크립트를 브라우저 이외의 환경에서 동작시킬 수 있는 자바스크립트 실행환경

npm은 자바스크립트 패키지 매니저로, Node.js 사용할 수 있는 모듈들을 패키지화 해서 모아둔 저장소 역활, 패키지 설치 및 관리를 위한 CLI를 제공한다.

참고 사이트 🙇‍♀️

모던 자바스크립트 Deep Dive - 1~5장

profile
매일매일 틀깨기

0개의 댓글