개발 블로깅
-
[2019.05.06] 불필요한 github 업로드 방지 - gitignore 설정개발 블로깅/기타 개념 2019. 5. 6. 14:14
오늘 Express서버에 여러 가지 작업을 해본 것을 github에 올리기 위해서 repository를 새로 생성하고 push를 날랐다. 그런데... 소름 돋게도 node_moduls까지 전부 push가 된 것이다...;;; push를 날렸더니, 엄청난 양으로 로그가 촤라락~~!! 깜빡하고 github에 올리기 전에 gitignore 작업을 해주지 않은 것이다. # gitignore이란? 불필요한 파일들을 github에 업로드하는 것을 막기 위해, 업로드할 대상들을 설정할 수 있는 파일이다. 대표적인 예로는 node_modules가 있다. node_modules 정보는 package.json에 이미 명시가 되어있기 때문에 언제든 쉽게 모듈을 설치할 수 있으므로, 굳이 node_modules 안에 있는 모..
-
[2019.05.06] 코드에 DB 쿼리문은 그만! 유용한 Sequlize개발 블로깅/Server&DataBase 개념 2019. 5. 6. 10:37
기존에 웹 API 개발에 DB를 연동하여 사용하려면, 쿼리 명령어를 문자열로 저장하고 사용을 했어야 했다. DB연결 부분 생략 .... /* 쿼리 결과 값이 필요 없는 경우 */ var query = `insert into users(name) values('name')`; connection.query(query); /* 쿼리 결과 값을 받아올 경우 */ var query = `select * from users`; connection.query(query, function(error, rows, fields) { if(!error){ console.log(rows); console.log(JSON.parse(JSON.stringify(rows))) // 이렇게 해야 제대로 object 방식으로 사용 ..
-
[2019.05.05] CORS...너는 대체 누구니..?개발 블로깅/기타 개념 2019. 5. 5. 00:17
CORS(Cross Origin Resource Sharing)란 브라우저의 현재 웹 페이지에서 다른 페이지에 있는 자원(Resource)을 이용하는 것을 뜻한다. 위 코드와 같이, 현재 페이지에서 다른 웹 페이지의 이미지를 사용하는 것과 같다. 이러한 다른 웹 페이지에 있는 리소스를 사용하는 것을 CORS라고 한다. 그러면 이러한 CORS가 무엇이 문제인가? 다른 웹페이지에 있는 자원을 이용하게 되면, 웹 상에 노출되어 있는 정보를 이용하여 악의적인 목적으로 이용할 수 있고, 어떤 특정 광고의 Page View Count를 높일 수도 있다. 이렇듯 CORS 방식의 기술은 보안에 취약하여 심각한 문제를 발생할 수 있다. 이러한 보안 취약 문제를 어떻게 해결하나? 대부분의 브라우저는 이러한 CORS의 문제..
-
[2019.05.02] AWS - EC2란?개발 블로깅/Server&DataBase 개념 2019. 5. 2. 14:49
Amazon EC2(Elastic Compute Cloud)는 서버로 쓸 수 있는 환경을 클라우드로 제공하는 웹 서비스이다. # EC2 사용 이점 컴퓨터의 필요한 만큼 크기 설정 가능. 컴퓨팅 리소스에 대한 포괄적인 제어권 제공. 보안 및 네트워크 구성, 스토리지 관리 효과적 # EC2 인스턴스 EC2에서 인스턴스 유형에 사용되는 자원 CPU 메모리 스토리 네트워킹 용량 EC2에서는 위 자원의 조합으로 운영하려는 서버에 최적화된 환경을 제공함. 운영자는 이에 맞게 적합한 리소스 조합을 선택할 수 있음. 인스턴스 유형 종류 범용(General Purpose) :모든 리소스의 균형을 알맞게 유지하여 사용 가능한 유형 컴퓨팅 최적화(Compute Optimized) : 고성능 프로세서의 이점을 활용하는 유형 ..
-
[2019.05.01] Local Storage와 Session Storage개발 블로깅/Server&DataBase 개념 2019. 5. 1. 17:56
웹사이트의 정보를 저장하기 위해 사용하는 저장소 쿠키. 기존의 쿠키만 사용하던 방식을 쓰면 아래와 같은 제약이 있다. # 쿠키의 제약 4KB라는 용량 항상 http 요청 시 헤더에 포함되므로 웹이 느려지는 원인. 암호화되지 않기 때문에 보안에 취약. 사용자의 로컬에 저장되어 쉽게 접근. 내용 확인 가능 위와 같은 사항을 해결하기 위해, HTML5에서 추가된 기능인 Web Storage라는 것이 있다. # 웹 스토리지 특징 최대 5MB의 용량 웹 브라우저 로컬에 저장 http 요청 시 헤더에 추가되지 않음. 웹 스토리지에는 로컬 스토리지(Local Storage)와 세션 스토리지(Session Storage) 두 가지가 있다. 로컬 스토리지는 브라우저를 종료해도 저장 데이터가 그대로 남아 있지만, 세션 스..
-
[2019.05.01] cookie와 session의 차이개발 블로깅/Server&DataBase 개념 2019. 5. 1. 10:39
서버와 그 서버를 이용하는 클라이언트 내에서 사용되는 저장데이터인 쿠키와 세션에 대해 정리해보려고 한다. # 라이프사이클 쿠키 : 로컬에 파일 형식으로 저장이 되기때문에 브라우저가 종료되도 데이터가 남아있음. 만료시간을 설정하여 쿠키 삭제 가능. 세션 : 세션도 만료시간이 있지만, 기본적으로 웹 브라우저가 종료되면 세션이 만료되어 사라짐. # 보안 쿠키 : 클라이언트의 로컬에 저장되기 때문에 변질되거나, 서버에게 request를 보내는 중 스나이핑을 당하는 등 보안에 취약함. 세션 : 서버 내에서 key값만 세션에 저장하여 유지하고, 해당 key값을 이용하여 원래 기존의 데이터에 접근을 하는 방식을 세션 자체적으로 처리하므로 보안성이 높음 # 속도 쿠키 : 로컬에 저장된 파일에 바로 접근하여 사용하기 때..
-
[2019.04.29] Mysql 설치방법(맥북 환경) 및 node.js 연동개발 블로깅/Server&DataBase 개념 2019. 4. 29. 22:30
맥북에서는 Mysql을 엄청 쉽게 설치할 수 있다. # mysql 설치법 brew install mysql 설치 끝.. (mysql은 어느 ㅡ로젝트에서 자주 쓰이므로, 왠만하면 전역 설치를 추천!) # homebrew 설치법 https://brew.sh/index_ko # mysql 서버 실행 방법 mysql.server start // 서버 켜기 mysql.server stop // 서버 끄기 # 터미널에서 서버 접속 방법 mysql -u root -p // -u user명 :root, -p : 패스워드를 입력하곘다는 뜻 # mysql 접속 화면 # node.js 연동 방법 var mysql = require('mysql'); var connection = mysql.createConnection({ ..
-
[2019.04.27] Promise 꿀팁 - util 모듈 promisify()개발 블로깅/Server&DataBase 개념 2019. 4. 27. 15:53
node.js의 내장함수인 util모듈 중에 promisify라는 함수가 있다. 이것을 쓰면, 비동기로 돌리려는 함수를 promise로 감싸주지 않고 사용할 수 있다. 그래서 지금부터 이 Promise를 조금 더 잘 다룰 수 있도록 하는 util promisify()함수를 소개해보려고 한다. 안녕하세요~! // hello.txt const fs = require('fs'); fs.readFile('./hello.txt', 'utf-8', (err, result) => { console.log(result); // '안녕하세요~!' }); // util.js 위와 같이 hello.txt와 utiltest.js 파일이 있다. util.js은 node.js 내장함수인 fs모듈을 이용하여 hello.js파일의 ..