티스토리 뷰

TIL WIL

항해 99 TIL-2 node.js의 기본개념

타올이 2022. 1. 26. 23:17
반응형

Q1. 동기화, 비동기화 처리의 필요성은 무엇인가?

 

자바스크립트는 어떤 코드의 실행이 끝나지 않아도 다음 코드를 호출하는 비동기 방식으로 실행된다. 이는 사용자가 의도하지 않은 결과를 도출하기도 한다. 이를 동기적으로 처리하기 위해 Promise라는 객체 유형이 존재한다. Promise에서 특정 함수가 실행되기 전까지는 Promise.then을 실행하지 않는다. 이러한 객체의 성질을 이용한 함수가 async function으로써, 이 함수 내부에서 await 연산자를 활용하여 비동기 처리를 수행한다.

 

Q2. middleware란 무엇이고, 주의해야 할 점은 무엇인가??

 

미들웨어란 간단하게 말하면 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간(미들)에 목적에 맞게 처리를 하는, 말하자면 거쳐가는 함수들이라고 보면 됩니다.

미들웨어를 통해 웹 서버의 요청/응답에 대해 공통적으로 관리가 가능합니다.

예를 들어서 요청-응답 도중에 시간을 콘솔 창에 남기고 싶으면 미들웨어 함수를 중간에 넣어서 표시를 한 뒤에 계속해서 다음 미들웨어들을 처리할 수 있도록 하는 것입니다.

다음 미들웨어 함수에 대한 엑세스는 next 함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있습니다.

미들웨어 사용시 주의할 점은 next()함수이며, response가 없는 상태에서 next()함수가 없으면 무한 로딩에 빠집니다.

 

Q3. Routing이란 무엇이고, 라우터과 미들웨어

 

Routing은 클라이언트 요청 조건(메서드, 주소 등)에 대응하는 방식을 말합니다. 요청을 받았을때 최적의 경로로 통신 데이터를 보냅니다. 라우터와 미들웨어는 서로 다른 방식처럼 보이지만 라우터는 미들웨어 기반으로 구현된 객체입니다. 즉 라우터의 작동방식은 미들웨어와 같은 방식으로 작동합니다.

 

Q4. 관계형 데이터베이스와 비관계형 데이터베이스의 차이는?

 

관계형 데이터 베이스는 엄격한 데이터 스키마에 따라 데이터를 저장하고, 여러 테이블에 나누어 저장된 데이터가 관계를 가지고 연결되어 있다. 반면 비관계형 데이터베이스에는 스키마와 관계의 개념이 없다. 따라서 테이블을 join하는 과정이 없이 각 콜렉션마다 필요한 정보를 모두 담을 수 있다.

관계형 데이터는 모순이 없는 데이터를 중복 없이 저장할 수 있다. 하지만 데이터 스키마를 미리 계획해야 하기 때문에 유연하지 않다. 그런 점에서 비관계형 데이터베이스는 데이터 조정이 유연하고, 용도에 따라 필요한 형식으로 저장하기 때문에 데이터를 가져오기 용이하다. 하지만 데이터를 변경할 때 여러 콜렉션에 복제되어 있는 데이터를 일괄적으로 처리해야하는 단점이 있다.

 

Q5. CORS란?

 

CORS는 교차 출처 리소스 공유의 약자로 현재 브라우저로 접속중인 페이지에서 자바스크립트를 이용해 다른 도메인 또는 포트를 가진 주소로 요청을 하는 경우, 해당 리소스에 접근을 허용했는지 확인해보는 보안을 높이는 동작입니다. 보통 CORS가 발생하는 이유는 브라우져 도메인이나 포트번호가 다를때 리소스의 출처가 다르다고 판단을 해서 생기는 문제입니다. CORS 에러를 방지하는 방법은 npm 모듈중에 cors를 설치해 주고 미들웨어로 등록을 한 다음 서버를 재시작 해주면 됩니다.

 

Q6. 크롤링이란?

 

크롤링(crawling)이란 인터넷에서 데이터를 검색해 필요한 정보를 색인하는 것을 의미합니다. 사용자가 키워드를 하나씩 검색하여 정보를 얻고 저장 및 가공 과정을 대신 해주는 기술이라고 할 수 있습니다. 이러한 크롤링을 해주는 프로그램을 ‘크롤러’라고 합니다.

웹 페이지에서 정보를 추출하기 위해 요청을 하는 방식은 get과 post의 2가지가 있습니다. get은 URL을 통해 서버에 정보를 전달하는 방법으로, URL 특성상 길이 제한이 있기 때문에 일반적으로 적은 양의 정보를 전달할 때 사용됩니다. 반면 post 방식은 요청과 응답이 웹 페이지의 본문 안에서 일어나 글자 수의 제한이 없습니다.

자동으로 대량의 정보를 수집할 수 있는 크롤링의 장점을 활용해 다양한 대화 지식이 필요한 챗봇 구현이나 빅데이터 분석 연구에도 활용할 수 있습니다. 우리가 자주 이용하는 구글과 네이버가 다양한 검색 서비스를 제공할 수 있는 이유도 수많은 웹 사이트를 크롤링하기 때문입니다.

반응형

'TIL WIL' 카테고리의 다른 글

항해 99 TIL-3 Class  (1) 2022.02.06
[WIL-3week] 2021.01.24~30  (0) 2022.01.30
[WIL-2week] 2021.01.17~23  (0) 2022.01.23
항해 99 TIL-1 인덱스  (0) 2022.01.17
[WIL-1week] 2021.01.10~16  (0) 2022.01.16
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
링크
글 보관함