배경 기존 gitlab 러너를 이용해서 배포 자동화 처리를 하다가, 최근 사내 프로젝트들 관리를 github 로 전체 옮기면서 action 으로 배포 자동화를 처리하게 되었음 가정 작업 1. 배포 스크립트 제작 Laravel 어플리케이션의...
Continue reading...backend
SQL vs NoSQL 선택하기
SQL 과 NoSQL 의비교 그럼 SQL과 NoSQL은 언제 어떤 것을 선택하는 것이 좋을까 ? SQL 의 특징 시작 단계에서 익혀야할 것들이 있다. 데이터가 고정적이고, 구조를 가진다. 데이터 찾기가 쉽다. 서로 다른...
Continue reading...ORM / ODM
ORM(Object Relational Mapping) 이란? 코드에 여러가지 오브젝트가 있다면 이것을 데이터베이스에 저장하기위해서 스스로 어떻게 테이블로 변환할건지, 어떻게 스키마를 만들고 분할할건지, 그리고 데이터베이스에서 어떻게 데이터를 읽어와서 오브젝트 형태로 변환할건지 직접 고민하고 처리해줘야한다. 이러한...
Continue reading...SQL / NoSQL
SQL SQL 데이터베이스는 Table, Row, Column 으로 구성되어 있다. 엑셀과 흡사하나, 각 행마다 특정한 데이터 타입을 지정한다는 것에 차이가 있다. 이런 데이터 타입 뿐만 아니라 여러 속성을 지정할 수 있는데 NOT...
Continue reading...데이터베이스의 개념과 종류들
데이터베이스(DB)란 ? A database is an organized collection of data, generally stored and accessed electronically from a computer system wikipedia 데이터베이스란, 컴퓨터 파일 시스템에서 관련있는 데이터들끼리 모아 놓는 것을 말한다. 하나의...
Continue reading...웹 소켓(Web socket)
실시간으로 동작하는 서비스를 만들고 싶다면, 웹 소켓을 이용한다. 기존 HTTP는 클라이언트가 서버에 요청하고, 서버는 그에 해당하는 응답을 던져준다. 만약 서버에 공지사항이 생겼더라도, 클라이언트가 따로 그것에 대해 요청을 하지 않으면 서버가 클라이언트에게...
Continue reading...Dwitter – 서버 코드에서 중요한 두가지 (5)
보안성 현재의 코드에서 확인해보면, ‘jwtSecretKey’ 등 중요한 키값들이 코드내에 그대로 사용되고 있는 것을 볼 수 있다. 이것은 보안성에 문제가 된다. 보통 코드들을 코드 관리 툴(git 등)에 올리는데, 이 과정에서 이 키값들이...
Continue reading...Dwitter – 로그인 / 회원가입 Auth 구현(4)
JWT 를 이용하여 구현하기로 한다. JWT 사용 이유 서버가 RESTful api 기반 이기 때문 (즉 , http-only 쿠키를 보내주는 서버가 아닌, 다양한 클라이언트들을 위한 RESTful api) 세션 정보 저장을 위해 세션...
Continue reading...JWT (JSON Web Token)
JWT (JSON Web Token) JWT란, 2010년도에 개발되었으며 JSON을 이용하여 웹토큰을 주고받는 것을 의미한다. JWT 구성 JSON 오브젝트 베이스안에 Header, Payload, Signature 로 나누어져 있다. 여기에 사용자의 인증에 대한 모든 정보를 담는...
Continue reading...bcrypt
Bcrypt 는 패스워드를 안전하게 보관할 수 있도록 패스워드를 해싱하는 알고리즘을 의미한다. 사용자가 가입을 할 때 입력한 아이디와 패스워드를 그대로 데이터베이스에 저장하면, 제 3자가 서버에 있는 데이터베이스 정보를 읽었을 때 사용자의 아이디...
Continue reading...