Javascript

JavaScript에 대해 알아보자!

Yepchani 2023. 9. 16. 23:57

들어가며

"웹 개발" 하면 빼놓을 수 없는 자바스크립트!

그럭저럭 사용하고는 있지만 아직 잘 모르겠다고 느끼시진 않나요?

이번 시간에는 알듯 말듯 잘 모르겠는 자바스크립트에게 한 발짝 다가가 보도록 하겠습니다.


자바스크립트란?

자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어입니다.

웹 페이지에 동적인 요소들을 추가하고, 사용자와 상호작용 할 수 있도록 도와줍니다.

 

예를 들어 다음과 같은 일들을 할 수 있습니다.

  • 버튼을 클릭하면 팝업창이 나타납니다.
  • 어떤 항목을 선택하면 관련 정보가 화면에 표시됩니다.
  • 스크롤 위치나 브라우저 크기 변화 등 사용자의 화면 조작에 따라 다른 내용이 표시됩니다.
  • 폼 데이터를 검증하여 올바르지 않은 입력 시 경고 메시지를 보여줍니다.

이런 자바스크립트 없이 HTML과 CSS만 사용해서 웹 페이지를 만든다면 굉장히 심심해지겠죠!

 

조금 더 파헤쳐볼까요?

 

자바스크립트는 ECMAScript클라이언트 사이드 Web API를 아우르는 개념입니다.

ECMAScript는 자바스크립트의 핵심 문법과 기능을 정의한 표준 버전입니다.

Web API는 웹 브라우저에서 제공하는 추가적인 기능을 활용할 수 있도록 하는 인터페이스입니다.

 

Web API를 통해 다음과 같은 기능들을 활용할 수 있습니다.

  • DOM(Document Object Model) 조작
  • AJAX(비동기 데이터 통신)
  • 웹 스토리지
  • 그래픽 작업(Canvas API나 WebGL)
  • 위치 정보(Geolocation API)

자바스크립트의 특징

  1. 동적 타입 언어입니다.
    선언이 아닌 할당에 의해 변수의 타입이 결정(타입 추론)되며, 재할당에 의해 타입이 언제든지 변할 수 있습니다.
  2. 기본적으로 인터프리터 언어입니다.
    인터프리터는 프로그래밍 언어의 소스 코드를 한 번에 한 줄씩 읽어나가며 실행하는 방식을 사용합니다. 대부분의 모던 브라우저에서 사용되는 인터프리터는 전통적인 컴파일러 언어처럼 명시적인 컴파일 단계를 거치지는 않지만, 복잡한 과정을 거치며 일부 소스코드를 컴파일하고 실행합니다.
  3. 명령형 프로그래밍, 함수형 프로그래밍, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어입니다.

    명령형 프로그래밍은 컴퓨터에게 "어떻게" 작업을 수행할 것인지를 명시적으로 지시하는 방식의 프로그래밍입니다. 즉, 단계별로 명령을 내리면서 코드를 작성합니다. 

    함수형 프로그래밍은 "무엇"을 계산해야 하는지에 초점을 맞추며, 상태 변경과 가변 데이터를 피하고자 합니다. 고차 함수(higher-order functions), 순수 함수(pure functions), 불변성(immutability) 등의 개념을 활용하여 함수형 스타일로 코드를 작성할 수 있습니다.

    프로토타입 기반 객체지향 프로그래밍에서는 객체를 직접 만들고, 필요에 따라 이런 객체들을 복제하거나 확장하여 새로운 객체를 만듭니다. 모든 객체는 '프로토타입'이라는 다른 객체를 가리키는 내부 링크를 가지고 있습니다.
  4. 비동기 처리를 지원합니다.
    콜백 함수, Promise, async/await 등을 활용해 비동기 작업을 처리할 수 있습니다. 이런 기능은 서버에서 데이터를 가져오거나 사용자의 입력을 처리하는 등의 작업을 비동기적으로 처리하기 위해 필요합니다.

자바스크립트의 성장과정

자바스크립트는 1995년에 Netscape Communications Corporation의 Brendan Eich가 개발했습니다. 당시에 HTML만으로는 동적인 웹페이지를 만들 수 없는 한계가 있었는데요. 사용자의 입력에 따라 실시간으로 반응하는 동적인 웹페이지를 만들기 위해서는 프로그래밍 언어가 필요했고, 그 결과로 자바스크립트가 탄생하게 되었습니다.

 

처음에는 Mocha라는 이름으로 출시되었으나, 그 후 LiveScript를 거쳐 JavaScript로 이름이 바뀌었고, 이후 ECMAScript라는 이름으로 표준화되었습니다. JavaScript라는 이름은 Java의 인기에 편승하기 위한 마케팅 전략이였는데요. 직접적인 관련성은 없습니다.

 

2005년, 비동기 데이터 통신 방식인 Ajax의 등장으로, 비동기적으로 웹페이지에서 변경이 필요한 부분만 업데이트할 수 있게 되었습니다.

 

2006년, jQuery의 등장으로 DOM을 더욱 쉽게 제어할 수 있게 되었습니다.

 

2008년, 구글의 V8 엔진이 등장하면서 자바스크립트는 데스크탑 앱과 유사한 UX를 제공할 수 있게 되었습니다.

 

2009년, 대망의 Node.js가 등장하며 자바스크립트는 서버 사이드 애플리케이션 개발에서도 사용할 수 있게 되었습니다.

Node.js는 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경입니다. 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 하기 위해 만들어졌습니다. 서버 환경에서 파일 시스템에 접근하거나 네트워크 요청을 보내는 등 웹 브라우저에서 할 수 없었던 일들을 가능하게 합니다.

 

이후 React, Vue, Angular와 같은 자바스크립트 기반 프레임워크 및 라이브러리들이 등장하며 효율적이고 구조화된 방식으로 개발을 가능하게 해주었습니다.


마치며

자바스크립트에 대해 조금은 가까워지셨다고 느끼시나요?

잘 몰라도 물론 사용할 수 있지만 충분한 이해를 바탕으로 한다면 활용하는데 큰 도움이 되지 않을까 생각합니다.

 

잘못된 부분은 지적 부탁드립니다 :D
감사합니다.