[SSAC 3기] - 12주차-(1)

SangHoon·2021년 10월 19일
1

SSAC 3기과정

목록 보기
20/22
post-thumbnail

11주차 - (1),(2),(3) 은 머신러닝 학습 기간이였는데 skip!!!!

🧶Node.js


Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임입니다.

  1. Node.js
    • 오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼
    • 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다
  2. 장점
    • JavaScript 언어로 서버단 로직을 처리할 수있다.
    • 비동기방식이라 서버 무리가 적다.
    • 다양한 모듈을 제공하고, 효율성이 좋다.
  3. 단점
    - 싱글 스레드 모델이라 하나의 작업이 오래 걸릴시 성능이 떨어진다.
    - 비동기 방식이라 서버단 로직이 복잡한 경우 콜백지옥에 빠질 수 있음
    - 작업내용 변경시 서버를 껐다 켜야한다. ( 이건 nodemon으로 해결가능 )

📡동기와 비동기


동기와 비동기의 차이는 작업을 처리하고자 하는 시각의 차이!!

  1. 동기(Sync)

    • 요청과 결과가 동시에 일어나는 것
    • 장점 : 설계가 간단하고 직관적 ( 요청과 결과가 바로 보인다 )
    • 단점 : 보내는 쪽이 무작정 기다려야 한다. ( 결과가 주어질때까지 무한정 대기 )
  2. 비동기(Async)

    • 요청과 결과가 동시에 일어나지 않는 것
    • 장점 : 결과가 오지 않아도 다른 작업을 할 수 있다. ( 자원을 효율적으로 사용 가능)
    • 단점 : 설계가 복잡하다.

🤹‍♂️NPM( Node Package Manager )


Javascript로 구성된 소프트웨어들을 설치하고 관리하는 데 도움이 되는 프로그램 ( yarn을 놔두고.. )

  1. NPM

    • Node.js 개발자들이 패키지(모듈)의 설치 및 관리를 쉽게 하기 위해 도와주는 매니저(관리 도구)
  2. 장점

    • 설치와 관리가 용이하다.
    • 세계 최대 규모의 패키지들을 보유
  3. 단점

    • 패키지가 많아짐에 따라 빌드 성능이 떨어짐
  4. 자주 사용하는 명령어

    • npm init : package.json을 생성
    • npm install : 패키지를 설치
    • npm update : 설치한 패키지를 업데이트
    • npm dedupe : 중복된 패키지를 정리

🎍Express


Node.js 를 위한 빠르고 개방적인 웹 프레임워크

  1. Express

    • NodeJS를 사용하여 서버를 개발하고자 하는 개발자들을 위하여 서버를 쉽게 구성할 수 있게 만든 프레임워크
    • React, Vue, Angular 와 같이 client-side의 프레임워크가 아니라 "server-side" 또는 "back-end"의 프레임워크
  2. 장점

    • node.js 미들웨어의 표준
    • 간단하고 최소화 되어있음
    • 템플릿이나 렌더링 기능을 거의 즉시 사용할 수 있다.
  3. 단점

    • 코드가 사이즈가 증가할수록 리팩토링이 어렵다
    • 서버를 빠르게 구현하기 위해 자유로운 대신 통일성이 떨어짐 -> 큰 프로젝트에 많은 개발자들이 nest.js를 사용함

🔩EJS ( Embedded JavaScript )


JavaScript가 내장되어 있는 html파일

  1. EJS

    • Node.js 및 Express.js를위한 가장 인기있는 템플릿보기 엔진 중 하나
    • 많은 javascript로 HTML을 출력해야 할때 유용하게 쓰인다.
  2. 사용방법

    • ejs 설치 후 app.js에서 require 메서드로 호출
    • views폴더 만들고 안에 index.ejs, test.ejs 와 같이 파일 생성후 안에 아래와 같이 작성
    • ejs 사용설정하기
    const ejs = require("ejs");
    app.set('views', __dirname + 'views');
    app.set('view engine', 'ejs);
    • <% %> 태그 사용하기
    <body>
        <% for (var i=0; i<5; i++) { %>
            <h3>hi zini</h3>
        <% } %>
    </body>
    • <%= %> 태그 사용하기
    <body>
    <% for (var i=0; i<5; i++) { %>
        <h3><%= i+1 %>hi zini</h3>
    <% } %>
    </body>

😏이전에 만들었던 서버에 설치


개인프로젝트 할 때 만들었던 서버에 이어서 진행!!
로컬, 서버에 둘다 설치가능함( 항상 로컬에만 했었는데 신기방기 )

  1. putty 서버에 로그인한다
  2. node.js 설치를 한다
    apt-get install nodejs
  3. npm 설치를 한다.
    apt-get install npm
  4. 폴더를 만든다
    mkdir nodejs-ssac
  5. 폴더안으로 이동한다
    cd node.js -ssac
  6. 패키지 설치(프로젝트 시작)
    npm init
  7. 여러가지 작성하는거 나오는데 전부 엔터로 skip 하고 마지막에 y 입력하여 끝냄
  8. ls 명령어 입력하여 package.json이 있는거 확인
    ls
  9. vsc에서 f1 -> ftp ~~ workspace -> nodejs-ssac -> . 으로 열기
  10. express 모듈 설치
    npm install express
  11. ejs 설치
    npm install ejs
  12. body-parser 설치
    npm install body-parser

※ 로컬에선 default로 'npm run start' 로 실행시켰었는데,
서버에선 'node app.js'로 실행시킨다.
(물론 변경가능!)

📚과제(실습)


코코낸내 z.Z..Z

  • django 에서 했던 것처럼 form 전송
  • 부트스트랩으로 꾸미기
  • text만 주고받지말고 파일이나 다른것들도 받아볼 것

🦈수업후기


node.js를 로컬에서만 사용 해봤었는데 서버에 해보는건 처음이라 신선했고, 여러가지 입이 간질간질 했던 수업이었다ㅋㅋㅋ

그리고 모더나 2차 접종으로 인해 사경을 해매고 있다가 1시간 늦게 출석했다..맞은 당일에는 아무렇지 않아서 무증상으로 넘어가나 했는데 아주 크게 왔다.. 새벽부터 열이 많이 나서 잠을 설치고, 팔은 없어진줄 알았고, 그외 머리, 등, 허리의 고통이 찾아왔다... 살고자 타이레놀을 2개씩 먹었다..

여기까지 빌드업이였고 그래서 결론은 실습시간에 쓰러져 뻗었다ㅋㅋㅋㅋ규리쌤 죄송해요ㅠㅠ
내일은 좀 호전 되었으면 좋겠다..

profile
되는 이유만 생각하는 카멜레온

0개의 댓글