전체 글(31)
-
Node.js란?
1. Node.js의 정의 개발자들이 처음 사용해야하는 기술을 알기 위해 가장 처음하는 것이 해당 사이트의 공식문서를 보는일이다. 하지만, 이제 갓 프로제트를 시작한 나에게 Node.js의 정의는 아래와 같이 너무 어렵게 나와있었다. 비동기 이벤트 주도 JavaScript 런타임으로써 Node.js 는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었습니다. 이는 오늘날 OS 스레드가 일반적으로 사용하는 동시성 모델과는 대조적입니다. 스레드 기반의 네트워크는 상대적으로 비효율적이고 사용하기가 몹시 어렵습니다. 게다가 잠금이 없으므로 Node.js 의 사용자는 프로세스의 교착상태에 대해서 걱정할 필요가 없습니다. Node.js 에서 I/O를 직접 수행하는 함수는 거의 없으므로 프로세스는 결과 블..
2020.10.30 -
Stack(1) - 정의
스택이란?? 자료구조에서 가장 기본적인 것 중 하나로, 한쪽의 입구만 가지고 있어, LIFO(Last In First Out)의 형태를 가지고 있다. 다르게 말해서 1,2,3,4,5가 순서대로 들어간다면, 빠져나오는 순서는 5,4,3,2,1이 된다는 것이다. 스택은 기본적으로 배열의 형태로 저장소(Store)를 가지고, 저장소에 넣는 push와 가장 밖에 있는 것을 빼네는 pop, 그리고 배열의 길이을 확인하는 size로 나눠볼 수 있다. //Es6 Class class Stack { constructor(){ this.Store = []; } push(item){ this.Store.push(item) } pop(){ return this.Store.pop(); } size(){ return this...
2020.10.29 -
4주 프로젝트 리뷰 (1) 서론
4주동안 길고 긴 프로젝트를 진행하였다. 나는 백엔드를 맡으면서 API와 AWS가 주 역할이었다. 무엇을 만들었는지, 어떻게 만들었는지도 중요하지만, 짧지 않게 한 프로젝트로는 처음이기에 내가 어떤 기능을 그동안 썼었고, 그것들에 대한 정의를 제대로 내리는 것이 필요하다고 생각하게 되었다. 사소한?이라고 생각했던 것부터 어려웠던 것까지 쭉 나열해보자면 npm Node.js TypeScript Express Multer Sequelize Axios Cheerio Artillery AWS - CodePipeline, S3, Ec2, Route53, CloudFront pm2 Naver API 이렇게 정리할 수 있을 것 같다. 물론, 이 나열된 항목들에 대해 정말 깊이 확실하게 인지하고 사용했다기에는 어려울 ..
2020.10.29 -
Session이란??
앞에서 쿠키에 대해 알아보았다. 정말 간단히 알아보았지만, 사용방법도 편리하고, 사용자의 기록을 가질 수 있어 정말 유용한 기능 중 하나이다. 하지만, 쿠키가 장점만 있는 것은 아니고, 다음과 같은 단점이 존재한다. 1. 사용자 정보에 대한 보안 취약점 . 2. http의 Header에 붙여서 전송하기 때문에 기존의 트래픽보다 더 많은 트래픽을 발생시킬 수 있다. 세션은 위의 두가지 문제에 대한 해결을 위해 나타났다. 쿠키가 클라이언트의 측의 데이터 저장이었다면, 세션은 서버 측(혹은 DB)에 정보를 저장시켜 놓고, 클라이언트는 그저 session_id만 쿠키로 저장시켜 놓는 것이다. 그러면, 일일이 쿠키에 모든 것을 저장시키는 것보다 과부하도 덜 오고 보안 문제도 서버에서 관리하기 때문에 더 안전할 것..
2020.09.13 -
express로 Cookie 간단히 넣기
1. Cookie란? Cookie는 클라이언트에 저장하는 작은 기록 정보라고 생각하면 된다. 4KB의 작은 크기이기에 대용량과 같은 기록보다는 방문기록 혹은 사용자가 사이트에서 사용 편의성을 위한 기록들을 저장할 때 쓰인다고 생각하면 된다. 주의할 점은 개인정보와 같은 민감한 데이터 같은 것들은 쿠키로 사용하는 것을 추천하지 않는다. 왜냐하면 쿠키 자체만 사용하면 사용자의 기록 및 쿠키가 그대로 드러나기 때문에 주로 해싱(토큰)을 같이 쓴다. express를 이용해 다음과 같이 사용할 수 있다. const cookieParser = require('cookie-parser'); const express = require('express'); const app = express(); app.use(cook..
2020.09.13 -
Authentication (1) - 인증 & 권한이란?
구글,네이버, 카카오 등등 웹페이지든 어플리케이션이든 상관없이 사용하는 것 중 하나가 '로그인'이라는 기능이다. 그렇다면 로그인을 실행한다는건 무슨 뜻일까? 로그인의 뜻을 살펴보면 다음과 같다. '사용자가 컴퓨터 시스템이나 통신망에 들어가기 위해 자신의 사용자명과 패스워드를 입력하는 일.' 즉, 사용자명(ID)와 비밀번호(password)를 입력해서 나 자신이 누구인가에 대해 알리는 것을 '인증'절차라고 부른다. 회원 가입을 할때 휴대폰으로 인증을 하는 것도 같은 맥락으로 볼 수 있겠다. 그렇다면 '권한'은 무엇일까. 내가 만약 임의의 쇼핑몰 사이트에 로그인을 했다고 생각하자. 해당 쇼핑몰에는 다양한 종류의 데이터가 있을 것이다. 회원정보, 상품 번호, 코드, 가격 등등 과 같은 것들이 아마 있다면, 로..
2020.09.13