Server

    GIT원격서버 설치 / Visual Studio 연동

    GIT원격서버 설치 / Visual Studio 연동

    1. Git for Windows 설치 (Git - Downloading Package (git-scm.com)) 1) 별다른 설정 없이 일단 기본 상태로 설치합니다. 2. Bonobo Git Server 설치 (Bonobo Git Server - Git Server for Windows) - 웹으로 실행되는 관리자용 툴 1) 웹툴이 통째로 압축되어 있으므로 일단 압축을 풀어줍니다. 2) Bonobo.Git.Server 라는 폴더로 풀리는데 이 폴더 전체를 웹서비스로 올려줍니다. 3) App_Data/Repositories 아래에 IIS_IUSRS계정으로 쓰기 및 읽기 설정을 부여합니다. 4) 설정하고 다음과 같이 나오면 성공입니다. 만약 오류페이지가 나온다면 web.config에서 customError..

    [MariaDB] Data 파일 위치 변경

    [MariaDB] Data 파일 위치 변경

    1. service.msc 에서 MariaDB 서비스를 중지합니다. 2. MariaDB가 설치된 폴더(C:\Program Files\MariaDB 10.5)를 찾아 Data폴더를 통째로 복사/잘라내기 한 뒤 이동시키고자 하는 위치(ex - D:\Data)에 붙여 넣습니다. 3. 옮겨놓은 위치(ex - D:\Data)에서 my.ini 파일을 찾아 datadir 속성에 기재된 위치 값을 이동한 위치(ex - D:\Data) 경로로 변경합니다. 4. Regedit를 열어 '컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MariaDB' 위치로 이동합니다. 오른쪽의 목록 중 ImagePath를 열어 my.ini의 위치를 이동한 폴더(ex - D:\Data\m..

    [MariaDB] ubuntu 에서 MariaDB 완전 삭제

    apt-get purge mariadb-server apt-get purge mariadb-common

    [node.js] CORS

    [node.js] CORS

    CORS는 Cross-origin resource sharing으로 직역하자면 교차 출처 리소스 공유를 의미합니다. 예를 들어 http://cliel.com에서 API를 서비스하는데 다른 도메인(ex:: https://www.daum.com)에서 cliel.com 서비스에 접근하여 특정 API를 호출해 원하는 데이터를 가져가게 되면 그것이 이 CORS인 것입니다. 그런데 사실 위와 같은 동작은 실제로 그대로 적용되지 않습니다. 한쪽에서 다른 쪽으로 API 호출을 시도하면 도메인이 다른 경우 서버가 아닌 웹브라우저에서 보안상 CORS오류를 발생시키기 때문입니다. node.js에서 정확히는 웹에서 이러한 문제를 해결하기 위해서는 API호출을 웹페이지에서 하는 게 아니라 서버에서 호출하도록 만들고 그 결과를 ..

    [node.js] socket.io

    [node.js] socket.io

    1. 설치 및 사용 socket.io는 클라이언트 웹브라우저와 스켓 통신을 하는 모듈입니다. WebSocket에서는 통신에 필요한 대부분의 기능을 직접 구현해야 하지만 socket.io는 이미 여러 가지 기능이 만들어져 있으므로 사용하기만 하면 됩니다. 기존 WebSocket을 기반으로 하여 몇 가지 편의성을 추가한 거라고 생각하면 되겠습니다. 특히 개별적인 이벤트를 통한 메세지송수신기능과 특정 클라이언트를 구별하는 id기능을 제공해주므로 활용도가 높은 편입니다. 하지만 각 클라이언트의 구별이 필요 없는 환경이라면 굳이 socket.io를 사용할 이유는 없습니다. socket.io는 이전에 만들어둔 WebSocket을 기반으로 socket.io를 적용해 보고자 합니다. 그러니 해당 포스팅에서 설명된 모든..

    [node.js] WebSocket

    [node.js] WebSocket

    웹소켓을 사용하면 웹브라우저를 실행 중인 클라이언트와 실시간으로 데이터를 주고받을 수 있습니다. 1. 준비 우선 웹소켓을 사용하는 예제를 작성해 보기 전에 node프로젝트를 준비합니다. 아래와 같이 주 진입점인 app.js를 생성하고 const express = require('express'); const app = express(); app.set('port', 80); app.use((req, res, next) => { next(); }); const indexRouter = require('./default'); app.use('/', indexRouter); app.use(function(err, req, res, next) { console.error(err); res.send('에러가 발생..

    [node.js] express-rate-limit(DOS공격 방어하기)

    [node.js] express-rate-limit(DOS공격 방어하기)

    express-rate-limit를 사용해 허용 가능한 접근 횟수 및 간격을 설정함으로써 지속적인 DOS공격을 차단할 수 있습니다. express-rate-limit는 아래와 같이 설치합니다. npm i express-rate-limit 설치를 완료하고 나면 아래 내용으로 미들웨어를 추가합니다. 해당 미들웨어는 방어가 필요한 라우트에 부착하여 사용하기 위한 것입니다. const limit = require('express-rate-limit'); exports.limiter = new limit({ windowMs: 60000, max: 5, delayMs: 1000, handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode..

    [node.js] JWT 인증

    JWT(JSON Web Token)는 사용자 인증방법 중의 하나로서 토큰의 종류와 해시 알고리즘 정보가 있는 헤더, 토큰의 인코딩 부분인 페이로드, 암호화된 문자열을 통해 토큰의 변조 여부를 확인하는 시그니처 세 부분으로 구성되어 있는 정보값을 의미합니다. 이 정보(토큰)를 사용자에게 부여하고 해당 토큰의 확인을 통해 사용자를 인증합니다. 참고로 아래 사이트에서 JWT토큰의 구조와 정보 값을 확인할 수 있습니다. https://jwt.io JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 이번 포스팅에서는 JWT를 이용해 ..