JS의 역사
1995년 자바스크립트 탄생
- 넷스카이프 커뮤니케이션 (LivScript → Javascript)
- 브라우저 동작 스크립트 언어
1999년 자바스크립트 표준화(ECMA-262) 완료
2005년 AJAX 등장
- 비동기 웹 애플리케이션 개발 가능
- 폭발적인 UX 향상
2008년 V8 엔진 출시(Google)
- super fast(코드 실행 속도 상단 부분 개선)
- 컴파일러, 메모리관리 시스템
2009년 Node.js 등장, 서버 개발 활성화
- 서버개발의 지각변동: PHP, Ruby, Python, Java → Javascript(Node.js)
- 하나의 언어 → FrontEnd + BackEnd + DB(MongoDB) = Fullstack
2015년 ECMAScript 6(ES6) 버전 출시
2016년 프론트엔드 프레임워크(React, Vue, Angular) 대중화, SPA 개발 활성화
현재 자바스크립트는 프론트엔드 및 백엔드 개발분야에서 널리 사용되며, Node.JS를 이용한 서버개발도 활발하게 이루어짐
JS 언어의 특징
객체 지향 프로그래밍 지원
자바스크립트는 객체 지향 프로그래밍이 가능한 언어로서, 객체를 생성하고 관리하는 데에 강점이 있으며, 이를 통해 복잡한 기능 구현 가능
객체 지향 VS 절차 지향
절차지향 프로그래밍은 순서대로 실행되는 일련의 과정을 단계적으로 기술하여 프로그램을 만듦
객체지향 프로그래밍은 데이터와 함수를 객체라는 그룹으로 묶어서 처리
절차지향 프로그래밍에서는 첫 번째 일을 처리한 다음에 두 번째 일을 처리하고, 그다음에 세 번째 일을 처리하는 순서대로 프로그램을 만들지만 객체지향 프로그래밍에서는 데이터와 함수를 객체라는 그룹으로 묶어서 처리함.
객체는 상태와 행동을 가지고 있으며, 상태는 객체의 속성(propety)이라고 핢
JS에서 객체를 만들 때?
자바스크립트에서 객체를 만들 때는 중괄호({})를 사용하여 객체를 만들고, 각 속성을 쉼표(,)로 구분하여 추가
속성은 이름과 값을 가지며, 이름은 문자열로 작성하고, 값은 다양한 데이터 타입을 사용할 수 있음
객체 내부의 함수를 메서드(method)라고 부르며, 속성의 값으로 함수를 추가할 수 있음
객체를 만들어서 필요한 속성과 메서드를 추가하여 사용
동적 타이핑
자바스크립트는 동적 타이핑을 지원하는 언어로서, 변수를 선언할 때 타입을 지정하지 않음.
이것은 런타임 시점에 변수에 할당되는 값에 따라 자동으로 데이터 타입이 결정된다는 것을 의미함
let myVariable = "Hello, world!"; // 변수 선언 및 문자열 데이터 타입으로 할당
console.log(typeof myVariable); // "string" 출력
myVariable = 123; // 숫자 데이터 타입으로 할당
console.log(typeof myVariable); // "number" 출력
myVariable = true; // 불리언 데이터 타입으로 할당
console.log(typeof myVariable); // "boolean" 출력
런타임(Runtime)?
프로그램이 실행되는 동안의 시점을 의미
즉, 코드가 실행되는 동안 발생하는 시점을 말하며 반대의 의미로 컴파일이 있음
함수형 프로그래밍 지원
자바스크립트는 함수형 프로그래밍을 지원하는 언어로서, 함수를 일급 객체로 취급하고, 고차 함수를 지원함.
이를 통해 코드의 재사용성과 가독성을 높일 수 있음.
일급객체(first-class object)란?
함수를 일반 값과 마찬가지로 변수에 할당하거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있는 객체를 의미
// 함수를 변수에 할당
const add = function(a, b) {
return a + b;
}
// 함수를 인자로 받는 함수
function calculate(func, a, b) {
return func(a, b);
}
// 함수를 반환하는 함수
function getAddFunction() {
return add;
}
// 함수를 일급 객체로 다루어 코드의 재사용성을 높임
console.log(calculate(add, 2, 3)); // 5
console.log(getAddFunction()(2, 3)); // 5
고차함수(higher-order function)란?
함수를 인자로 받거나, 함수를 반환하는 함수를 의미
// 고차 함수 예시: 함수를 인자로 받는 함수
function operate(func, a, b) {
return func(a, b);
}
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
console.log(operate(add, 2, 3)); // 5
console.log(operate(multiply, 2, 3)); // 6
비동기 처리
작업을 순차적으로 기다리지 않고 병렬로 처리할 수 있도록 하는 방식
클라이언트 측 및 서버 측 모두에서 사용 가능
자바스크립트는 클라이언트 측에서만 사용되는 것이 아니라, Node.js를 이용하여 서버 측에서도 사용됨.
이를 통해 웹 개발 전반에 걸쳐 자바스크립트를 활용할 수 있습니다
'backend > JavaScript' 카테고리의 다른 글
| 자바스크립트 함수 (0) | 2023.10.13 |
|---|---|
| 자바스크립트 연산자 (0) | 2023.10.12 |
| 자바스크립트 형 변환 (0) | 2023.10.12 |
| 자바스크립트 데이터 타입 (0) | 2023.10.12 |
| 자바스크립트 변수와 상수 (0) | 2023.10.12 |
