본문 바로가기

JavaScript

JaveScript(자바 스크립트) 와 Framework (프레임 워크)

자바 스크립트

 

  • 자바 스크립트 란?

자바 스크립트는 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그램이다.

자바 스크립트로 만들어진 프로그램을 Script(스크립트) 라고 하는데 

스크립트는 특별한 준비다 컴파일 없이 보통의 문자 형태로 작성할수있고 실행도 할수 있다.

 

자바(Java)자바 스크립트(Java Script)

자바 스크립트는 처음에는 Live Script 라는 이름을 사용했으나 
당시 자바 의 인기가 매우 높아 자바의 동생 격으로 홍보하는게 
이름을 알리기 더 좋을것으로 판단하여 자바 스크립트 로 이름을 변경하였다.
이름은 자바에서 따왔지만 완전 독립적인 언어로 아무런 연관이 없다. 

 

 

자바 스크립트 는 브라우저 뿐 아니라 서버에서도 실행이 가능하다.

자바 스크립트 엔진 이라 불리는 프로그램이 들어있는 모든 디바이스에서 동작한다.

브라우저 에는 자바 스크립트 가상 머신 이라는 엔진을 사용하는데 엔진의 종류가 다양하며

특유의 코드네임 을 가지고 있다.

 

 자바스크립트 가상 머신 코드네임

1. V8 - Crome,Opera

2.Spider Monkey - Fire fox

IE 
는 버전에 따라 Trident Chakra 라는 엔진을 사용한다.

 

엔진 동작 기본 원리


파싱 : 컴퓨터 과학 및 프로그래밍에서 특정 형식으로 구성된 데이터를 분석하고 그 의미를 이해하는 과정을 의미한다. 파싱은 주로 텍스트 기반 데이터를 해석하거나, 프로그래밍 언어의 소스 코드를 이해하거나, 문서를 구조화하고 내용을 추출하는 데 사용된다.
컴파일 : 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어 주는 과정.

프로세스 단계마다 최적화를 진행
컴파일 이후로도 데이터 분석후 최적화함으로써
스크립트 실행속도는 더욱 빨라진다.

 

자바 스크립트 는 실행 환경에 상당한 영향을 받는다.

 

브라우저 환경 : 웹페이지 조작 클라이언트와 서버의 상호작용에 관한 모든일을 할 수 있다.

Node.js 환경 : 임의의 파일을 읽거나 쓰고, 네트워크 요청을 수행하는 함수를 지원한다.

 

  • 브라우저에서 자바 스크립트로 할 수 있는 일
  • 페이지에 새로운 HTML 을 추가하거나 기존 HTML,혹은 스타일 수정하기
  • 마우스 클릭이나 포인터의 움직임 , 키보드의 키 눌림 등 과 같은 사용자 행동에 반응하기
  • 네트워크를 통해 원격 서버에 요청을 보내거나 파일 다운로드 , 업로드하기
  • 쿠키를 가져오거나 설정하기 , 사용자에게 질문을 건네거나 메세지 보여주기
  • 클라이언트 측에 데이터 저장하기 (로컬 스토리지)

 

 

  • 브라우저에서 자바 스크립트로 할 수 없는 일

브라우저는 보안을 위해 자바 스크립트 에 제약을 걸어두었는데

이는 악성 웹페이지 가 개인정보에 접근하거나

사용자의 데이터를 손상하는 것을 막기위해서이다.

 

  • 웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽거나 쓰고,복사하거나 실행할때 제약을 받을수 있다.운영 체제가 지원하는 기능을 브라우저가 직접 쓰지 못하게 막혀있기 때문이다.
  • 브라우저 내 탭과 창은 대개 서로의 정보를 알수없다. 그런데 자바 스크립트를 사용해 한창에 다른창을 열때는 예외가 적용된다. 하지만 이 경우에도 도메인이나 프로토콜, 포트가 다르면 페이지에 접근할수 없다.이런 제약을 동일 출처 정책 (Same origin policy) 이 라고 한다.

이런 제약사항이 개인정보를 훔치는걸 막아준다.

 

  • 자바 스크립트의 강점
  • HTML / CSS 와 완전히 통합할수 있다.
  • 간단한 일은 간단하게 처리할수 있다.
  • 모든 주요 브라우저에서 지원하고 , 기본언어로 사용된다.

 

프레임워크

 

 

  • 프레임워크 란?

프레임워크는 소프트웨어 개발에서 특정작업을 쉽게 수행할수 있도록

미리 정의된 구조와 규칙을 제공하는 소프트웨어 환경이다.

프레이워크는 개발자가 공통으로 사용되는 기능을 재사용할수 있게하여

개발속도를 높이고 코드의 일관성을 유지하며, 유지보수를 용이하게 한다.

  • 공통적인 기능을 미리 구현해두어 개발자가 이를 재사용 할 수 있게 한다.
  • 개발자가 따라야할 규칙과 구조를 제공하여 코드의 일관성 유지
  • 반복적인 작업을 줄이고 기본적인 기능을 빠르게 구현할수 있게한다.
  • 표준화된 구조와 모듈화를 통해 코드의 유지보수가 쉬워짐

프레임워크 는 일반적으로 라이브러리와 혼동될수 있지만

라이브러리 는 특정 기능을 수행하는 도구의 모음이고

프레임워크 는 더 큰 구조와 흐름을 제공하며 개발자가 그 안에서 코드를 작성하게 한다.  

 

 

Express.js 와 Nest.js
  • Express

Express 는 Node.js 를 위한 가벼운 프레임워크다.

 

  • Express 의 특징

Express 는 필수적인 기능만들 제공하는 미니멀리즘 웹 프레임워크다.

필요에 따라 새로운 기능을 쉽게 추가할수있는 유연성과 모듈서을 가지고있어

빠르고 효율적인 개발이 가능하다.

 

  • Express 의 장점
  • 학습이 쉽고 사용하기 간편하여 초보 부터 숙련된 개발자들 모두에게 적합하다.
  • HTTP 요청을 처리하기 위한 다양한 미들웨어 기능을 지원한다.
  • 강력한 라우팅 시스템을 제공하여 다양한 HTTP 요청을 쉽게 처리 할 수 있다.
  • 다양한 템플릿 엔진을 지원하여 동적 HTML 페이지를 쉽게 렌더링 할 수 있다.
  • 다양한 DB 를 지원하며 Node.js DB 모듈과의 연동도 가능하다.
  • Express 의 단점
  • 기본적인 기능만 제공하기 때문에 복잡한 기능이 필요한 경우 추가적인 모듈이나 미들웨어를 사용해야한다.
  • 미들웨어나 서드파티 라이브러리를 많이 사용하면 오버헤드가 증가할수있다.

오버헤드(overhead)

더보기

어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 메모리 등을 말한다.

(예시 : A  = 10초 , A+B = 20 초 , A 라는 10초짜리 작업에 B라는 추가작업이 들어가 10초가 늘어났다 이 10초를  오버헤드 라고한다 . )

 

 

  • Nest

Nest.js 는 Node.js 를 위한 프레임워크이다.

효율적이고 확장가능한 엔터프라이즈급 백엔드 애플리케이션을 구축할때 사용된다.

 

  • Nest 의 특징

타입스크립트 를 사용하여 타입 안정성을 제공하고 더 나은 가독성과 유지보수성을 가진 코드베이스를 만든다.

 

  • Nest 의 장점
  • 프로젝트를 별도의 블록으로 나누어 관리할수있게 해주는 모듈식 구조를 제공한다.
  • 테스트 가능하고 유지보수가 쉬운 애플리케이션을 만들기위한 아키텍처를 제공한다.
  • 개발의 생산성과 편의성을 높이는 강력한 CLI를 제공한다.
  • Nest의 단점
  • 처음접하는 개발자에게는 러닝커브가 가파를수있다.
  • 초기 설정과 구상 작업이 복잡하다.
  • 수많은 외부 라이브러리와 패키지에 의존하고있어 패키지의 업데이트나 변경으로 인해 예상치못한 문제나 충돌이 발생 할 수 있다.

 

'JavaScript' 카테고리의 다른 글

원시 자료형, 백틱  (0) 2024.07.10
변수선언,대입연산자,비교연산자  (1) 2024.07.09
개발 용어 정리  (0) 2024.07.08
Node.js 의 특징과 장단점  (1) 2024.07.05
jQuery 연습하기  (0) 2024.06.21