본문 바로가기
게임 개발 수업

자바 스크립트 알아보기

by parkjongdi 2024. 7. 15.
728x90
반응형

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

자바스크립트로 작성한 프로그랩을 스크립트라 부른다.

스크립트는 웹페이지의 HTML 안에 작성할 수 있는데, 웹페이지를 불러올때 스크립트가 자동으로 실행된다.

스크립트는 특별한 준비나 컴파일 없이 작성할 수 있고 실행도 가능하다.

 

자바스크립트의 엔진의 종류도 다양하다. 

V8- Chrome과 Opera에서 쓰임.

SpiderMonkey- Firefox 에서 쓰임.

 

자바 스크립트만의 강점

-HTML/CSS와 완전히 통합할 수 있음

-간단한 일은 간단하게 처리할 수 있게 해줌

-모든 주요 브라우저에서 지원하고, 기본 언어로 사용됨.

 

 

Javascript 프레임워크 알아보기

Express.js

 

특징:
-미니멀하고 유연한 구조: Express는 최소한의 기능만 제공하여 필요한 기능을 추가할 수 있도록 설계됨

 

-라우팅: HTTP 요청 메소드(GET, POST 등)와 URL 패턴에 따라 요청을 처리할 수 있는 라우팅 기능을 제공함.


-미들웨어 지원: 다양한 미들웨어를 통해 요청 처리 과정을 세분화하고 확장할 수 있음.


-템플릿 엔진의 선택: 개발자가 선호하는 템플릿 엔진을 사용할 수 있음.


-HTTP 유틸리티 메소드: HTTP 요청과 응답을 위한 다양한 유틸리티 메소드를 제공하여 개발 생산성을 높임.


장점:
-간결하고 직관적인 구조: 핵심 기능에만 집중하므로 학습 곡선이 낮고 쉽게 시작할 수 있음

 

-높은 유연성: 필요에 따라 미들웨어를 추가하고 커스터마이징할 수 있어 다양한 프로젝트에 적합

 

-활발한 커뮤니티와 생태계: 많은 개발자들이 사용하고 있어 지원과 문서가 풍부

 

-Node.js와의 호환성: Node.js와 잘 통합되어 있어 비동기 처리를 효율적으로 할 수 있다.

 

-풍부한 미들웨어 라이브러리: 다양한 미들웨어를 통해 개발 생산성을 높일 수 있다.


단점:

 

-상대적으로 낮은 추상화 수준: 복잡한 애플리케이션을 구축할 때는 추가적인 코드 작성이 필요할 수 있다.

 

-설계의 자유로움으로 인한 일관성 부족: 프로젝트가 커질수록 일관된 구조를 유지하기 어려울 수 있다.

 

-기본 기능 외의 추가적인 모듈 필요: 특정 기능을 위해서는 추가적인 모듈이 필요할 수 있어 초기 설정에 시간이 소요될 수 있다.

 

Nest.js

특징:

 

-모듈러 구조: Nest.js는 모듈을 사용하여 애플리케이션을 구성하며, 각 모듈은 관련된 기능을 캡슐화하여 관리할 수 있다.

 

-Angular 스타일의 의존성 주입(DI): 의존성 주입을 통해 컴포넌트 간의 느슨한 결합을 유지하고 테스트 가능한 코드를 작성할 수 있다.

 

-강력한 미들웨어 지원: Express와 유사한 HTTP 요청 처리 기능을 제공하며, Express 미들웨어도 호환됨.

 

-간편한 테스팅: 모듈화된 구조와 의존성 주입을 통해 단위 테스트와 통합 테스트를 쉽게 작성할 수 있다.

 

-강력한 에러 핸들링: 세밀한 에러 처리와 예외 관리를 지원하여 안정적인 애플리케이션을 구축할 수 있다.

 

장점:

 

-Angular와의 유사성: Angular 개발자들에게 친숙하며, Angular의 구조와 패턴을 Node.js 개발에 적용할 수 있다.

 

-타입 안정성: TypeScript를 기본 언어로 사용하여 코드의 안정성과 가독성을 높일 수 있다.

 

-스케일링 용이성: 모듈화된 구조와 강력한 의존성 주입을 통해 대규모 애플리케이션의 개발과 유지보수가 용이하다.

 

-확장성: 다양한 미들웨어와 라이브러리를 지원하며, 커스텀 모듈을 통해 기능을 쉽게 확장할 수 있다.

 

-활발한 커뮤니티: 지속적인 개발과 업데이트가 이루어지며, 커뮤니티 지원이 활발하다.

 

단점:

 

-학습 곡선: Express.js보다는 학습이 조금 더 steep할 수 있으며, Angular와 비슷한 구조를 선호하지 않는 개발자들에게는 다소 생소할 수 있다.

 

-성능 부하: Express.js보다는 추가적인 추상화와 모듈화로 인해 약간의 성능 부하가 발생할 수 있다.

 

-커스터마이징의 복잡성: 특정 기능을 구현하거나 커스텀해야 할 때, 일부 개발자들은 Nest.js의 고도의 추상화와 구조화된 접근 방식이 불편할 수 있다.

 

 

728x90
반응형