전체 글 170

[ Node.js ] - axios와 node-fetch로 통신하기

Axios 공식 문서에 따르면 axios는 node.js와 브라우저를 위한 Promise 기반 HTTP 클라이언트 라이브러리이다. 특징 브라우저에서는 XMLHttpRequest 객체, 서버측에서는 http 모듈을 사용한다. promise API를 지원한다. npm install axios 사용법 모듈을 불러와 정의한다. import axios from 'axios'; // const axios = require('axios'); config 설정 const AUTH_TOKEN = process.env.AUTHTOKEN // 전역 AXIOS 기본값 설정 axios.defaults.baseURL = 'https://api.example.com'; axios.defaults.headers.common['Aut..

Javascript/Node.js 2022.06.02

[ DATABASE ] - node.js에서 redis 사용

redis 설치 2022.06.02 - [DATABASE] - [ DATABASE ] - Redis 사용 node.js에서 redis 사용하기 (with typescript) npm install redis 1. redis 연결 import { createClient } from 'redis'; const pw = process.env.REDISPW as string; // pw는 redis 설치후 설정한 password이다. const client = createClient({ password: pw }); client.on('error',(err: any)=> { console.log('redis client error',err); }); const client_connect = async () =>..

DATABASE 2022.06.02

[ DATABASE ] - Redis 사용

Redis (Remote Dictionary Server)란? Redis 문서에 의한면 Redis는 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소입니다. 레디스는 키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관계형 시스템으로 문자열, 해시, 목록, 집합, 정렬된 집합, 스트림 등 다양한 데이터 구조를 지원합니다. 기존의 데이터베이스는 디스크에 직접 접근하기 때문에 서비스 사용자가 많아지면 서버에 부하를 줄 수 있지만, Redis의 경우 데이터를 메모리에 저장함으로써 서버의 부하를 감소시킵니다. Redis는 캐시 데이터 저장, 인증 토큰 저장, Ranking Board 등으로 사용..

DATABASE 2022.06.02

[ WEB ] - 인터넷은 어떻게 작동하는가?

How does the internet Work? 인터넷이란 각각의 컴퓨터들이 통신할 수 있게 해주는 거대한 네트워크 망을 의미합니다.. 사용자가 특정 웹사이트를 방문하거나, 유튜브와 같은 동영상 스트리밍, 온라인 게임 등의 모든 활동은 인터넷의 네트워크 통신을 통해 이루어집니다. 물리적 도구인 이더넷 케이블 또는 와이파이나 블루투스(무선)를 통해 두대의 컴퓨터가 연결된 위와 같은 모습도 하나의 네트워크를 구축한 것으로 볼 수 있습니다. 그러나 이와 같은 식의 단순한 연결은 각 컴퓨터가 통신하는 컴퓨터에 직접적으로 연결되어 있어야 하므로 컴퓨터 수가 증가할수록 복잡도가 커지게 됩니다. 때문에 각 컴퓨터는 직접적으로 연결하지 않고 라우터라고 하는 특수한 소형 컴퓨터와 연결하여 네트워크를 구축합니다. 오른쪽..

이론 2022.06.01

[ Javascript ] - Promise란?

HTML 삽입 미리보기할 수 없는 소스 프로미스는 자바스크립트의 비동기 처리에 사용되는 객체로, 작업의 순서에 따른 실행을 가능케 합니다. 예를 들어 서버를 통해서 데이터를 받아 그 값을 반환하는 식의 작업인 경우, 비동기 처리 방식인 자바스크립트의 특성상 서버로부터 값을 받기 전에 값을 반환하여 문제가 발생할 수 있습니다. 이러한 상황에서 프로미스 객체를 사용하여 서버로부터 값을 받은 후에 다음 작업이 실행되도록하여 작업의 순서를 보장할 수 있습니다. * 비동기 처리 : 특정 코드의 실행이 완료될 때까지 기다리지 않고, 다음 코드를 실행하여 작업이 완료되는 순서대로 결과물을 출력하는 것. function delay(sec, callback) { setTimeout(() => { callback(new ..

Javascript/etc 2022.05.26

[ Javascript ] - 비동기 처리?

자바스크립트는 기본적으로 한 번에 여러 작업에 대한 처리가 가능한 비동기 처리 방식을 취하고 있습니다. 자바스크립트의 비동기 처리 방식은 사용자가 페이지 요청시 서버로부터 응답이 올 때까지 기다리지 않고, 서버에 데이터 요청 후 다른 코드를 실행함으로써 페이지를 요청한 사용자에게 보다 빠르게 페이지를 출력하여 보여 줄 수 있습니다. * 비동기 처리 이전 작업의 실행 완료 여부와 상관없이 동시에 여러 작업을 실행하여, 실행이 먼저 완료되는 대로 결과물을 출력한다. 즉 이전의 작업이 완료되기 전에 다른 작업을 실행한다. * 동기 처리 작업의 우선 순서에 따라 작업이 실행되며, 이전 작업이 완료될 때까지 다른 작업은 대기 상태가 되었다가 이전의 작업이 모두 완료된 후 순서에 따라 다음 작업이 실행되는 것이다...

Javascript/etc 2022.05.26

[ Web이론 ] - 네트워크 인터페이스 카드 / 트랜시버 / 허브 / 스위치 / 라우터 / 로드밸런서 / 스케일 아웃 / 스케일 업 / Rack

네트워크 인터페이스 카드? 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치이다. 역할 1. 직렬화 즉 전기적 신호를 데이터 신호 형태로 바꾸거나, 데이터 신호 형태를 전기적 신호 형태로 변확해주는 일을 한다. 2. 네트워크 인터페이스 카드는 MAC 주소를 가지는데, 이러한 MAC주소는 패킷에 담겨 데이터 송수신시 함께 전달되어, 패킷에 담긴 목적지 MAC주소와 실제 도달된 곳의 MAC주소 일치 여부에 따라 목적지 검증이 가능하다. * 참고로 노트북 맥이 아니라 Media Access Control로, 통신을 위해 네트워크 인터페이스에 할당하는 고유식별자이다. 3. 하나의 채널에서 여러 통신이 이루어지는 과정에서 이미 통신 중인 데이터로 인하여 새로운 데이터를 받는 것이 어려운 경우, 새로운 데이터를 전달..

이론 2022.05.26

[ WEB ] 인캡슐레이션(Encapsulation), 디캡슐레이션(Decapsulation)

인캡슐레이션( Encapsulation ) 데이터를 분할하여 패킷형태로 데이터를 보내는 것. 전송 계층 -> 네트워크 계층 -> 데이터 링크 계층 -> 물리 계층 디캡슐레이션 ( Decapsulation ) 분할된 패킷을 받아 순서에 맞게 결합하는 것. 물리 계층 -> 데이터 링크 계층 -> 네트워크 계층 -> 전송 계층 현재의 네트워크 통신은 데이터를 작게 쪼갠 형태인 패킷을 주고 받는 형태로 이루어진다. 송신 과정에서는 데이터는 패킷 단위로 분할되어 목적지까지 보내지게 되는데 이때에 전달되는 순서는 일정하지 않다. 데이터를 수신하는 측에서 패킷을 순서에 맞게 다시 결합하여 사용한다. 헤더 정보를 통해 데이터를 확인 및 검증하고,검증이 끝난 헤더는 제거된 후 상위 계층으로 전달된다. 헤더에는 출발지와 ..

이론 2022.05.24