백엔드 45

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

서버 3주차 - OS와 AWS에 대하여

OS : Operating System(운영체제) 운영체제란 하드웨어, 소프트웨어 자원을 운영 관리 → 사용자가 시스템을 편리하게 이용 자원 관리 + 인터페이스 환경을 하는 역할 OS의 역할 및 목적 사용자가 App을 통해서 컴퓨터에게 요청한다. APP에게 OS에게 다시 요청, OS는 APP에게 자원 할당 OS: 중개자 OS 종류: Mac OS, Windows 10, Linux .. OS 사용 종류 임베디드, 데스크탑, 모바일, 서버 임베디드: 리눅스 계열 커널 사용 데스크탑: Windows 모바일: 리눅스 계열(안드로이드), 서버: 리눅스 리눅스가 윈도우 못지 않게 유명한 OS인 경우? 오픈 소스 → 사용자가 많음, 집단 지성 편리성, 속도, 확장성이 좋음 안정성 (서버의 96.5%가 리눅스) UNIX..

백엔드 2021.10.10

서버 스터디 2주차 [키워드 정리] - (2)

UDP TCP와는 다르게 데이터를 패킷으로 나누고 반대편에서 재조립하는 과정을 거치지 않으며 수신지에서 수신 여부 상관 X UDP는 User Datagram Protocol의 약자 TCP 예시 HTTP 통신, 이메일이나 파일전송 UDP 예시 실시간 동영상 플레이어나 게임, 혹은 DNS에서 사용 DNS(Domain Name Server) 도메인 이름을 IP로 변경 해주는 서버 Forward proxy Proxy 서버 ↔ 웹 서버 간의 응답(클라이언트가 인터넷) 클라이언트가 서버로 요청할 때 직접 요청하지 않고 먼저 프록시 서버를 통해 요청하는 방식 Reverse proxy 클라이언트가 인터넷에 데이터를 요청, 리버스 프록시가 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트에 전달(db→인터넷) [네..

백엔드 2021.10.10