Slackbot개발팀 스터디 - 1

SSO·2022년 4월 21일
1

LikeLion10th

목록 보기
9/16

Node?

Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임.

JS 런타임 = JS 실행기 = 서버 역할 수행 => 서버X

  • 자바스크립트는 웹브라우저에서만 실행되는 언어
    - 노트를 통해 컴퓨터에서도 자바스크립트가 실행될 수 있게 한다.
  • 서버
    - 클라이언트의 요청에 응답하는 컴퓨터나 프로그램
  • 노트의 장점
    - JS기반 => 하나의 언어로 웹사이트를 개발할 수 있어 생산성 굳

패키지 매니저

npm

  • node package manager
  • 패키지 매니징한다는 건 패키지를 설치 또는 버전관리를 할 수 있다는 것
  • 외부 라이브러리가 필요하면 소스코드를 우리의 프로젝트 안에 넣고 필요한 것은 import해서 사용해야 한다. 라이브러리 패키지들을 관리할 수 있게 도와주는 게 npm

npx

  • 원하는 라이브러리 실행할 수 있게 도와주는 것, 즉 npm은 설치, 업데이트라면 npx는 원하는 패키지를 실행할 수 있도록 도와주는 툴

nvm

  • Node Version manager
  • 협업 또는 다양한 프로젝트를 동시에 진행할 때 다양한 라이브러리/프레임워크/개발툴의 버전 호환 문제 해결 가능
    - 컴퓨터에 다양한 버전의 Node.js를 설치할 수 있게 해줌
    • default 버전을 설정 or 설치한 버전들의 전체 리스트를 확인 or 필요 없는 버전 삭제 등등, 즉 버전 관리가 쉬워진다!

yarn

  • 페이스북에서 만든 패키지 매니저
  • npm보다 빠르고 효율적인 캐시 시스템 + 부가 기능 제공

package.json

  • 설치한 패키지의 버전 관리를 위한 버전 기록용 파일
    - 현재 프로젝트에 대한 정보와 사용중인 패키징에 대한 정보를 담은 파일
    • 같은 패키지라도 버전별로 기능이 다를 수 있으므로 버전을 기록해 두어야 함
    • 동일한 버전을 설치하지 않으면 무조건 문제가 생길 수 있음
  • 노드 프로젝트를 시작하기 전 폴더 내부에 package.json을 만들고 시작해야 함
    yarn init
    yarn install -> package.json에 기록된 노드 모듈들을 설치해줌

노드 실행 및 실습

  • 노드 REPL : node
  • 노드 프로젝트 시작 : yarn init
  • 노드 프로젝트 바로 시작 : yarn init -y
  • 노드 파일 실행 : node 파일명
  • 노드 패키지 설치 : yarn add 패키지명
    + 삭제 : yarn remove 패키지명
  • 노드 개발용 패키지 설치 : yarn add -D 패키지명
  • 노드 package.json에 작성된 패키지 전체 설치 : yarn install

Express / Nodemon

Express

노드 위에서 작동

  • Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크
  • 사용이 편리해 노드에서 가장 보편적으로 사용되는 프레임워크 중 하나
  • node_modules
    - express가 의존하는 패키지들
    • 의존관계가 복잡하기 때문에 package.json이 필요
    • package.json만 있으면 그대로 설치(yarn, npm)하면 되기 때문에 node_modules는 커밋하지 않고 보관할 필요도 없음

Nodemon

node monitor, 개발을 편리성을 높여주는 모듈.

  • 이 확장 모듈을 이용하여 노드가 실행하는 파일이 속한 디렉토리를 감시하고 있다가 개발중인 노드 애플리케이션의 소스 코드를 수정할 때마다 자동으로 노드 애플리케이션을 재시작하여 수정 때마다 매번 노드 명령어를 통해 새로 실행할 필요가 없음! 더 편리함!

그래서 뭐 쓸건데!

처음에는 Express를 사용하려 했지만 Bolt를 사용하기로 결정

Bolt가 뭐에요?

Bolt : Slack 앱을 위한 기본 프레임워크

Bolt는 Javascript, Python 및 Java에서 사용할 수 있는 Slack 앱을 구축할 수 있는 프레임워크다.
Bolt는 앱의 기능에 집중할 수 있도록 많은 기본 설정을 처리하며 기본적으로 제공되는 Bolt에는 다음이 포함된다.

  • 앱을 실행할 기본 웹 서버
  • OAuth의 모든 기능에 대한 인증 및 설치 처리
  • 모든 Slack API 및 앱 기능을 위한 간소화된 인터페이스
  • 자동 토큰 유효성 검사, 재시도 및 비율 제한 논리

Bolt에는 또한 유형 지원이 내장되어 있으므로 코드 편집기에서 바로 더 많은 작업을 수행할 수 있다!

Bolt를 Slackbot 개발에 어떻게 사용할까요>^0^

profile
👩🏻‍💻👊🏻⭐️

0개의 댓글