분류 전체보기 (67) 썸네일형 리스트형 [Node.js] JWT ⚡ JWT가 무엇일까 위키백과에 따르면 JWT는 JSON 웹 토큰은 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로 페이로드는 몇몇 클레임 표명을 처리하는 JSON을 보관하고 있다고 한다. 토큰은 비공개 시크릿 키 또는 공개/비공개 키를 사용하여 서명되는데 가령 서버에 "관리자로 로그인됨"이라는 클레임이 있는 토큰을 생성하여 이를 클라이언트에 제공할 수 있다고 한다. 그렇게 되면 클라이언트는 해당 토큰을 사용하여 관리자로 로그인됨을 증명한다고 한다. 그렇다면 JWT 토큰 구성은 어떻게 될까? JWT는 세 파트로 나누어지며, 각 파트는 점으로 구분하여 표현되는데 그 표현은 그림과 같다. 순서대로 헤더(Header), 페이로드(Payload), 서명(Sinature)로 구성한다.. [Node.js] Cookie ⚡ 로컬 스토리지 로컬 스토리지는 HTML5에 추가된 저장소를 말하게 된다고 한다. 간단한 키와 값을 저장할 수 있으며 스토리지는 Key-Value 형태를 갖는다고 한다. 로컬 스토리지는 사용자가 데이터를 지우지 않는 한 브라우저에 계속 남아있게 됨으로 지속적으로 필요한 데이터는 로컬 스토리지에 저장하게 된다. 하지만 절대 비밀번호 같은 중요한 정보는 담아서는 안된다. 보안에 취약하기 때문이다. 로컬 스토리지는 쿠키의 단점을 보완하기 위해 탄생했다고 한다. 🖥️ 세션 스토리지 세션 스토리지는 HTML5에 추가된 저장소를 말하게 된다고 한다. 세션 스토리지 역시 간단한 키와 값을 저장할 수 있으며 스토리지는 Key-Value 형태를 갖는다고 한다. 로컬 스토리지와의 차이점으로는 윈도우나 브라우저 탭을 닫을.. [Node.js] Login Process 👩💻️ 로그인 프로세스 원격 컴퓨터에서 운영 체제나 응용 프로그램에 엑세스 하는데 사용되는 절차다. 로그인 과정은 다음과 같다. 웹 브라우저에서 서버로 SSL을 이용한 ID, 비밀번호 등 회원 정보 전달 하고, 서버에서 전달된 정보를 DB에 저장하게 된다. 이때 DB의 정보가 해커에 의해 새어나가면 비밀번호가 노출될 위험이 있기에 비밀번호는 단방향 암호화를 하여 DB 정보가 유출되어도 비밀번호가 무엇인지 알아낼 수 없도록 해야한다고 한다. 로그인 프로세스는 방식에 따라 다양할 수 있는데, 몇가지 정도 알아보도록 하자 쿠키를 이용한 로그인 웹브라우저에서 서버에 SSL을 이용한 ID, 비밀번호 등의 회원 정보 전달한다. 서버에서 DB로 ID를 기준으로 사용자 정보 조회 및 비밀번호 확인한다. DB에서 22.. [Node.js] ERD 🐙️ ERD란 무엇인가 ERD란 위키백과에 따르면 데이터 모델링 분야에서 개체-관계 모델이란 구일조화된 데이터에 대한 일련의 표현이라고 한다. 구조화된 데이터를 저장하기 위해 데이터베이스를 쓰는데 이 데이터의 구조 및 그에 수반한 제약 조건들은 다양한 기법에 의해 설계될 수 있으며 그 기법 중 하나가 개체 관계 모델링, 일명 ERD라고 부르는 것이라고 한다. ERD를 쓰는 이유는 다음과 같다. 예를 들어 새로운 프로젝트를 하기에 앞서서 어떠한 구조로, 어떤 클래스가, 어떻게 분리해서 데이터를 담을 것인지 등등을 정리하기 위한 용도로도 많이 쓰이고, 협업등에서 한 눈에 알아보기 쉬운 직관적인 정보를 제공하기 위해서도 사용된다고 한다. 그렇다면 ERD의 사용법은 어떻게 될까? ERD는 주로 다음과 같은 영역.. [Node.js] DB Schema 💎️ 데이터베이스 스키마란? 데이터 베이스 스키마란 무엇일까. 위키백과에 따르면 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료간의 관계를 형식 언어로 정의한 구조라고 정의하고 있다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하고 데이터 베이스 사용자가 자료를 저장 조회, 삭제, 변경할때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다고 하는데 이때 스키마는 3층 구조로 되어있다고 한다. 한번 살펴보도록 하자. 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로 하는 데이터.. [Node.js] DTO, DAO, VO 그리고 Entity 📖️ DTO가 무엇일까? 우리가 데이터베이스를 접하면 꼭 알아두어야할 DTO, DAO, VO에 대해 알아보도록 하자. 우선 첫번째 DTO는 무엇일까? DTO는 Data Transfer Object는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체라고 한다. 또 DB에서 꺼낸 값을 임의로 조작할 필요가 없기 때문에 DTO에서는 Setter을 만들 필요 또한 없고, DTO클래스에서는 생성자에서 값을 할당하게 된다고 한다. Request와 Response용 DTO는 View를 위한 클래스 역할을 하기도 한다. 이는 자주 변경이 필요한 클래스를 말하는데 toEntity 메소드를 통해서 DTO에서 필요한 부분을 이용하여 Entity로 만들고 Controller .. [🔄] husky가 무엇일까 🐶️ husky가 뭔데? husky 는 Git Hooks 를 보다 쉽게 적용할 수 있는 npm 모듈이라고 한다. Git Hooks은 Git 과 관련한 어떤 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있도록 하는 기능이라고 한다. 크게 클라이언트 훅 과 서버 훅 으로 나뉘는데 클라이언트 훅 은 커밋, Merge 가 발생하거나 push 가 발생하기 전 클라이언트에서 실행하는 훅이다. 반면 서버 훅 은 Git repository 로 push 가 발생했을 때 서버에서 실행하는 훅이라고 한다. Git Hooks 에 대해 자세히 알지 못하더라도 commit, push 정책을 관리하고 공유할 수 있다고 한다. husky 설치 $ npm install --save-dev husky .huskyrc { "hooks.. [🧹] ESLint와 Prettier에 대해 알아보자 ⚡ ESLint가 뭔데? 위키백과에 따르면 JS코드에서 발견되는 문제 패턴을 식별하기 위한 정적 코드 분석 도구라고 한다. ESLint의 규칙은 구성 가능하고 사용자 정의된 규칙을 정의하고 로드할 수 있으며 코드 품질과 코딩 스타일 문제를 모두 다룬다고 한다. 가령 예를 들어서 함수의 표현식에는 화살표 함수가 있을 수도 있고 단순 함수 표현식이 사용될 수도 있다. 같은 종류라도 다른 방식등으로 코드를 작성하는 중구난방을 일관성 있는 방식으로 구현할 수 있도록 잡아주는 것이 ESLint가 하는 역할이라고 한다. ⚡ Prettier는 뭐야? 확장프로그램으로 널리 알려진 프리티어는 우리의 코드를 가독성 쉽게 바꿔주고 기호가 빠진 부분도 채워주는 친절한 녀석이다. 즉 코드 스타일에 관련되서 연관이 깊다고 할 수.. 이전 1 ··· 3 4 5 6 7 8 9 다음