전체 글 234

무상태성 / JWT / Oauth란?

무상태성(stateless): 시스템이 현재의 상태를 나타내는 데이터를 보유하지 않고, 단지 입력 내용에 따라 출력 내용이 결정되는 방식을 의미합니다. 세션을 통한 인증의 경우) 클라이언트, 서버, 세션 저장소가 사용자의 정보를 가지고 있다는 것은 상태성을 가지고 있음 → 원래 무상태성을 기초로 해야함. 즉, 무상태성을 지니는 시스템은 같은 입력에 대해 언제나 같은 출력을 하게 됩니다. REST API는 서버로의 요청(reqeust)이나 클라이언트로의 응답(response)이 모두 무상태성입니다. Request Header 활용하기 Request Header: 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더 client - Server - DB 로그인 하려면 이런식으로 로그인 요청(클라이언트에서 서버..

백엔드 2021.11.21

RESTful 설계 방법 / Validation / Server to Server

RESTful한 설계방법은 다음과 같다. 1. URI에는 명사 사용하고, 동사 사용은 지양해야 한다. 2. 언더바, 대문자는 사용하지 않는다. (소문자 지양) 3. 슬래시를 통해서 계층관계를 나타낸다. 4. 메소드는 실제 DB에서 동작하는 기준으로 정한다. 5. Delete보다 Patch가 더 적합하다. 5번에 대한 예시로는 데이터에 대해서, isDeleted N -> Y로 update가 더 낫고, 삭제는 지양해야 한다. 대부분의 데이터에 경우 업데이트를 통해 상태값만 바꾸고 실제로는 DB에 값이 남아있는 경우가 많다고 한다. 예시) RESTful한 URI 예시 GET /students/:studentId/subjects Validation이란 무엇일까? Validation: 사용자 요청이 서버로 들어왔..

백엔드 2021.11.14

RESTful API에 대한 이해

URI란 무엇일까? URI: URN + URL을 합친 개념으로 리소스를 식별하는 통일된 방식 이름으로 식별하는 경우: URN 위치로 식별하는 경우: URL REST란? 규칙적이지 않은 네이밍룰로 유지보수가 어렵고, 협업 개발자가 코드 이해가 힘들 수 있다. 그래서 도입된 것이 REST이다. 즉, HTTP로 정보를 보낼 때, URI를 어떻게 설계하고 어떤 메서드를 사용할 것인지 표준으로 정해놓은 개발자들 사이의 약속이다. API를 설계할 때 아무 규칙없이 개발한다면 예시) 멤버를 가져올 때 /get-member-list /readMembers 이런식으로 URI가 달라질 수 있다. 가독성이나 생산성이 떨어져 표준을 정한 것이 REST이다! API는 인터페이스가 핵심인데, API가 사용할 규칙을 만드는 것이다..

백엔드 2021.11.07

서버 5주차 정리 [키워드 정리]

Backend Language 홀서버 - 요리사 - 냉장고 (서버 프로그램) - (백엔드 랭기지) - (데이터베이스) API (Application Programming Interface) : 응용프로그램에서 상호 작용하는 인터페이스 인터페이스: 서로 다른 개체들이 상호작용할 수 있도록 연결하는 장치 예시) 노트북 키보드 예시) 당근마켓의 휴대폰 인증번호 받기 API [클라이언트와 서버의 관계] 클라이언트: Request 서버: Response 예시)상호작용은 휴대폰 인증번호 받기를 통해 이루어진다. API : http 메소드 + URI(ex: url) URL : 프로토콜 + hostname + port/path http 프로토콜은 http 패킷으로 데이터를 보냄 http 패킷(운송장: header, 박..

백엔드 2021.10.31

서버 4주차 정리 - DB에 관하여 - (2)

최소성: 꼭 필요한 최소한의 속성으로 키를 구별하는 속성 유일성: 하나의 키 값으로 각각의 튜플을 식별할수 있는 속성 슈퍼키: 최소성 X, 유일성 O 이름, 나이는 겹치지 않기 때문에 슈퍼키로 설정 가능하다. 후보키: 최소성 O, 유일성 O 이름+나이의 경우 (속성이 2개이기 떄문에 최소성 만족 하지 않는다.) 기본키 : 테이블의 각 레코드(테이블에서 행을)을 고유하게 식별하는 역할 테이블에서 기본키 한개를 설정할 수 있음 기본키는 널값과 중복된 값을 가질수 없음 기본키 : 대체키 , 외래키라고도 불림 대체키: 기본키로 선정되지 않은 후보들 외래키: 테이블이 다른 테이블을 참조해서 DB 연결 예) 수강 Table에서 학생 Table의 값을 가져옴 참조할 값은 기본키로 설정되어야 함 학생 Table: 부모..

백엔드 2021.10.24

서버 4주차 정리 - DB에 관하여 - (1)

[서버의 작동 원리] 클라이언트가 요청을 보내면 제일 먼저 서버 프로그램 요청 서버 프로그램 → BL(Backend language)에 요청 BL(Backend language)에서 데이터를 조회하기 위해서 DB에 요청 각 서버별로 DB 하나를 갖는게 좋을까? 서버 전체가 DB 하나를 공유하는게 편할까? 하나의 서버만 있다면 각종 트래픽이 있을거다. 하나의 서버별로 DB 하나를 가지는게 편할까? → 서버가 터지면 해당 DB도 문제, 해커가 공격 가능성 DB 관점에서 서버 전체가 DB 하나를 공유하는게 편하다! ID, PW → 구글 드라이브, GMAIL, Youtube 접근 → Google DB 통합 (하지만 속도가 좀 느리다는게 단점) AWS에서 제공하는 DB(RDS, DynamoDB, AWS Elast..

백엔드 2021.10.17