자바스크립트란?
‘웹페이지에 생동감을 불어넣기 위해’ 만들어진 프로그래밍 언어
프로그래밍 언어라고는 하지만 컴파일 없이 실행이 가능.
예를 들면, 브라우저에서 바로 스크립트를 입력해서 실행이 가능하다.
통상적으로 브라우저에서만 사용하기 위해 만들어졌지만
브라우저 밖에서도 자바스크립트를 돌아가게 해주는 엔진이 있으면
브라우저 외의 환경에서도 동작이 가능하다.
하지만 통상적으로 브라우저 내에서 작동하는 자바스크립트를 기반으로
포스팅을 이어갈 계획이다.
자바스크립트로 브라우저에서 다양한 것들을 할 수 있는데
대표적으로 아래의 작업들을 수행할 수 있다.
- 웹페이지에 새로운 HTML을 추가하거나 기존 HTML, 혹은 스타일 수정하기 ( CRUD )
- 사용자 행동에 반응하기 ( 클릭, 스크롤, 기타 등등.. )
- 클라이언트 측에 데이터 저장하기( 로컬 스토리지 )
그 외에도 다양한 작업들이 가능하고,
불가능한 것들은 사용자의 PC에 접근해서 데이터를 빼내온다던가..
허가받지 않은 다른 사이트에 접근해 데이터를 가져온다던가..
현재 실행되고 있는 브라우저 외부로 뭔가를 하는 등의 작업은
대부분 제약이 걸려있다.
브라우저로 사이트에 접속하면 바로 실행되는 특성때문에,
보안적인 이유로 막혀있는 부분들이라고 생각하면 편하다.
자바스크립트는 바로 실행이 가능하고, html 내에서도<script>
태그로 바로 추가가 가능하기 때문에, 간단한 문제는 정말 간단하게 처리할 수 있고,
모든 주요 브라우저에서 지원을 하고 또 기본 언어로 사용되고 있기 때문에 범용성이 높다.
자바스크립트가 능숙해진 뒤 자바스크립트로 트랜스파일이 가능한 다른 언어를 배운다던가,
혹은 node.js를 이용해 백엔드 작업을 할 수도 있고, 또 mongoDB를 사용해 DB도 경험해 볼 수 있다.
두 가지 자바스크립트
개인적인 생각으로, 자바스크립트는 두가지 팩션으로 나뉘어있다고 생각한다.
스크립트를 작성하고, 데이터 형을 이해하고, 자료구조를 이해하고 문을 작성하고
실제로 코드를 구성하는 코어 자바스크립트와 브라우저를 실제로 다루는
브라우저에 관련된 자바스크립트, 이렇게 두 가지이다.
한쪽만 잘하게 되면 자바스크립트로 스크립트는 잘 짜는데 정작 브라우저에는 적용을 못 시킨다던가,
브라우저에 정말 단순하게만 스크립트를 적용할 수 있던가..
특정 자바스크립트 라이브러리만 쓸 수 있다던가,,
하는 문제가 생길 수 있으니 둘 다 골고루 학습을 해야 한다.
코어 자바스크립트 같은 경우엔 백준이나 프로그래머스 등의 사이트에서 코딩 테스트 연습으로
다양한 케이스를 경험해 보고 학습할 수 있고,
브라우저를 다루는 스크립트의 경우 직접 해보는 것 말고는 답이 없는 것 같다.
물론 브라우저를 잘 다루려면.. html과 css도 기본적인 이해도가 있어야 한다.
정작 css를 모르는데 자바스크립트로 애니메이션을 구현해 봐야 엉성한 사이트가 될 뿐이고,
html 구조가 엉망인 경우 추후 데이터를 호출해 html을 그려줄 때,
즉 초기 마크업이 실제 데이터가 반영되어 변경될 때 레이아웃이 다 깨져버릴 수도 있다.
그러니까 전체적인 자바스크립트 + html + css 이렇게 세 가지 스택이 골고루 성장할 수 록
점점 만들 수 있는 것들도 다양해지고 구현할 수 있는 것도 다양해진다.
요약
- 자바스크립트는 브라우저에서 사용될 목적으로 만들어진 컴파일이 필요 없는 프로그래밍 언어지만 브라우저 외 환경에서도 사용이 가능하다.
- 브라우저 내부에서는 다양한 작업들이 가능하고, 브라우저 밖에선 많은 제약이 걸린다.
- 자바스크립트만 잘하면 프론트 - 백엔드 - DB 다 찍어먹어 볼 수 있다.
- 브라우저를 다루는 영역과 자바스크립트 자체를 다루는 영역이 존재한다.
- html과 css도 중요하다.