
JavaScript :
- 웹 브라우저에서 HTML 문서에 내장한 자바스크립트를 읽으면 즉시 해석되며
소스코드가 실행된 결과를 눈으로 볼 수 있는 클라이언트 사이드(프론트 엔드) 언어이다.
- 웹 페이지에서 특정 부분을 클릭하거나 입력했을 때 팝업 창 띄우기,
애니메이션 효과, 통신 등의 다양한 기등들을 추가할 수 있다.
JS의 주요 특징 :
- 객체기반 언어이며 HTML 문서내에 내장되어 프로그래밍 요소를 추가할 수 있다.
- 모든 객체는 숨겨진 링크인 프로토타입을 갖고 있다.
-
인터프리터 언어로서 클라이언트 웹 브라우저에서 실행된다.
-
문맥을 만들고 자신의 클로저를 구현하여 실행한다.
(클로저 : 함수와 그 함수가 선언될 당시의 환경을 함께 기억하는 기능을 가진 개념)
-
Node.js 프레임워크를 이용해 백엔드 개발에서도 사용 가능하다.
(Node.js 프레임워크 : 효율적 웹 개발/관리 지원, 각 특징에 따라 다양한 선택지 제공)
-
객체형 및 함수형 프로그래밍 모두 표현이 가능하다.
- 객체형 프로그래밍 : 데이터와 해당 데이터를 처리하는 동작을
하나의 단위로 묶어 관리하는 프로그래밍 접근 방식
-
함수형 프로그래밍 : 함수를 일급 객체로 취급하여 함수 조합을 통해
데이터를 처리하는 프로그래밍 접근 방식
JS의 활용 범위 :
-
새로운 로드 없이 클라이언트가 요청한 기능의 동작을 구현할 수 있으며 HTML 페이지에서 새로운 요소, 콘텐츠, DOM(Document Object Model)의 추가와 삭제가 가능하다.
-
CSS 파일을 이벤트에 따라 변경하여 HTML 페이지의 화면을 실시간으로 바꿀 수 있고 웹 페이지 사용자들의 요청(입력, 클릭)에 따른 폼의 유효성 검증이 가능하다.
-
웹 브라우저 제어와 브라우저의 쿠키를 설정할 수 있으며 AJAX
(Asynchronous JavaScript and XML) 방법론을 통한 서버 통신이 가능하다.
(AJAX 방법론 : 웹 페이지에서 비동기적으로 서버와 데이터를 교환하는 기술)
JS의 장점 :
-
HTML 파일 내에서 작성하고 바로 작동시켜 볼 수 있기에 개발의 속도가 빠르고 웹 브라우저에서 동작하기 때문에 OS의 제한을 받지 않으며 여러 환경서 개발이 가능하다.
-
또한 NodeJS를 활용하면 프론트/백엔드 모두 개발이 가능하다.
JS의 단점 :
-
웹 브라우저 상에 소스코드가 노출되어 있어 공개가 되기에 보안이 취약하고 컴파일을 하지 않아도 되기 때문에 복사하여 그대로 사용될 수 있다.
- 한정된 객체, 객체 함수를 제공하기에 개발 시 오류에 대한 여러 사항을 고려할 필요가 있다.
- 참고 문헌 :
https://m.blog.naver.com/mincoding/221734711066
https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8