Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Ruff! Ruff!

서버시스템 구축 실습 - node.js 기초 본문

CS

서버시스템 구축 실습 - node.js 기초

maeng-kim 2024. 4. 10. 21:01

1. 자바스크립트 - 객체의 형식

배열 vs 객체

- 배열

   순서가 있는 정보
   순서는 인덱스로 구성
   인덱스를 통해 접근

- 객체

   순서가 없는 정보

   Property: 키와 값으로 이루어진 쌍 (pair)

   키를 통해 접근

- 선언 및 접근

   배열: 대괄호 생성, arr[index]접근

   객체: 중괄호 생성, obj.key or obj[key]로 접근

- 배열과 객체의 구별

   typeof()는 구분 불가

   Array.isArray() 구분 가능

- 데이터 순회

   배열: 배열의 길이(.length) 활용

   객체: in 키워드 사용

- 값으로서의 함수 -> 객체

  값을 넣어야하는 자리에 함수를 대입한 변수 사용 가능

  배열 -> 배열에 요소로 삽입

          -> 배열 인덱스 접근을 통해 함수 호출

  객체 -> property로 삽입

          -> 객체 접근을 통해 함수 호출

 

*함수를 객체의 멤버로 추가해서 사용 가능 -> 멤버 변수는 this 키워드를 통해 접근함

 

 

2. 화살표 함수

- 코드를 간결하고 읽기 좋게 하기 위해 제공

ex)

(num) => num+1

- 화살표 기준 왼쪽: 매개변수

- 화살표 기준 오른쪽: 함수 실행부

 

 

3. node.js 모듈

- 코드가 커지면 객체만으로는 부족함 -> 많은 js파일로 구성

- 모듈은 코드를 정리하는 가장 큰 도구

- 체계적이고 효율적인 관리를 위해 모듈을 활용함

모듈: 코드 라이브러리가 들어 있는 각 js 파일 또는 폴더

- 모듈의 활용

   -> 모듈쪽: module.exports를 통해 외부에서도 참조 가능하도록 설정

   -> 사용측: require()을 통해 모듈 불러오기

 

 

 

4. npm 활용

- Node.js의 패키지 관리자

패키지: 여러 개의 모듈 포함 가능

npm install <package>

npm uninstall <package>

 

*package.json 파일

- 프로젝트 관련 정보 저장

- 프로젝트 루트 레벨에 존재하는 파일

- npm init으로 생성

 

 

+ JSON.stringify() 메소드

-> js값이나 객체를 JSON 문자열로 변환

-> 중첩 개체도 알아서 문자열로 변환

 

 

 

5. 콜백

- 익명함수로 다른 함수가 종료될 때 자동으로 실행

- 다른 코드를 실행하기 전에 원 함수의 실행 종료를 기다릴 필요 없음

- 비동기 방식

 

 

 

6. 라우트

- 특정 url을 위한 요청에 어떻게 애플리케이션이 응답해야 하는지 정의하는 방식

- 매핑 정의 vs fs모듈

- 매핑 정의 : url 하나하나 직접 매핑시켜줌

- fs 모듈: 애플리케이션 대신 파일시스템과 상호작용 (코어모듈)

+ fs 모듈을 사용한 서버 응답 : 매핑된 파일의 콘텐츠를 읽어 응답 메세지에 포함

+ 동적 읽기를 통한 정적 파일 제공

 

 

+ 에셋

- 클라이언트에서 필요한 파일들 (css, js 등) 

- 각 파일별 특정 라우트를 가지는 웹 서버 구현