본문 바로가기

블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기

[26일차] 20210419 git branch 조금 + Node.js 찍먹

반응형

1 교시 git branch

 

git add . 

git commit

git branch 

git checkout

git rebase

head

 

git game 복습 

learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

 

 

2교시 git branch 

head = cursor 와 비슷.   *이 있는 곳을 바라보고 있다.  

맨 마지막을 가리킴. 

 

HEAD 가 진짜 원 주인 HEAD 중심

 

 

절대경로 - 처음부터 주소를 적어 정확한 파일위치를 작성하는 방법 

ex) C:\/document/....

상대경로 - 내가 있는 곳을 중점으로 

 

checkout 말고도 branch 명령어로도 HEAD를 옮길 수 있음

git branch -f main HEAD~3  -> branch 자체가 움직임 (branch 자체 내용을 옮기고 싶을 때) 

 

git branch -f bugFix c0

 

 

- 상대참조 답

* git branch -f bugFix c0

* git checkout HEAD^

* git branch -f main c6

 

* git reset HEAD~1 (history를 고쳐쓰는 점 때문에 다른 사람이 작업하는 리모트 브랜치에는 쓸 수 없음)

* git revert HEAD  (다른 사람들과 공유하기 위해서는 git revert) 

 

* git cherry-pick 원하는 commit 들을 요리조리 모아서 복사해서 떨굼 

 

원하는 commit이 뭔지 모를 때? 

*interactive rebase 

 

* git rebase -i 바꿀 commit을 가장 최근 순서로1 교시 git branch

 

 

 

3교시 git branch / git 다운로드/node.js 다운로드 

 

 

node.js 깔고 window에 cmd 검색

 

node - v 입력

버젼 나오면 잘 설치된 것

 

 

 

 

4교시 node.js 찍먹 드디어...

 

 

Node.js 란? 

Node.js는 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 

 

Node.js - 브라우저에서 작동하는JS 터미널, 프롬프트에서 실행 가능토록 만들어주는 프로그램이다. 

 

사용 목적 - 일반 프로그래밍 언어로 만들 수 있는 것들을 대부분 만들 수 있다. 

 

우리의 첫 번재 목표 - web Server를 구축하는 것. 

 

npm이란? - Node js를 설치하면 npm - Node Package Manager 가 자동적으로 설치되고

이것은 간단한 명령어로 다른 개발자가 만든 프로그램을 쉽게 설치할 수 있다. 

ex) react vue 등. 

 

아직 뭐가 뭔지 모르겟  ㄷ ㅏ ~ 

 

node.js 잘 깔렸는지 확인하는 방법

 

node.js 다운 및 설치 후 window에 cmd 검색

node - v 입력

 

버젼 나오면 잘 설치된 것

node.js 다운하면 자동으로 깔리는 NPM 확인 방법 

npm install [] 을 쳐보면됨. 

npm

npm -v

(안되어있으면 환경 변경 뭐가 안되어있대) 

 

cmd에서 다시 C:\Users\KGA_10> 요기로 넘어오고 싶을 땐 Ctrl + C 

 

 

 

window 창 - cmd 들어가

 

node 입력

console.log("hello world") 입력

 

 

JS 가 콘솔에서도 작동이 된다 (?)

JS가 cmd에서 왜 돌아가는지

 

JS의 HISTORY.. 

원래 js는 html 종속 언어였음 어떤 개발자가 JS 로 백앤드로 구현할 수 있는 게 node.js 이다....

서버 뿐만 아니라 프로그램으로 할 수 있는 것들을 JS로 구현이 가능 하다. 

크롬 기반. node.js로 만들 수 있는게 무궁무진하다. 

ex) visual studio code 도 html, node.js 기반으로 만든 거래 (desk top app) 

장점 : 서버 구현이 쉽다. (java, python 등 보다 쉽다. ) 

 

 

 

Server, 서버의 개념 

 

요청하면 -> 요청을 들어주는 기계  (server 이다.) 

 

Client 요청하는 사람이 요청(request) 를 보냄 

(웹페이지에서 client - browser, 롤 경우는 ? 못들음, 영화표라면 영화표 예매하는게 client,  ) 

Server 응답하는 것 요청값(response)을 주는 것 

 

브라우저에서 naver 주소값 치면 

ip 가 그 컴퓨터의 주소 

 

reQ -> res (www.naver.com) 

reQ <- res (html, css, js 을 사용해 www.naver.com 으로 가지도록 만들기 ) 

 

서버개발자 - 요청한 사람한테 어떤 웹페이지를 줘라 ~ 를 만드는 사람. 

 

 

 

PIP -> Python

NPM -> NodeJS 

NPM 이 패키지 매니져구나~ 

내가 패키지매니져를 만들 수 있을 때 자세히 배우면 됨

 

Nodejs 를 설치하면 자동적으로npm 패키지 매니저 설치됩니다. 

npm install [] 을 쳐보면됨. 

npm : usage 쭉 나옴 

npm -v  : npm 버젼 출력 

(안되어있으면 환경 변경 뭐가 안되어있대) 

 

 

 

 

 

 

 

 

html 조작은 js 가 유일무이 (다른 언어는 불가능) 

python 의 거의 모든 기능은 가능하다. js로

 

궁금증.

python을 공부하는게 좋을지 C 아니면 Java를 공부해야하는지 ? ? ?

구글 대답 : Python is the leading language for machine learning and data analysis, and C++ is the best option for game development and large systems 

 

 

 

 

 

2021.04.19자 세계 프로그래밍 언어 순위 

 

 

 

===============점심시간 ============제육볶끔 먹고 옴===============

 

5교시 node.js 장점 설명 및 간단한 서버 만들어 보기 

 

node.js 의 장점

1. non-blocking 방식 

2. 이벤트 처리 

 

식당 비유

blocking 방식 (?) 

요리사 = server서버  (1 처리 다 하고 1 주고, 2 처리 하고 2 주고..이렇게 하나하나 one by one ) 

직원 = 요청 받고 전달해 주는 사람

손님 = 요리 주문 (1,2,3,4번 메뉴 주문)

 

non-blocking 방식 

손님 = 요리 주문 (1,2,3,4,5번 메뉴 주문) 

요리사 = server 서버, 음식 제공함. (주문을 한 번에 받아서 만들고 끝나는 순서대로 줌) 

즉, 동시에 실행이 가능

ex) sns , 채팅 프로그램,   

 

 

Node. js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node. js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

 

 

 

교수님의 github repository 에 protocal ?  이랑 요 server 만드는 거 있음 protoType임 

 

 

 

get  가져오기 , 읽기 (읽을 때)  - 눈에 보이는 data

url 주소 직관적으로 data 를 넣는 것 get 요청 

 

 

post 쓰기 - 눈에 안보이는 data

login, 회원가입 할 때 사용. 

 

put 수정하기

 

delete 삭제하기   

 

 

 

NPM 

-> 

 

 

1. terminal 에 ls 입력

-> 내가 해당 파일 안에 잘 들어와 있는지 확인 

 

2. npm init 입력

- entry point : (server.js) 에 server.js 만 적고 나머지 다 엔터 ㄱ ㄱ 

 

init 하면 파일이 생김 (package.json)

위의 기본 세팅 값은 수정 가능 (아까 엔터엔터한거) 

 

 

3. express 설치 하기 - 명령어 : npm install express 터미널에 입력 

-> 딸려 나온 저 많은 파일들은 express 랑 관련 있는 것들.. 세트 .같은거래 

 

package-lock.json , node_modules 새로운 파일1개  폴더 1개가 생김 

그 폴더 안에 express 있는지 확인 

 

아까 2번에서 생긴 package.json 에 새로운 내용이 추가됨. 

 

  "dependencies": {
    "express": "^4.17.1"
  }

요부분. 

 

 

4. 터미널에 node server.js 입력 

(무엇을 입력해야하는 지는 package.json 에 start 에 친절히 나와 있음. )

따라는 하고 있는데 뭐하는 건지 잘 모르겟다.. 서버 만드는 중인가 

 

 

 

5. Ctrl + C 입력 -> 다시 터미널로 돌아오기. (끄기) 

   방향키 위쪽 누르면 -> 과거 썼던 게 쭉 나옴  (그 전에 썼던 명령어 나오기) 

 

node server.js 하고 엔터까지 눌러야 

 

브라우저 주소창에 localhost:3000 치면 hello 가 나옴. 

 

 

 

 

 

 

 

 

 

const express = require('express');  //express를 생성한다. 라이브러리로 package로 다운받음 (package- 폴더) 사용하는걸 express 변수에 담음 
const app = express(); // method 를 씀 // app에 express 객체를 담음. 
const port = 3000;

//1)
app.get('/', (요청,응답)=>{   //naver.com (자기자신)
    응답.send('hello'); //url이 있으면 실행시켜라 
});

// express 객체 안에서 get 이라는 것을 호출 


/*
    app = express 에 대한 객체
    app.get() ->  url에 대한 event를 말함.  
    app.get() 어떻게 실행 되는가? 

    2가지 매개변수가 있음. 
    첫 번째 매개변수 1. 경로 '/' 이 뜻은 localhost:3000 을 뜻함. 
    두 번째 매개변수 2. 콜백함수 (이 이벤트가 실행되었을 때 실행되는 함수 = 콜백함수)
    익명으로 처리함 (요청, 응답)=>{}
        콜백 함수에는 2가지 인자값 (요청, 응답) 이 존재 

    요청 이란?
    () 
    응답 이란? 요청받은 내용을 토대로 응답을 해주는 기계
    (요리사는 고객에게 요청받아 요리 만들어 내주는 사람)
    localhost:3000을 치면 무엇을 줄거냐 ! 을 ?
    응답해줌. 보냄('hello'); 
    응답.send('hello');

    */

app.get('/hello', (요청,응답)=>{   //naver.com/hello
    응답.send('hello2');
});

//너가 localhost 다음 hello를 치면 저 코드를 실행해라. (이벤트 형식 서버)



//2)
app.listen(port,()=>{  //listen - port를 실행시켜 . 익명함수 // express가 3000번으로 실행되었을 때 아래 코드를 실행해라
    console.log(`server is listening at localhost ${port}`);
});




/*
app.listen (); // app객체에서 listen()를 추출. 그리고 listen 매서드에는 2가지 
매개변수 (인자값)이 들어감. 

app.listen(port,);1. 첫 번째 인자값 : port  -> port에 대해 알려면 network 구조에 대해 알아야함. 
컴퓨터는 5만애 정도의 구멍이 있음 5만번까지 포트가 존재함. 어떤 포트가 사용중이면 다른 통로를 사용하지 못함.  
만약 인터넷 사용하는 zoom (어떤 특정 port 번호를 사용 중인) 이 쓰고 있는 포트 넘버가 3000이다. 
내 컴터에 접속할 수 있는 유일한 문. 
저희 코드도 3000 이라고 가정. 
port - 인터넷을 연결하는 통로. 
한 번 들어왔따 나가면 다시 사용 못함(?) 
port 없이 인터넷 실행시킬 수 없음. 무조건 필요 항상port를 틀어놔야함. 
우리는 그 중에 3000번을 사용한 것 
무슨 말이지 


2. 두 번째 인자값 : 실행되었을 때 콜백함수





*/

/*
 1) (요청에 대한) <처리> 내 서버에 오면 hello 를 보낼 거야 
 2) 는 요리사를 (server) 만드는 코드블록 

 라이브러리를 따로 만들어야 함. 
 npm 로 express를 다우받고 싶어 함. 

 express 다운 받는 법 
 npm install express
터미널 이요

    1순위 npm 을 사용할 수 있게 만든 다음 (npm init)
    2순위 npm을 통해 express 설치합니다. 

    결론
    1. 터미널 키기 
    2. server.js가 있는 폴더 안에서 npm init 입력 

 */











 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형