본문 바로가기
TIL,WIL

Javascript 톺아보기

by GREEN나무 2024. 10. 22.
728x90

Javascript 톺아보기

https://teamsparta.notion.site/Javascript-1102dc3ef51480dab190dc553d76f812

 

1. Javascript 이란?

주제

자바스크립트란?
자바스크립트(JavaScript)가 언어로서 지닌 특징
Js로 할 수 있는 것
다른 기술들이 Js를 활용하는 방향

요약

자바스크립트는 웹페이지에 생동감을 더하기 위해 개발된 프로그래밍 언어로, HTML에 포함되어 웹브라우저에서 자동으로 실행됩니다. 처음에는 'LiveScript'라는 이름으로 불렸지만, 자바의 인기를 활용하기 위해 자바스크립트로 이름이 바뀌었으며, 자바와는 별개의 독립적인 언어입니다.
자바스크립트는 브라우저뿐만 아니라 서버(Node.js)나 다양한 디바이스에서도 실행 가능합니다. 브라우저에서는 HTML/CSS와 완벽히 통합되어 페이지 조작, 사용자 상호작용, 네트워크 요청 등을 처리할 수 있으며, 메모리나 CPU에 접근하는 저수준 작업은 허용하지 않아 안전한 환경에서 실행됩니다.
또한, 자바스크립트는 간단한 문법을 통해 빠르게 작업할 수 있고, 모든 주요 브라우저에서 기본적으로 지원됩니다. 자바스크립트를 다른 언어로 변환하는 트랜스파일링 언어도 다양하게 존재하여, 더욱 다양한 환경에서 활용이 가능합니다.

인사이트

이번 학습에서 자바스크립트와 주요 프레임워크인 Express.js, Nest.js의 특징을 배웠습니다. 자바스크립트는 웹페이지에 동적인 기능을 추가하는 언어로, 브라우저뿐만 아니라 서버(Node.js)와 다양한 디바이스에서도 실행됩니다. Express.js는 간결하고 유연한 Node.js 기반 프레임워크로, 빠른 개발이 가능하지만 대규모 프로젝트에서는 코드 관리가 어렵다는 단점이 있습니다. 반면, Nest.js는 모듈화된 구조와 TypeScript 통합으로 대규모 애플리케이션에 적합하지만, 학습 곡선이 높고 간단한 프로젝트에는 복잡할 수 있습니다.
향후 자바스크립트의 기본 문법을 실습하고, Express.js를 활용한 API 서버 구축을 통해 미들웨어 사용법을 익히려 합니다. 또한, Nest.js의 모듈화와 TypeScript 사용법을 학습해 복잡한 프로젝트에 적용할 수 있도록 준비할 계획입니다. 그리고 Express.jsNest.js의 장단점을 비교해 프로젝트의 크기와 요구에 맞는 프레임워크를 선택하는 기준을 세울 필요가 있습니다.

 

 

2.Javascript 프레임워크 알아보기

Express.js

Express.js의 특징은 무엇인가요?

간결하고 유연함: Node.js 기반으로 간단하게 웹 애플리케이션과 API 서버를 구축할 수 있으며, 자유로운 사용자 정의가 가능합니다.
미들웨어 아키텍처: 요청과 응답의 흐름을 제어하는 미들웨어 시스템을 통해 각 단계를 명확히 처리할 수 있습니다.
경량화: 기본 기능만 제공하며, 필요에 따라 외부 모듈을 추가하여 기능을 확장할 수 있습니다.

 

장점을 기술해주세요.

간단한 구조: 학습 곡선이 완만하며, 빠르게 애플리케이션을 개발할 수 있습니다.
확장성: 다양한 미들웨어와 플러그인을 사용해 쉽게 기능을 확장할 수 있습니다. 커뮤니티가 활성화되어 있어 다양한 모듈을 활용할 수 있습니다.
Node.js와의 통합: Node.js와 긴밀하게 통합되어, 비동기 처리가 용이하고 성능이 우수합니다.

 

단점을 기술해주세요.

구조적 한계: 프로젝트가 복잡해지면 코드 구조를 관리하기 어려울 수 있습니다. 명확한 아키텍처 없이 자유롭게 개발이 가능하므로 대규모 애플리케이션에서는 유지보수가 힘들 수 있습니다.
기능 부족: 기본적으로 제공되는 기능이 적어, 개발자가 필요한 많은 부분을 직접 구현하거나 추가 모듈을 설치해야 합니다.

 

Nest.js

Nest.js의 특징은 무엇인가요?

모듈 기반 구조: Nest.js는 모듈화된 구조를 제공하여 대규모 애플리케이션을 관리하기 쉽습니다. 각 기능이 모듈로 분리되어 있어 유지보수성과 확장성이 뛰어납니다.
TypeScript 지원: 기본적으로 TypeScript를 사용하며, 정적 타입 검사를 통해 코드의 안전성과 가독성을 높입니다.
Express.js 또는 Fastify 기반: Express.js 위에 구축되어 있지만, Fastify로 쉽게 전환할 수 있어 더 빠른 성능을 얻을 수도 있습니다.
강력한 DI(Dependency Injection): Nest.js는 의존성 주입을 제공해 객체 간의 관계를 명확하게 관리할 수 있어 코드의 유연성과 테스트 가능성을 높입니다.

 

장점을 기술해주세요.

강력한 아키텍처: 모듈화된 구조와 의존성 주입으로 대규모 애플리케이션 개발에 적합하며, 유지보수가 쉽습니다.
TypeScript 통합: 기본적으로 TypeScript를 지원하여 코드 안정성과 개발자 생산성을 높입니다.
확장성: 기본적으로 Express.js를 사용하면서도 필요에 따라 Fastify로 전환할 수 있어 성능을 극대화할 수 있습니다.
테스트 용이성: 테스트를 쉽게 작성할 수 있도록 돕는 도구와 구조가 제공됩니다.

 

단점을 기술해주세요.

학습 곡선: 모듈, DI, 데코레이터와 같은 개념을 이해하고 적용하는 데 시간이 걸릴 수 있어, 초기 학습 곡선이 높습니다.
과한 구조: 간단한 프로젝트에는 지나치게 복잡할 수 있으며, 불필요한 오버헤드가 발생할 수 있습니다.
비교적 느린 개발 속도: Express.js에 비해 복잡한 구조로 인해 초기 개발 속도가 느릴 수 있습니다.