[TIL]macOs - 개발환경 구축

Džeko.Log·2021년 4월 5일
0

TIL

목록 보기
6/8

Homebrew란?

Mac os용 패키지 관리 애플리케이션이다. (App store와 비슷한 역할)

프로그래머들이 주로 사용하는 명령을 통해 컴퓨터를 제어하는 방식이며 프로그램을 설치, 삭제, 검색할 때 주로 사용되는 프로그램이다. (Package Manager)

brew 명령어

  • 프로그램 검색: brew search 검색어
  • 프로그램 정보 확인: brew info 프로그램이름
  • 프로그램 설치: brew install 프로그램이름
  • brew 자체 업데이트: brew update
  • 프로그램 업그레이드: brew upgrade 프로그램이름
  • 프로그램 삭제: brew uninstall 프로그램이름
  • 설치된 프로그램 보기: brew list

wget

웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램으로, GNU 프로젝트의 일부입니다. Wget은 HTTP, HTTPS, FTP 프로토콜을 통해 내려받기를 지원합니다.

nvm이란?(Node Version Manager)

여러개의 노드버전을 사용할 수 있는 도구입니다.
NVM을 통해 간단한 명령어로 node를 설치하고, 다양한 node version을 손쉽게 옮겨 다닐 수 있습니다.

nvm을 왜 사용을 하는가?

  • 여러 버전의 node.js를 쉽게 설치하고 사용할 수 있다.
  • 최신 node.js를 사용할 수 있다.
  • 여러 node.js 버전 간 전환이 쉽다.
brew install wget
// wget 명령어로 nvm 설치

nvm --version
// nvm 버전 확인

nvm install 12.18.3 
// nvm 버전 설치

nvm use 버전넘버
// nvm 버전 사용(관리, 스위치)

node.js란?

Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임이다.
JavaScript를 동작할 수 있도록 하는 환경(플랫폼)

  • 구글 V8 자바스크립트 엔진
  • 고성능 네트워크 서버
  • 단일 쓰레드(Single Thread) 이벤트 루프(Event Loop) 기반
  • 비동기 I/O 처리(Non-Blocking I/O)
  • 자바스크립트
  • 개발 생산성 향상
  • 방대한 모듈 제공(NPM)
nvm install --lts
// nvm으로 lts버전의 node.js 설치

node -v
// node 버전 확인

장점

  • 자바스크립트를 동일하게 사용해서 서버단 로직을 처리할 수 있다는게 가장 큰 장점!
  • 새로운 언어를 습득하지 않고도 자바스크립트를 활용해 서버기술을 빨리 개발/응용할 수 있습니다.
  • 개발이 빠르고 쉽다. 서버 설치부터 화면 띄우는 것까지 금방 처리 됩니다.
  • Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능
  • 로컬에서 서버만 켜봐도 얼마나 가볍게 돌아가는지 알 수 있다.
  • 이벤트 기반 비동기방식이라 서버 무리가 적다.
  • java(jsp)는 쓰레드에 의한 동기방식이라 요청이 오면 반드시 결과를 받은 후에 다음 로직이 처리될 수 있다.
  • npm(node package manager)을 통한 다양한 모듈(패키지) 제공
  • npm을 이용해 자신이 필요한 라이브러리와 패키지를 검색해서 설치하고 사용할 수 있기 때문에 개발속도와 효율성이 크게 향상

단점

  • 이벤트 기반 비동기방식이라 서버단 로직이 복잡한 경우 콜백함수의 늪에 빠질 수 있다. 예를 들어, 한번의 요청에 대해 DB에서 조회한 결과값에 따라 다른 로직을 처리해야 하며, 이런 로직이 여러개인 경우 콜백함수 늪 (Callback Hell) 에 빠진다.
  • 코드를 순차적으로 실행하는 것이 아니라 비동기 방식으로 이벤트를 보내고, 응답(이벤트)이 오면 처리하는 방식이기 때문에 java 개발을 했던 방식으로 설계하고 프로그래밍하면 큰 문제가 발생한다.
  • 단일 쓰레드(Single Thread)이기 때문에 하나의 작업 자체가 많이 걸리는 웹서비스에는 어울리지 않다.
  • 게시판형태와 같이 가벼운 I/O가 많은 웹서비스에 어울린다.
  • 코드가 수행되어야 코드에 에러가 있는지 알 수 있으며, 에러가 날 경우 프로세스가 내려가기 때문에 테스트가 엄청 중요하다. 반드시 모든 케이스에 대해 소스코드를 검증해야 한다.

0개의 댓글