전체 글 129

OAuth와 JWT

OAuth(Open Authorization)• 인터넷 사용자들이 비밀번호를 직접 제공하지 않고 다른 웹사이트 상의 자신 들의 정보에 대해 웹사이트나 어플리케이션의 접근 권한을 부여할 수 있는 공 통적인 수단으로서 사용되는, 접근 위임을 위한개방형 표준• 즉, 서드파티 어플리케이션이 사용자의 계정에 접근할 수 있는 권한을 부여하 기 위한 프로토콜 OAuth의 버전버전 명특징OAuth 1.0• 서드파티 어플리케이션이 사용자의 데이터에 접근할 권한을 얻기 위해 서명된 요청을 사용• 요청의 서명 부분은 어플리케이션의 비밀 키와 사용자의 토큰을 조합하여 생성되며, 이를 통해 보안 유지OAuth 2.0• OAuth 2.0은 보다 간편하고 확장성이 있는 버전으로, 기본적으로 인증과 권한을 분 리하여 다루는 것을 특..

카테고리 없음 2025.03.28

서버구축

서버와 클라이언트• 클라이언트(애플리케이션, 브라우저 등)의 요청을 컴퓨터가 수행할 수 있도록 하는 작업• 서버는 클라이언트의 요청을 늘 수행할 수 있어야 하므로 365일 24시간 다운되지 않고 전원 이 켜져 있어야 함• 주로 리눅스(Linux)나서버용 윈도우 운영체제(OS)를 사용• CLI (Command Line Interface) 환경에서 운영하는 것이 대부분• 클라이언트의 요청에 대해 안전하게 응답만 하면 되기 때문에 GUI 환경이 필요 없을 뿐더러 컴퓨터는 GUI를 운영하는데에도 리소스가 소모됨. 프로토콜이란?• 사람과 사람이 대화할 때 서로 이해할 수 있는 공용 언어를 사용 (ex. 영어)• 컴퓨터와 컴퓨터도 서로 이해할 수 있는 언어를 사용해야함! 콜!!• 사전적 정의는 정보를 주고받는 양식..

환경변수?

환경변수?• 환경변수는 운영 체제(OS)나 애플리케이션에서 사용되는 데이터 값을 저장하는 메커니즘• 프로그램의 동작을 조정하거나 구성• Node.js에서도 이러한 환경변수를 활용하여 애플리케이션의 설정과 동작을 조정Node.js에서는 process.env 객체를 통해 환경변수에 접근 Nodejs 환경변수 .env 파일• 환경변수를 관리하기 위해 .env파일을 사용하는 것이 일반적• 깃 저장소에 업로드 하지 말아야함!• File Zilla(FTP 소프트웨어)를 통해 서버에 파일만 업로드• env 파일에 들어가는 정보 예시 : DB Port 주소, ID, PW 등등 Node JS에서 환경변수를 사용하는 방법1. npm 명령어를 이용해 환경변수를 사용하기 위한 설정을 프로젝트에 추가한다.npm install ..

Cookie, Session

Cookie• 웹 브라우저(클라이언트) 에 저장되는 키와 값이 들어있는 작은 데이터 파일• 이름, 값, 만료일, 경로 정보로 구성되어 있다. Cookie의 동작 방식1. 클라이언트가 페이지를 요청함2. 서버에서 쿠키를 생성함3. HTTP 헤더에 쿠키를 포함시켜 응답을 전달함4. 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에 보관해둠5. 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 저장하여 전달함6. 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 HTTP 헤더에 포함시켜서 응답을 전달함 express에서의 Cookie 사용하기1. Cookie를 사용하기 위해 관련 npm을 설치한다.npm intall cookie-parser2. requi..

Node js - Sequelize

Sequelize 란?• 자바스크립트 구문을 알아서 SQL로 변환해준다.• DB 작업을 쉽게 할 수 있도록 도와주는 ORM(객체 관계 매핑) 라이브러리 중 하나• Node js에선 Sequelize과 Spring boot에선 JPA, Mybatis가 해당 매핑을 담당하는 라이브러리 Sequelize 실행 시 준비 사항1. 아래의 명령어를 실행하여, Sequelize를 프로젝트에 연결시킨다.npm install sequelize : 시쿼라이즈를 실제 프로젝트에 설치하는 명령어npm install sequelize-cli : 시퀄라이즈 명령어를 실제 실행하는 명령어npm install mysql2 : mysql을 실제 연결하여 실행하는 명령어2. 아래의 명령어를 실행하여 Sequelize를 사용할 초기 상태..

MVC패턴

MVC(Model View Controller)소프트웨어 공학에 사용되는 디자인 패턴의 하나로 프로그램을 Model, View, Controller로 나누어 설계하는 것  Model어플리케이션의 데이터와 비즈니스 로직을 담당함데이터베이스와의 상호작용, 데이터 처리, 유효성 검사 등을 수행함뷰나 컨트롤러에 종속되지 않으며, 독립적으로 작동함 View사용자 인터페이스(UI)를 담당하는 부분모델로부터 데이터를 받아 사용자에게 보여주는 역할을 담당함사용자 입력을 처리하지 않으며, 단순히 데이터를 보여주는 역할 만을 담당함 Controller모델과 뷰 사이의 상호작용을 관리하며, 어플리케이션의 흐름을 제어하는 곳사용자의 입력을 받아 모델을 업데이트하고,  모델의 변경사항을 뷰에 반영하는 장소  MVC 패턴의 장단..

데이터 제어어 (DCL)

데이터 제어어 (DCL)• Data Control Language •  데이터베이스에 접근해 읽거나 쓰는 것을 제한할 수 있는 권한을 부여or 박탈  데이터 제어어 (DCL)의 종류종류의미사용방법GRANT특정 데이터베이스 사용자에게 특정 작업에 대한 권한을 부여하는 것사용자를 생성해놓는 과정이 필요함(DDL)GRANT  권한유형 ON 데이베이스이름 TO 사용자 주소ex) GRANTALLONdb1.*TO 'jeffrey'@'localhost’ REVOKE• 특정 데이터베이스 사용자에게 특정 작업에 대한 권한 박탈REVOKE 권한유형 ON 데이터베이스.테이블 FROM 사용자 주소;

JOIN

JOIN이란?  • 두 테이블을 묶어서 하나의 테이블을 만듦• 왜? 두 테이블을 엮어야 원하는 형태가 나오기도 함 JOIN의 종류종류의미사용법Inner JOIN두 테이블을 합쳤을 때 공통 칼람 찾기Left Outer Join왼쪽 우선 Outer Join*Outer Join은 Inner Join과 다르게 공통되지 않은 row도 유지한다Right Outer Join왼쪽 우선 Outer Join*Outer Join은 Inner Join과 다르게 공통되지 않은 row도 유지한다SELECT 속성이름, .... FROM 테이블 [RIGET | LEFT] JOIN 테이블 B ON 조언조건

MYSQL - DML

DML ( Data Manipulation Language )#. 데이터베이스의 내부 데이터를 관리하기 위한 언어   CRUD#. 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 처리 기능   DML의 사용 방법용어의미사용법INSERT테이블에 데이터 추가INSERT INTO 테이블명(필드1, 필드2) VALUES(값1, 값2, 값3);=> 모든 데이터를 입력할 거라면 필드명 생략이 가능하다SELECT데이터를 검색하는 명령어SELECT * FROM 테이블 이름 [WHERE 조건]UPDATE데이터를 수정하는 명령어UPDATE 테이블명 SET 필드1=값1 WHERE 필드2 = 조건2;=> WHERE 조건을 만족하는 녀석의 필드 1 값을 값1로 변경DELETE데이터를 삭제하는 명령어 DELETE FROM 테이블명 ..

데이터베이스에서 쓰이는 데이터 형식

문자형 데이터 형식종류의미CHAR(n)고정 크기 데이터타입(최대 255byte) - 지정된 길이보다 짧은 데이터가 입력 될 시 나머지 공간 공백으로 채워짐VARCHAR(n)가변 길이 데이터 타입(최대 65535byte) - 지정된 길이보다 짧은 데이터 입력 될 시 나머지 공간은 채우지 않음TINYTEXT(n)문자열 데이터 타입(최대 255byte)TEXT(n)문자열 데이터 타입(최대 65535byte)MEDIUMTEXT(n)문자열 데이터 타입(최대 16777215byte)LONGTEXT(n)문자열 데이터 타입(최대 4294967295byte) 숫자 형 데이터 형식종류의미TINYINT(n)정수형 데이터 타입(1byte) - 128 ~ +127 또는 0 ~ 255 수 표현SMALLINT(n)정수형  데이터 ..