Javascript 돌아보기

김동욱·2024년 10월 17일

자바스크립트란?
동적 웹 프로그래밍 언어
자바스크립트 엔진이 있는 환경에서 동작한다.
코드 기능에 따라 지원하는 엔진이 다를 수 있다.

  • V8 - Chrome, Opera에서 쓰이는 엔진
  • SpiderMonkey - Firefox에서 쓰이는 엔진
  • 그 외 Trident, Chakra, SquirrelFish 등.

브라우저 환경에서 웹페이지 조작, 클라이언트와 서버의 상호작용에 관한 모든 일을 할 수 있다.
하지만 사용자의 보안을 위해 운영체제가 지원하는 기능을 직접 쓰지 못하게 막혀있다.

  • 파일 읽기, 쓰기, 복사, 실행
  • I/O 디바이스 제어(카메라, 마이크)
    또한 서로 다른 탭 또는 창 간에 접근 불가

Javascript의 강점

  • HTML/CSS와 완전히 통합할 수 있음
  • 간단한 일은 간단하게 처리할 수 있게 해줌
  • 모든 주요 브라우저에서 지원하고, 기본 언어로 사용됨
  • CoffeScript, TypeScript, Flow, Dart 등으로 작성된 코드도 트랜스파일 후 브라우저에서 실행이 가능.

**Express.js**
  • Express.js의 특징은 무엇인가요?
    가볍고 자유도가 높은 Node.js 웹 프레임워크. 기본적인 웹 서버 및 API 구축에 유용함.
    비동기 처리 방식을 지원하여 고성능 서버 구축에 적합
  • 장점을 기술해주세요.
    설정이 간단하고 필요한 기능만 추가할 수 있어 빠르고 쉽게 시작할 수 있다.
    다양한 모듈과 미들웨어를 제공한다.
    자유도가 높아 원하는 애플리케이션 구조를 만들기 쉽다.
  • 단점을 기술해주세요.
    자유도가 높아 규모가 커지면 구조 관리가 어려워질 수 있다.
    일부 기능을 구현하기 위해 많은 설정과 모듈 통합을 요구할 수 있다.

Nest.js

  • Nest.js의 특징은 무엇인가요?
    모듈화된 구조, 모듈을 통해 코딩 가능.
    TypeScript 기반, 정적 타입 검사를 통해 안정적인 코드 작성 가능.
    의존성 주입을 지원하여 코드의 재사용성을 높여준다.
    (의존성 : 타 클래스의 객체 생성 없이 정상적인 실행이 불가능한 성질)
    (의존성 주입 : 타 클래스의 객체를 생성하도록 하지 않고 외부에서 객체를 주입하게 하는 것)
    Express.js 위에서 작동한다. Fastify와도 호환이 가능하다.
  • 장점을 기술해주세요.
    모듈 기반 설계로 대규모 애플리케이션 구성 시, 코드의 가독성과 유지보수성을 높여준다.
    TypeScript의 정적 타입 시스템을 활용해 런타임 오류를 줄이고, 대규모 프로젝트에서 타입 안정성을 제공한다.
    일관된 코드 스타일을 유지할 수 있도록 규칙을 제공하여, 협업과 유지보수에 유리하다.
  • 단점을 기술해주세요.
    코드 구조와 패턴이 복잡하다.
    설정도 Express.js에 비해 복잡하며, 초기 설정이 시간이 걸린다.
profile
갓겜만들어야지

0개의 댓글