프로그래밍이란 ...
사람이 이해할 수 있는 약속된 구문(syntax)으로 구성된 프로그래밍 언어를 사용하여 프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 변역기를 사용하게 되는데,
이 변역기를 ‘컴파일러’ 혹은 ‘인터프리터’라고 함
프로그래밍 언어는 구문(신택스)와 의미(시맨틱스)의 조합으로 표현됨
→ 프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것임
자바스크립트란?
브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 것은 크로스 브라우징 이슈라 함
서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능인 Ajax는 XMLHttpRequest라는 이름으로 등장했음
→ Ajax 로 인해 웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링하는 방식이 가능해짐 ⇒ 비동기 방식
jQuery의 등장으로 DOM을 더욱 쉽게 제어할 수 있게 되었고 크로스 브라우징 이슈도 해결됨
Node.js는 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경임
브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경임
Node.js는 비동기I/O를 지원하며 단일 스레드 이벤트 루프 기반으로 동작함으로써 요청 처리 성능이 좋음
SPA 프레임워크는 CBD(Component based development)방법론을 기반으로 하는 프레임워크 이며, Angular, React, Vue.js, Svelte 등 다양한 종류의 프레임워크 및 라이브러리가 있음
ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 말하며, 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정함
자바스크립트 = ECMAScript + 브라우저 별도 지원 클라이언트 사이드 Web API(DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등)
자바스크립트는 별도의 컴파일 작업을 수행하지 않는 인터프리어 언어이며 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어임
→ 프로토타입 기반의 객체지향 언어임
자바스크립트 개발 환경과 실행 방법은?
브라우저 ← HTML, CSS, JS를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것이 주된 목적이며 클라이언트 사이드 Web API 지원
Node.js ← 브라우저 외부에서 JS 실행 환경을 제공하는 것이 주된 목적이며 ECMAScript와 Node.js 고유의 API를 지원
Npm은 자바스크립트 패키지 매니저이며 Node.js에서 사용할 수 있는 모듈들을 패키지화해서 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI를 제공함
웹 크롤링이란 서버에서 웹사이트의 콘텐츠를 수집하기 위해 웹사이트에서 HTML 문서를 가져온 다음, 이를 가공해서 필요한 데이터만 추출하는 것임
개발자 도구 기능
- Elements : 로딩된 웹페이지의 DOM과 CSS를 편집해서 렌더링된 뷰를 확인 (편집 내용이 저장은 X)
- Console : 로딩된 웹페이지의 에러를 확인하거나 자바스크립트 소스코드에 작성한 console.log 메서드의 실행 결과 확인 가능
- Sources : 로딩된 웹페이지의 자바스크립트 코드 디버깅
- Network : 로딩된 웹페이지에 관련된 네트워크 요청 정보와 성능 확인
- Application : 웹 스토리지, 세션, 쿠키 확인 및 관리 가능
실습을 위해 codepen 온라인 에디터를 사용하거나 , vscode에서 coderunner을 이용하여 실습을 진행할 것이다.
'언어 > JS' 카테고리의 다른 글
| 기본 연산자 (1) | 2023.05.09 |
|---|---|
| 형변환 (Type Conversion) (1) | 2023.05.09 |
| 사용자와 상호작용 할 수 있는 대화 상자 (alert, prompt, confirm) (2) | 2023.05.09 |
| 자료형 (1) | 2023.05.09 |
| 변수 (0) | 2023.05.09 |