본문 바로가기

반응형

Programming

(163)
URI 그리고 URL URI(Uniform Resource Identifier) '통합 리소스 식별자'(라고 해도 될까?)의 약어인 URI는 인터넷 환경에서 특정 리소스를 지칭하는 문자 형태의 식별자다. URI는 두 형태로 나뉘는데, URL(Uniform Resource Locator), URN(Uniform Resource Number)이 그것이다. URL : 위치로 리소스를 식별한다. URN : 이름으로 리소스를 식별한다. URI의 세부구조 [scheme]://[authority]:[port]/[path][?query][#fragment] scheme https:// 스킴 혹은 프로토콜(protocol)로 명명된다. 웹에서 페이지 로드, 메일 및 파일 전송과 같은 특정 임무를 수행하려면 어떤 통신규약을 따라야 하는지를 명..
[Node.js][Express] 기본 라우팅 라우팅(Routing) 라우팅(Routing)은 URI 주소 및 HTTP 요청(GET, POST..)과 같은 특정 엔드포인트에 대한 클라이언트의 요청에 애플리케이션이 응답하는 방식을 결정하는 것이다. 각 라우트(요청 처리 방식)는 하나 혹은 여러개의 처리 함수를 가질 수 있으며, 라우트가 매칭될 때 실행된다. (여기서 '라우트가 매칭될 때' 라는 말은, '실행 조건을 만족했을 때'라고 이해된다.) 라우트 정의는 다음과 같은 기본 구조를 가진다. app.METHOD(PATH, HANDLER) 'app'은 요청한 모듈 express의 인스턴스다. 예를 들면, 아래와 같이 설정할 수 있다. const express = require('express') //express 모듈 호출 const app = expr..
[Node.js] PM2 활용 PM2 PM2는 Node.js 사용 시 무중단 서비스를 구현할 수 있도록 도와주는 모니터링 도구. 데몬 프로세스 매니저로서 백그라운드에서 동작한다. 설치 npm install pm2 -g -g : 전역(global) 설치 실행 pm2 start 실행파일 pm2 start 실행파일 --watch --watch : Watch 하고 Restart 한다(디렉토리 내 파일에 변화를 감지하면 자동으로 새로고침) pm2 start 실행파일 --watch --no-daemon --no-daemon : no daemon(백그라운드) 실행을 통해 pm2 logs를 통하지 않고도 바로 로그를 확인 할 수 있다. --watch 옵션을 사용하면 실행하는 파일에 변동사항이 있을 때마다 새로고침을 수행한다. 이렇게 되면 후에 se..
[Node.js][보안] sanitize-html 사용 sanitize-html은 악성 스크립트를 삽입해 웹 서비스 보안 문제를 야기하는 XSS(Cross Site Script)를 방지하기 위한 node의 패키지 모듈이다. 해당 모듈을 사용하면 와 같은 스크립트 태그를 통한 악성 코드 실행을 방지한다. 설치 npm install -S sanitize-html npm install -g sanitize-html -S : 해당 프로젝트에만 적용 -g : 전체(global) 적용 사용 var 변수명 = require('sanitize-html'); require()를 통해 외부 모듈을 가져온다.(자신이 작업하는 디렉터리에서 node_modules 디렉터리 내부를 찾아보면 sanitize-html 모듈을 찾을 수 있다.(정상적으로 설치되었을 시)) var sanit..
[JavaScript] 객체(Object)에 대한 정리 기본 개념 자바스크립트는 객체기반 패러다임에 의해 만들어졌다. 여기서 객체(Object)는 프로퍼티(Properties)로 구성되어 있는데, 프로퍼티는 이름(Key)과 값(Value)로 구성되어 있다. 자바스크립트의 객체는 아래 이미지와 같이 현실세계에 빗대어 이해할 수 있다. 자바스크립트에서 객체는 단독으로 존재하는 개체(Entity)이며, 프로퍼티와 타입(Type)을 가진다. 사람(Human)이라는 객체가 있다고 가정하자. 그렇다면 아래 이미지와 같은 고유한 특성을 가진 프로퍼티를 생성할 수 있다. 객체 생성 방법 객체 생성 방법은 new Object(), Object.create(), 객체 초기자(Object Initializer)를 통한 리터럴 표기법이 있다. 객체 초기자를 사용한 객체 생성 방법..
[JavaScript] Template Literals ES6에서 소개된 Template Literal은 여러 줄로 이루어진 문자열과 문자 보간기능(특정 값으로부터 다른 값을 추정하는 것)을 지원한다. 가장 큰 특징은 이중 따옴표(" ")나 작은 따옴표(' ') 대신 백틱(backtick)문자(` `)_키보드 숫자 1 왼쪽에 위치 를 사용한다는 것이다. 세부 특징은 다음과 같다. Multi-line strings 일반 문자열 사용 시 개행(改行)을 위해서 문자 사이에 '\n' 를 사용해야 한다. 하지만 template literal을 활용하면 문자열이 있는 그대로 적용된다. 일반 문서 작성 하듯이 작성해도 그대로 적용된다. 일반 문자열 console.log( "There Is A Light \nThat Never Goes Out" ); // There Is ..
[Java] JAVA_HOME 환경변수를 설정하는 이유는? Java를 처음 설치하면 자바 개발 도구인 JDK(Java Development Kit)를 설치한 후 JAVA_HOME 환경변수를 설정한다. 왜 이런 작업을 해야 할까? 구글링을 통해 알아본 결과, 일단 반드시 하지 않아도 되는 작업으로 보인다. 환경변수 설정은 일종의 단축키(Shortcuts)를 설정하는 개념으로 생각된다. 그러니까 윈도우 터미널에서 자바 파일에 접근하기 위해서 일반적으로 경로까지 정확히 작성해야 한다. 하지만 환경변수를 설정하면 자바 파일의 위치에 상관 없이 명령어 하나로 호출 가능하다. 환경변수 설정이 필요한 경우는? 하지만 만약 본인이 Apache Tomcat과 같은 서드파티 프로그램을 사용하려면 JDK 또는 JRE 환경변수가 설정되어 있어야 한다. 이런 상황이라면 JAVA_HOM..
Parameter와 Argument의 차이점 이 두 단어의 명확한 차이점에 의문을 가지게 된 이유는 영문으로 된 원문 기술문서를 제대로 해석하기 위함이다. 별다른 소란 없이 어물쩍 넘어갈 수도 있지만, 프로그래밍은 확실히 아는 것이 매우 중요한 분야라고 생각하기 때문에 할 때 확실히 알아야 한다. Parameter(매개변수) 함수 정의에 사용되는 임의의 값(변수) Argument(전달인자) 함수가 실행되어 전달되는 실제 값 int add(int x, int y) { return x + y; } 함수 add는 변수 두 개를 더한 값을 결과로 리턴하도록 설계되어 있다. 따라서 정수 변수 x, y를 임의로 설정했다. 여기서 변수로 설정된 x, y는 매개변수라고 할 수 있다. 매개변수는 이 함수에 어떤 타입의 값이 들어와야 하는지 알려주는 표지판의 역할을..

반응형