전체 글 166

[ WEB ] - HTTP란 무엇인가?

HTTP ( HyperText Transfer Protocol ) html과 같은 하이퍼미디어 문서 전송을 위해 이용되는 응용프로그램계층 프로토콜의 하나로, 인터넷상에서 클라이언트와 서버가 데이터를 주고받는 일종의 규약을 의미합니다. http는 기본적으로 클라이언트가 요청을 생성하기 위해 연결을 연 후 응답을 받을 때까지 대기하는 클라이언트-서버 모델을 따릅니다. http는 기본적으로 stateless 즉 상태를 저장하지 않는다. 하지만 쿠키를 이용하여 상태를 별도로 저장할 수 있다. Request ( 요청 ) 클라이언트가 서버에 자원을 요청하는 행위이다. 보통 사용자가 보는 화면 즉 브라우저가 클라이언트 측이다. GET /user HTTP/1.1 Host: developer.mozilla.org Acc..

이론 2022.06.03

[ AWS ] - aws I AM 설정 방법

개념 AWS에서 제공되는 서비스 사용을 위한 엑세스 시에 자격 증명을 제공하도록 하여, 서비스가 소유한 리소스에 액세스할 수 있는 권한이 있는지를 확인하도록 하는 것이다. IAM 사용자 설정을 통해 AWS 리소스에 대한 사용 권한을 더욱 편리하게 제어할 수 있다. 즉 aws에서 제공하는 각 서비스에 별도로 권한을 부여한 계정을 생성하여 다른 서비스 등에는 접근하지 못하게 하고 허용된 권한만 이용하게 하여 aws이용에 대한 과비용을 방지하고 보안을 위함이다. 방법 1. 내 계정에서 보안자격증명을 클립합니다. 2. 우측의 대시보드에서 사용자 그룹을 클릭합니다. 3. 그룹 생성을 클릭 후 아래의 내용 입력 후 해당 그룹에 사용 가능한 권한을 줄 서비스 선택까지 마친 후에 그룹 생성을 클릭합니다. 4. 사용자 ..

AWS 2022.06.03

[ AWS ] - CI/CD pipeline 구축해서 배포 자동화하기

CI/CD PipeLine 구축 애플리케이션 아키텍쳐 사용 기술 Git hub AWS Elastic Beanstalk AWS CodeBuild AWS CodePipeline 순서 프로젝트를 저장한 git repository 생성 (Github) 배포 ( AWS Elastic Beanstalk ) 빌드 프로젝트 생성 ( AWS Codebuild ) 파이프 라인 생성 ( AWS CodePipeline ) 파이프 라인 테스트 1. 프로젝트는 저장한 git repository 생성 ( Github ) 나는 기존에 생성했던 프로젝트의 저장소를 활용하였다. 2. 배포 ( AWS Elastic Beanstalk ) AWS Elastic Beanstalk는 콘솔을 사용하여 AWS에서 애플리케이션을 실행하는 인프라에 대..

AWS 2022.06.03

[ AWS ] - s3에 정적 웹사이트 호스팅하기

가정 : s3 버킷이 생성되어 있어야 한다. 버킷 생성하기 : https://mihee0703.tistory.com/43 [ AWS ] - s3 버킷 생성하기 버킷 만들기 클릭 버킷 이름과 aws 리전을 설정해준다. (bucket이름은 기존의 것과 중복될 수 없다.) 객체소유권 - ACL 비활성화됨 퍼블릭 엑세스 차단 설정 - 모든 퍼블릭 엑세스 차단을 비활성화하 mihee0703.tistory.com 버킷에서 파일 추가를 클릭 후 호스팅하려는 정적 파일을 업로드한다. 버킷의 속성에서 가장 아래에 있는 정적 웹 사이트 호스팅에서 편집을 클릭한 후 아래와 같이 입력한다. 정적 웹사이트 호스팅을 활성화 클릭 후 아래와 같이 입력한다. 인덱스 문서에는 본인이 업로드한 정적 파일명을 입력한 후 저장한다. 아래와..

AWS 2022.06.03

[ AWS ] - s3 버킷 생성하기

버킷 만들기 클릭 버킷 이름과 aws 리전을 설정해준다. (bucket이름은 기존의 것과 중복될 수 없다.) 객체소유권 - ACL 비활성화됨 퍼블릭 엑세스 차단 설정 - 모든 퍼블릭 엑세스 차단을 비활성화하는 것 선택 // 테스트 용으로 생성하는 것이므로 s3 url에 쉽게 접근 가능하도록 모든 퍼블릭 엑세스 차단을 비활성화 하였다. 나머지 사항들은 기본 선택된 것대로 두고 버킷 만들기 클릭 생성된 버킷을 클릭한 후 권한 클릭 버킷 정책의 편집 클릭 후 버킷 정책 편집에 들어와서 정책 생성기 클릭 아래의 설정 후 Add Statement를 클릭하고 , 이후에 밑에 생긴 Generate Policy를 클릭한다. // 설정에 관한 부분은 본인의 필요에 맞게 변경 가능하다. - Select Type of Po..

AWS 2022.06.03

[ Node.js ] - 서버 DDos 공격 막기

express-rate-limit 과도한 요청으로 인해 서버에 과부하를 주는 것을 방지하기 위해 사용하는 라이브러리이다. next에서 express-rate-limit 사용하기 -> 2022.07.26 - [Javascript/Next.js] - [ Next.js ] - next api에서 express-rate-limit 사용하기 사용밥법 npm install express-rate-limit 기본 설정 import rateLimit from 'express-rate-limit'; const limiter = rateLimit({ windowMs: 1000 , //1초 ... 15 * 60 * 1000 15분 max: 1, standardHeaders: true, // Return rate limit ..

Javascript/Node.js 2022.06.02

[ 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