본문 바로가기
Node.js

[Node.js] 8/22 Node 수업 Flow

by 장바스크립트 2022. 8. 28.
1. KeyPoint
2. 수업 Flow

 

1.  수업 KeyPoint 🔑

  • 프레임워크 
  • 컴파일 / 빌드
  • 동기 / 비동기

 

2.  수업 FLOW ⌛️

프레임워크

1) 틀 / 구조

2) 처음부터 작성 하지 않아도 빠르게 작성할 수 있다. 

3) 장점

      - 보안성이 좋다. 

4) 단점

      - 자율성이 떨어진다. ( 내 마음대로 하기에는 정해진 것들이 있다-> 번거로울 수 있다. )

5) 예시 

       - 부트스트랩: CSS 기반 프레임워크(프론트단)

       - 스프링: JAVA 기반 프레임워크(백엔드단) 

            Q. 부트스트랩과 스프링을 같을 쓸 수 있을까요?

            A. 네. 가능합니다. 프론트/ 백엔드 기반이 달라요. 

        - 자바를 알고 있다는 전제하에 추가적으로 스프링을 배우는 것이다. 

        - 서버에 있어서 프레임워크 활용은 권장된다.  

 

,ㅏ,ㅏ

컴파일 , 빌드

1) 컴파일

  • 코드를 바로 읽어서 실행하는 것이 아니라 좀 더 기계에 친화적인 언어로 바꾸는 것.
  • 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행

2) 빌드: 소스 코드를 실행 가능한 파일로 만드는 과정을 의미. ex) apk, exe 파일 등

 

3) 스크립트 언어(인터프리터 언어)

  • 컴파일과 빌드의 과정을 거치지 않게 함. 관대한 편.
  • 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함.

4) 예시 상황 1

  • head태그: 여기 안에 있는 내용을 다 읽기 전에는 출력 되지 않음.
  • body태그: 한 줄~ 한 줄~ 읽으면서 바로 출력 됨.
  • " 자바스크립트 함수 정의는 <head>안에 써야한다.  바디 닫기 전에 넣어야 바로 작동 할 수 있다. "
* 함수 정의가 안되있어서 작동 안됨. 
<head>
<div onclick = "a();">
</head>

<script>
function a(){
아하하
};

</script>

----------------------------------------------------------------

* head안에 함수의 정의를 적어야 누가 먼저 눌러도 작동함.
<head>
<script>
function a(){
아하하
};
<div onclick = "a();">
</script>
</head>

<div onclick = "a();">

5) 예시 사항 2

  • 부트스트랩에서도 설명해주고 있다. 

 

Node.js

1) 자바스크립트 언어를 백엔드에서도 쓸 수 있게 만든 언어의 모음.

2) 서버에서 자바스크립트를 활용할 수 있도록 한 언어체계 -> 왜? 언어하나만 배울래~~ 그래서 Node 할래~

     - html은? 음 이건 아직 할 수 있는게 부족해

3) Node 점유율을 끌어 올릴 수 있는 이유는? 자바스크립트라는 언어가 비동기식이야.

     - 자바스크립트라는 언어는 순차적이지 않고, 이벤트 기반으로 작동해.

     - 첫째줄 문장이 셋째줄 문장보다 먼저 실행된다고 보장되지는 않음.

     - 자바스크립트는 기다리지 않고 진행함

     - 동기식은 윗 문장이 끝날 때까지 기다렸다가 순서대로 진행함.

     - 웹은 기달려주지 않음. 순차적으로 보여주지는 않음.

 

 

웹의 특성

1) 컴퓨터는 한 번에 한 작업만 한다. 동시에 진행되는 것처럼 보일 뿐이다. 

    -> 이 떄 하나의 작업 단위를 스레드 라고 한다. 

 

2) 대부분의 언어가 싱글 스레드이다. 

  • 만약.. 카톡으로 2기가 만큼 보내면 2기가가 다 올라갈 때까지 아~무도 말을 할 수 없게 되는 것.
  • 근데.. 이벤트, 멀티 스레드라면 기다리면서도 계속 올릴 수 있다!

3) 자바스크립트는? 멀티스레드

  • 하나의 스레드가 시간을 많이 잡아 먹으면 다음 스레드가 실행 된다. 
  • 1번 코드가 오래 걸립니다. -> 2번 코드 먼저 작동해라!

4) 예시 상황

  • 이벤트 기반/ 비동기식: 시나리오를 알 수 없으니 이벤트 발생 시 작동하도록 해야하는게 맞다.  
window.on("click") 
{...}


window.on("resize") 
{...}

=> 이렇게 썻다고 순서대로 작동하는 게 아니라 이벤트 그게 발생 할때 -> 이벤트가 작동
  • 예) 채팅창에서 상대방이 무슨 말을 이어서 할 지는 알 수 없다. 
  • 실시간 이란? 이벤트 기반 작동("1이 말하면 이렇게 하세요. 3이 말하면 이렇게 행동하세요."
예시

1. 넘어온 쿠폰번호의 유효성을 검사한다. 

1-1. 쿠폰번호가 유효한가?

예 → 2번으로 넘어가

아니요 → 에러메세지 출력

1. 쿠폰에 해당하는 회원을 가져온다.

⇒ 백엔드에서는 앞에가 맞아야 다음 단계가 진행된다.
=> 순차적으로 진행

 

5) 클래스 사용의 시작

  • 옛날에는 C의 라인이 엄청 나게 많았다. -> 프로그램이 복잡해지고 가독성도 떨어졌다.
  • 그럼 관련된 함수들끼리 모으고 독립적으로(서로 연관되지 않게, 나 이외의 기능은 서로 영향을 주고 받지 않게)구성하자!
  • 이것이 "클래스별로 나누자" 라고 부르는 것.

 

 

'Node.js' 카테고리의 다른 글

[Node.js] 8/24 Node 수업 Flow (노드설치, 기본 셋팅)  (0) 2022.08.28

댓글