공부 자료/네트워크 (12) 썸네일형 리스트형 [OAuth2] 소셜 로그인; 인증을 위한 개방형 표준 프로토콜 Naver, Kakao 로그인 등 사용자 인증 기능을 제공하는 인증 및 권한 부여 프로토콜 프로토콜에는 여러가지 종류가 존재하지만 Kakao, Naver API를 이용한 로그인을 공부했기 때문에 이와 관련된 OAuth2 프로토콜에 대해서 공부해보고자 한다. OAuth2(Open Authorization 2.0)란? 1. 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신의 정보에 대해 웹사이트에 접근 권한을 부여할 수 있는 수단 2. 접근 위임을 위한 개방형 표준 3. 책임을 Third-Party Applicaiton(google, kakao, naver 등)에 위임 : 정보 관리에 대한 책임 뿐만 아니라 부여받은 접근 권한을 통해 Third-Party에서 가지고 있는 사용자의 리소스 조회 등.. [네트워크] Open API / API Key [Open API] : 누구에게나 열려있는 API : 무제한으로 이용 가능한 것이 아닌 기관이나 API마다 정해진 이용 수칙이 있고, 제한사항이 존재할 수 있음 Ex. Open Weather Map 이라는 사이트에서 날씨 API를 제공함 - 제한적이나마 무료로 날씨 API를 사용할 수 있음 (프리 플랜에서는 기본적으로 분당 60번, 달마다 1백번 호출이 가능) - 데이터를 JSON 형태로 응답함 [API Key] : API를 이용하기 위한 열쇠 : 로그인된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고 데이터를 요청할 때 API key를 같이 전달해야만 응답을 받을 수 있음 [네트워크] REST API [REST API란?] REST (Representational StateTransfer) : 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로, HTTP(웹)의 장점(무상태성; 서버의 상태를 고려하지 않음)을 최대한 활용할 수 있는 아키텍처를 의미 : 리소스 식별이 가장 중요한 핵심 API (Application Program Interface) : 운영체제와 운영프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 의미 Rest API : 웹에서 사용되는 데이터나 자원(resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식 Ex) 식당의 손님으로서 주문을 위해 메뉴판을 보았을 때 메뉴가 정돈이 되어있지 않거나 알아볼 수 없다면? 즉, 서버.. [네트워크] HTTP HTTP[Hyper Text Transfer Protocol) : HTML과 같은 문서를 전송하기 위한 Application 계층 프로토콜 : Stateless(무상태성) 특징을 지님 (즉, 특정 상태를 유지하지 않음) HTTP messages 유형 1) 요청(Requests) 2) 응답(Responses) 구조 1) start line : 요청이나 응답의 상태를 나타내며, 항상 첫째줄에 위치 2) HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합 3) empty line : 헤더와 본문을 구분하는 빈 줄 4) body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함하며 유형에 따라 선택적 사용 [요청(Requests)] 1) start line.. [네트워크] SSR, CSR [SSR(Server Side Rending)] : 서버에서 렌더링 준비를 끝마친 상태로 클라이언트에 전달하는 방식 (예시. 가구 조립을 마친 후 소비자에게 전달) - JS가 브라우저에 렌더링 하는 대신 서버에서 렌더링 진행 - 브라우저가 서버에 URI로 Get 요청을 보내면 서버는 웹 페이지 파일을 전송 - 서버의 웹 페이지가 브라우저에 도착 시 완전히 렌더링 됨 [CSR(Client Side Rendering)] : 서버에서가 아닌 클라이언트 쪽에서 렌더링이 진행 (예시. 가구 부품을 받은 후 소비자가 조립 진행) - 클라이언트에서 JS 페이지를 렌더링 - CDN(물리적으로 가까운 서버에서 요청에 응답하는 방식)이 THML 파일과 JS로 접근 가능한 링크를 클라이언트에 전송 - 웹 페이지와 함께 전달.. [네트워크] 웹 애플리케이션 (아케텍처, 흐름, 구현) [웹 애플리케이션 아키텍처] : 클라이언트-서버 간의 연결에 대한 설명 방법으로 어떻게 애플리케이션 내부의 요소들이 상호간에 소통하는지 설명 : 유저가 웹브라우저에서 요청 시 애플리케이션의 다양한 요소들이 상호작용을 유지할 수 있도록 서로를 결부시키는 뼈대 웹 애플리케이션 특징 : 데스크탑 애플리케이션처럼 상호작용 가능 : 특정 기능을 가지고 있음 : 정보나 자료 등의 콘텐츠 관리 시스템과 함께 작동 >> 동적 페이지를 포함할 경우 웹 애플리케이션(요즘 만들어지는 대부분의 사이트들이 웹 애플리케이션에 속함) 고려사항 1) 신뢰성(reliability) 2) 확장성(scalability) 3) 보안성(security) 4) 견고성(robustness) [웹 애플리케이션 요청 흐름] 흐름 - 브라우저에 주소.. [네트워크] 클라이언트-서버 아키텍처(2티어 아키텍처) 클라이언트-서버 아키텍처(2티어 아키텍처) : 정보 같은 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것 클라이언트 : 리소스를 사용하는 앱(웹사이트, 앱 등) 서버 : 리소스를 제공(serve)하는 곳(웹 서버, 파일 서버, DB 서버 등) 요청과 응답을 주고 받는 관계로, 요청이 선행되고 그 후 응답 + 3티어 아키텍처 : 2티어 아키텍처에 DB가 추가된 형태 프론트엔드/백엔드 프론트엔드 영역 = 클라이언트 백엔드 영역 = 서버 + 데이터베이스 [예시] 클라이언트(손님) 서버(종업원) 손님은 필요한 리소스(주문)을 종업원에게 요청해야 함. 손님의 주문에 따라 종업원은 메뉴를 만든 후 응답. >>요청이 있어야 응답이 존재할 수 있음 [네트워크] URL, DNS [URL] URL (Uniform Resource Locator) : 웹에 게시된 어떤 자원을 찾기 위한 브라우저에서 사용되는 메커니즘으로, 네트워크 상에서 웹페이지/이미지/동영상 등의 파일이 위치한 정보를 나타냄 URL 구성 1) scheme : 통신 방식(프로토콜)을 결정 2) hosts : 웹 서버의 이름이나 도메인 3) url-path : 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지/이미지/동영상 등이 위치한 경로와 파일명 쿼리(query) : 웹 서버에 전달하는 추가 질문 Domain name : IP 주소를 대신하여 사용하는 주소로 한눈에 파악하기 힘든 IP 주소보다 분명하게 나타낼 수 있음 도메인 종류 gTLD(generic Top Level Domain) : 전 세계에서 등록이.. 이전 1 2 다음 목록 더보기