* deVlog

    pm2를 통한 NodeJS Application 관리 기법

    pm2를 통한 NodeJS Application 관리 기법

    시작하며 pm2란? "PM2는 응용 프로그램을 관리하고 온라인 상태로 유지하는 데 도움이 되는 데몬 프로세스 관리자" 라고 공식 홈페이지에 나와있다. 데몬 (daemon)이라는 건 컴퓨터 운영체제에서 백그라운드에서 실행되는 프로세스를 말하며 따라서 pm2라는 건 NodeJS로 만들어진 어플리케이션을 관리하기 위해 사용되는 프로세스 관리자라고 말할수있다. pm2를 사용하는 목적 에러가 발생하여 프로그램이 중지되는 경우 pm2가 자동으로 동작시켜주기 때문임. 코드를 수정할때 서버를 내릴 필요없이 코드를 저장하고 웹 새로고침만 해주면 수정내용이 반영되어 편리함. 로그를 가독성 좋게 한번에 볼 수 있음. 원래는 싱글 쓰레드인 NodeJS를 pm2 cluster 모드를 통해 원하는만큼 인스턴스를 확장하여 운용할수..

    JWT 토큰 기반 사용자 인증 프로세스 그리고 Node.js에서의 예제

    JWT 토큰 기반 사용자 인증 프로세스 그리고 Node.js에서의 예제

    시작하며 JWT 토큰이란? JWT 토큰은 Json Web Token의 약자임. 웹 인증 토큰이나 세션, REST API에서 많이 활용되는 토큰의 방식임. 사용자 인증에 필요한 정보를 암호화된 형태로 클라이언트에 저장함. JWT 토큰의 구성 "헤더"와 "페이로드", "서명" 부분으로 구성되어 있음. "헤더"와 "페이로드"는 복호화 가능한 부분들임. 헤더와 페이로드는 Base64 방식으로 인코딩되어 전송되고, 쉽게 디코딩하여 원래의 JSON 형태로 볼 수 있음. 반면 "헤더"와 "페이로드"를 제외하고 남은 "서명" 부분은 복호화할 수 없음. "서명" 부분은 말 그대로 헤더와 페이로드가 변조되지 않았는지, 문제가 없는 데이터인지 확인하는 Signature 역할을 함. JWT 토큰의 암호화 그리고 무결성 JS..

    [Database] ORM 원리 및 장단점 이해하기

    [Database] ORM 원리 및 장단점 이해하기

    시작하며 NodeJS에서 사용되는 ORM 종류 알아보기 (MySQL & MongoDB) NodeJS에서는 다양한 데이터베이스를 지원하는 여러 ORM 라이브러리가 사용됨. MySQL과 MongoDB는 가장 대표적으로 많이 사용되는 DBMS이다. 따라서 이 둘에 관한 ORM들을 알아보겠음. ORM은 그 종류가 엄청나게 많으므로 Javascript 내에서 활용되는 ORM만 비교하여 다루어 보겠음. ORM이란? ORM(Object-Relational Mapping)이란 객체 지향 코드를 통해 DBMS에 연결할 때 사용되는 프로그래밍 기법임. 이는 코드 내에 선언된 모델과 DBMS를 직접 매핑하는 방식으로, 개발자가 객체 지향 코드만으로 데이터베이스를 조작할 수 있게 해주는 역할을 함. 이를 통해 복잡한 SQL..

    MySQL RDBMS에 대한 간단한 개념 훑어보기

    MySQL RDBMS에 대한 간단한 개념 훑어보기

    About MySQL 시작하며 NodeJS를 통해 개발을 진행하며 사용하게되는 ORM 라이브러리를 사용하려면 기본적으로 RDBMS를 알아야 한다. RDBMS 중에서도 가장 쉽게 접근되고 사용되는 MySQL에 대하여 간단히 알아보도록 하자. MySQL에 대한 간단한 사실 MySQL은 세계에서 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나이다. MySQL은 1995년 처음으로 발표되었다. 최초 제작사는 스웨덴의 MySQL AB였는데, 2008년에 썬 마이크로시스템즈에게 10억 달러에 인수되었고, 이후 2010년에 오라클이 썬을 72억 달러에 인수하면서 썬과 함께 오라클에 합병되었다. Essential Knowledge About MySQL 기본 개념과 특징 오픈 소스: ..

    EJS 주요 문법 및 코드 스니펫 정리

    EJS 주요 문법 및 코드 스니펫 정리

    About EJS EJS란? EJS는 Embedded JavaScript의 약자로, HTML코드 내에 JavaScript 코드를 삽입하여 사용할 수 있게 해주는 템플릿 엔진임. 템플릿 엔진이란, 템플릿을 렌더링하여 HTML을 생성해주는 도구임. 이는 PHP 또는 ASP의 작성 방식과 흡사하여, 기존에 웹 개발을 해본 사람이라면 쉽게 접근할 수 있음. EJS는 Controller단에서 넘겨준 데이터를 가지고 태그를 사용하여 코딩이 가능함. 태그 내에서 간단한 자바스크립트 백엔드 로직(if, while, for, foreach 등)을 작성할 수 있음. 단 이는 Client단에서 렌더링 되는 것이 아니라, Server단에서 렌더링 되는 것임. 즉, Client단에서는 자바스크립트 코드가 아닌, 렌더링된 HTM..

    Git Branch Strategy(브랜치 전략)에 대한 정리.

    Git Branch Strategy(브랜치 전략)에 대한 정리.

    Git Branch 전략 (Git Branch Strategy) 이란? Git Branch 전략의 개요 Git Branch 전략은 Git Flow, Github Flow가 있다. Gitlab Flow도 있지만, Github Flow와 유사하므로 다루지 않겠음. Git Branch 전략이란, Git을 사용할 때 Branch를 어떻게 구성하고 사용할 것인지에 대한 것. 즉, Git Branch를 보다 효과적으로 관리하기 위한 Workflow의 일종임. 이는 협업 중 충돌이나 혼선을 방지하고, Branch의 출처와 분기점을 명확히 하기 위하여 주로 사용됨. Git Flow 전략 (Git Flow Strategy) 개요 Git Flow는 2010년에 Vincent Driessen이 제안한 Git Branch 전..