자바스크립트는 웹페이지에 생동감을 불어넣기위해 만들어진 프로그래밍 언어이다.
자바스크립트로 작성한 프로그랩을 스크립트라 부른다.
스크립트는 웹페이지의 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의 고도의 추상화와 구조화된 접근 방식이 불편할 수 있다.
'게임 개발 수업' 카테고리의 다른 글
개발 용어 정리 (중학생도 알아들을 수 있을정도로) (0) | 2024.07.17 |
---|---|
게임 서버 트랙에서 자바스크립트를 학습하는 이유 (0) | 2024.07.16 |
생활 코딩 HTML&internet (0) | 2024.07.12 |
개발 아티클 스터디 (0) | 2024.07.11 |
게임 서버의 역사 (0) | 2024.07.10 |