Node.js는 JavaScript는 브라우저에서만 실행가능한 문제점(?)을 해결하고자 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임입니다.
즉, 노드를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는 데 제일 많이 사용된다.
npm(node package manager)과 yarn은 자바스크립트 런타임인 node.js의 패키지 관리자이다.
npm은 javascript언어를 위한 패키지 관리자로서, 이 npm툴을 이용하여 사람들이 node패키지를 만들고 업로드를하며 공유할 수 있어 누구나 패키지를 사용할 수 있다.
npm명령어
npm init : package.json 생성
npm install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
npm install package_name@버전 : 특정 패키지의 특정 버전 설치
npm install 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
npm install package_name -g : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
npm uninstall : 패키지 삭제 명령어입니다.
npm update : 설치한 패키지들을 업데이트해줍니다.
npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
yarn은 페이스북에서 개발한 패키지관리자로 npm과 비교했을 때 조금더 가벼운느낌의 패키지 관리자이다. npm보다 속도나 안정성측면에서 향상되었다.
yarn명령어
yarn init : package.json 생성
yarn or yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
yarn add package_name@버전 : 특정 패키지의 특정 버전 설치
yarn add 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
yarn global add package_name : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
yarn remove : 패키지 삭제 명령어입니다.
yarn upgrade : 설치한 패키지들을 업데이트해줍니다.
npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
리팩토링
리팩토링이란 이미 작성되어 있는 소스코드에서 작동후 결과는 반드시 동일해야하며, 코드의 가독성과 유지보수적인 측면을 효율적으로 할 수 있도록 소스코드를 재작성하는 것을 말한다.
오늘배운 리팩토링 관련하여 early-exit과 facade방식을 배웠다.
early-exit은 쉽게 생각해서 if문의 조건문에서 true 부분을 false로바꿔 먼저튕겨내버리는 패턴으로 코드의 가독성을 높여준다.
facade패턴은 성처럼 외곽을통해 내부의 내용을 유추하고 변경사항이 있을 시 내부의 소스코드를 찾아서 유지보수하는 방식이다. 겉으로 봤을때 큰 틀을 통해 어떤식으로 이루어져있는지 알 수 있어 가독성을 높여준다.
마지막으로
API를 지금수준에서 정리하자면, 소스코드가 오픈되어있으면 보안관련한 문제가 많이 일어나기에 데이터베이스에 데이터를 넘겨주는 함수이다. 이런방식을 통해 소스코드가 유출이 되지않아 보안성과 안정성이 높아진다고 할 수 있다.
오늘은 부트캠프 1일차 OT를 통해서 강의가 어떻게 진행되는가에 대해 설명을 들으며 오전수업이 시작되었다.
ot시간 이후 알고리즘수업이 어떻게 진행되는지에 대해 설명을 듣고 기초적인 설정을 하면서 간단한 알고리즘 문제도 하나 풀어보았다. 추가로 프리캠프에서 한번 듣고서는 잘안되던 git 관련 사용법에 대해 천천히 알려주셔서 조금더 손에 익은거같다.
점심식사후 백엔드 본수업전까지 오전시간에 들었던 git관련해서 정리도하고 혼자하면서 숙달을했다..
15시부터 백엔드 본수업이 시작되었고 배운 내용은 크게 node.js, npm, yarn에 대한 기본적인 설명과 더불어 정확히 API는 아니지만 관련한 개념설명을 자세히 알려주셨고 리팩토링(early-exit과 facade)를 활용하여 읽기 좋은 코드 정리법에 대해서도 자세한 설명을 해주셨다.