분류 전체보기
Date 생성자
Date 생성자는 날짜와 시간을 표현하는 객체를 생성한다. Date객체에 내장된 다양한 메서드를 활용하면 날짜와 시간 처리를 간단하게 할 수 있다. 다음과 같이 Date 객체를 생성한다. let now = new Date(); console.log(now) // Wed Mar 17 2021 21:28:32 GMT+0900 (Korean Standard Time) Date 생성자의 인수로 날짜와 시간을 전달하면 그 날짜와 시간을 가리키는 Date 객체가 생성된다. let setDate = new Date(2022, 3, 3); console.log(setDate) // Sun Apr 03 2022 00:00:00 GMT+0900 (Korean Standard Time) Date 객체가 제공하는 주요 메소드..
인증서 발급 받기 위한 mkcert
mkcert 라는 프로그램으로 로컬 환경(내 컴퓨터) 에서 신뢰할 수 있는 인증서를 만들 수 있는 간단한 도구이다. CA(인증기관)의 인증서를 발급받아 자체적으로 관리하는 것은 복잡한 명령, 전문 지식이 필요하게 된다. mkcert설치 sudo apt install linbnss-tools wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 chmod +x sudo cp mkcert /usr/local/bin/ 로컬 환경에 CA 생성 이 명령어로 로컬을 인증된 발급기관으로 추가해야한다. mkcert -install 로컬 환경에 대한 인증서 생성 다음은 로컬 환경에 대한 인..
HTTP 세션(session)
sessions이란? 서버가 해당 서버(웹)로 요청(request)한 클라이언트(사용자)를 식별하는 방법이다. 서버는 요청한 클라이언트 에게 요청 헤더의 set-cookie 값으로 클라이언트 식별자인 session-id를 응답한다. 서버로부터 응답받은 session-id는 해당 서버와 클라이언트 메모리에 저장된다. 이때 클라이언트 메모리에 사용되는 cookie 타입은 세션 종료 시 같이 소멸되는 Memory cookie가 사용된다. HTTP Session 전달 방법 1. 클라이언트가 서버로 요청을 하면 서버는 DB에 정보를 저장한다. 2. 만약 클라이언트로부터 발송된 session-id가 없다면, 서버는 session-id를 생성해 클라이언트에게 set-cookie값으로 session-id를 발행한다. ..
쿠키(Cookie)
HTTP 프로토콜 HTTP 프로토콜은 Connectionless, stateless 한 특성을 가지고있다. connectionless HTTP는 먼저 클라이언트가 요청(request)을 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 응답(response)을 보내고 접속을 끝는 특성이 있다. HTTP가 tcp위에서 구현되었기 때문에 네트워크 관점에서 keep-alive 옵션으로 connectionless의 연결비용을 줄이는 것을 장점으로 비연결지향이라 한다. stateless 통신이 끝나는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다. 쿠키(Cookie)란? 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 쿠키 특징 사용자 인증이..
HTTPS
URL : Uniform Resource Locator로 네트워크 상에서 자원이 어디있는지 알려주기 위한 규약이다. URL은 웹사이트 주소 보다 큰 개념이며, URL 밑에는 웹 사이트 주소, 네트워크 상에 연결된 다양한 자원을 포함하고 있다. HTTPS(HTTP + Secure Socket) HTTPS 는 HTTP에 S(Secure Socket)을 추가한 것이다. 기본 골격이나 사용 목적 등은 HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에서 '보안' 요소가 추가 되었다는 것이 큰 차이점이다. 즉 HTTPS를 사용하여 서버와 클라이언트 사이의 모든 통신 내용이 함호화 하는 것이다. 그래서 웹 사이트 사용자가 인터넷을 통해 신용카드 번호, 은행 정보 및 로그인 자격 증명과 같은 중요한 데이터를 안전..
Express API
JavaScript 생태계에서, 인기있는 프레임 워크의 앞글자를 따서 MERN Stack으로 흔히들 부른다.(MongoDB, Express, React, Node) 여기서 Express.js는 Node.js환경에서 웹 어플리케이션 혹은 API를 제작하기 위해 사용되는 인기있는 프레임워크이다. expressjs.com/ko/ 공식 API홈페에지에선 이렇게 소개된다. 1. 웹 및 모바일 애플리케이션을 위한 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크. 2. HTTP유틸리티 메소드, 미들웨어를 통한 쉽고 빠르게 강력한 API 작성가능. 3. 많음 프레임워크들의 기반. 시작하기 Node.js가 설치되었다는 가정 하에 터미널에서 다음과 같이 입력한다 npm install exp..
React Hook을 알아보자
리액트 컴포넌트는 클래스 컴포넌트와 함수 컴포넌트로 나뉜다. 기존의 개발 방식은 함수 컴포넌트를 주로 사용하면서 상태를 바꿔줄때나 생명주기(LifeCycle)를 사용해야할 경우만 클래스 컴포넌트롤 사용하는 방식이었다. 하지만 클래스 컴포넌트에선 문제점이 있었는데 다음과 같다. 1. 코드가 길고 복잡해진다. 생명주기, 상태관리를 위해선 constructor, this, bind, componentWillMount 등등... 지켜야할 규칙들이 너무 많기 때문에 코드가 복잡해지고 가독성도 떨어졌다. 아래 예시는 React 공식문서에 나온 예시다. 클래스 컴포넌트에서 작성된 Toggle class Toggle extends React.Component { constructor(props) { super(prop..