[TIL] Javascript 특징

JongYeon·2025년 4월 15일

TIL

목록 보기
60/69
post-thumbnail

Javascript 특징

싱글 스레드 언어

한 번에 오직 하나의 작업만 실행할 수 있다는 의미, 즉 한줄씩 차례대로 코드가 실행
동시에 여러 작업을 처리하지 않고, 순차적으로 처리하는 방식

❓왜 싱글 스레드 언어로 만들어졌을까❓

자바스크립트는 웹페이지 상에서 유저 인터페이스(UI)를 조작하기 위해 만들어졌다. 만약 동시에 여러 스레드가 DOM을 조작한다면 충돌이 날 수 있기때문에, 안정성과 예측 가능성을 위해 싱글 스레드로 설계했다.

객체 지향 프로그래밍 지원

자바스크립트는 객체를 중심으로 코드를 구조화할 수 있는 객체 지향 프로그래밍(Object-Oriented Programming)을 지원한다. 클래스(class), 생성자 함수(constructor), 상속(inheritance) 등의 개념을 활용하여, 코드의 재사용성과 유지보수성을 높일 수 있다. ES6 이후에는 class 문법이 도입되어 객체지향 방식이 한층 더 명확해졌다.

동적 타이핑

자바스크립트는 동적 타이핑(dynamic typing) 언어로, 변수 선언 시 자료형을 명시할 필요가 없다. 실행 도중 변수의 타입이 바뀔 수 있으며, 개발자가 타입 변환을 수시로 할 수 있는 유연함을 제공한다. 다만, 이로 인해 발생할 수 있는 타입 오류를 방지하기 위해 타입스크립트(TypeScript) 같은 정적 타입 언어가 함께 사용되기도 한다.

함수형 프로그래밍 지원

자바스크립트는 함수형 프로그래밍(functional programming) 패러다임도 지원한다. 함수를 일급 객체로 취급하며, 함수 자체를 변수에 담거나 인자로 전달하고, 반환값으로 사용할 수 있다. 고차 함수, 순수 함수, 클로저, map/filter/reduce 등의 함수형 요소들을 적극적으로 활용할 수 있다.

비동기 처리

자바스크립트는 웹 환경에서 자주 발생하는 네트워크 요청이나 타이머 등의 작업을 효율적으로 처리하기 위해 비동기 처리(asynchronous processing)를 지원한다. 콜백(callback), 프로미스(Promise), async/await 등을 통해 논블로킹 방식으로 동작하며, 사용자 경험을 저해하지 않고 작업을 처리할 수 있다.

profile
프론트엔드 공부중

0개의 댓글