FE BE 개발 메모장

    쿠키(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..

    생명주기(Life-Cycle) 1차

    이전에 Props나 State가 어떻게 전달되고 활용되는지 봤다. 이번엔 생명주기에 대해 알아보려한다. Lifecycle은 우리의 삶처럼 흡사한 개념을 가지고있다. REACT에서 컴포넌트는 생성 => 업데이트 => 제거의 생명주기를 가지고 있다. 공식API 문서에서도 나와 있듯이 자주 사용하는 메소드를 중심적으로 작성하려고 한다. 1. Mounting(생성) 컴포넌트가 생성자(constructor)에 의해 초기화되고, 렌더링 과정을 거쳐 DOM에 최초로 그려지는 단계이다. 실행순서는 다음과 같다. 1. constructor : 생성단계에서 컴포넌트를 초기화 시킨다. constructor(props) 자세히 말하자면 아래의 두가지 목적을 위해 사용한다. 1. this.state에 객체를 할당하여 해당 컴포..

    SQL의 제약 조건과 ACID

    제약조건(Constraint)은 테이블에 잘못된 데이터의 입력을 막기 위해 일정한 규칙을 지정하는 것이다. SQL에서는 여러가지 제약을 사용할 수 있다. NOT NULL - NULL 값 입력을 허용하지 않음. UNIQUE - 중복 데이터를 방지하지만, NULL의 중복은 방지 못함. - 테이블 내에서 항상 유일무이한 값을 가질 것 PRIMARY KEY [기본 키] - NOT NULL + UNIQUE 조건을 만족한다. - 한 테이블 내에서 단 하나의 PK만 존재 - 해당 컬럼값은 반드시 존재해야 하고, 유일해야 한다. FOREGIN KEY [외래 키, 참조 키] - NULL값이 허용된다. - 다른 테이블의 데이터를 조사해서 무결성 검사. - 참조되는 컬럼은 반드시 UNIQUE 또는 PK로 지정 CHECK -..

    SQL Select문

    SQL SELECT 문은 하나 또는 그 이상의 테이블에서 데이터를 가져오는 데이터 조작 언어 중 하나이다. DQL문 SELECT문 공식문서 사양 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr] ... [into_option] [FROM table_references [PARTITION partition_list]] [WHERE where_condition] [GROUP BY {col_name | expr | pos..

    SQL Schema, Query 디자인과 몇 가지 종류(관계형 DB)

    스키마(Schema)란? 스키마(Schema)는 데이터 베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티(entities)간의 관계를 설명한다. 데이터베이스의 청사진과 같다. 학교를 위한 데이터베이스를 구축한다고 가정할 경우 간단한 예로 School이라는 스키마 즉 DB의 청사진을 만들었다. 쉽게 교사(Teacher), 수업(Classes), 학생(Student)과 같은 데이터를 저장하기위해 샘플을 준비해뒀다. 다시 보는 기본용어 entities: Teacher, Classes, Student같은 테이블을 표현하는 정보의 단위이다. fields: 각 테이블이 가지고 있는 열들의 집합을 말한다. record: 행렬에서 행에 해당되고, 각 열이 담고있는 자료를 말한다. 데이터관의 연결 관계 샘플을 예제로..