본문 바로가기
OAuth 2.0 OAuth 2.0? OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다 사용자가 가입된 서비스의 API에 접근하기 위해서는 사용자로부터 권한을 위임 받아야 합니다. 이 때 사용자의 패스워드 없이도 권한을 위임 받을 수 있는 방법 보통 Resource Server는 Access Token을 발급할 때 Refresh Token을 함께 발급. Client는 두 Token을 모두 저장해두고, Resource Server의 API를 호출할 때는 Access Token을 사용. Access Token이 만료되어 401 에러가 발생하면, Client는 보관.. 2022. 3. 16.
Node.js event-driven call stack - 자바스크립트는 싱글 스레드 프로그래밍 언어이므로, 단일 호출 스택이 존재한다. - 코드가 실행되면 자바스크립트 엔진은 해당 코드를 실행하는데 필요한 환경정보들을 수집해서 실행 컨텍스트 객체에 저장하고 이를 call stack에 쌓는다. - 이벤트 기반 자바스크립트 런타임인 node.js 특성상 이벤트리스너로 등록된 콜백함수의 실행컨텍스트가 언제 호출스택에 들어가는지 파악하기 위해서는 이벤트루프, 태스크 큐, 백그라운드를 알아야 한다. 이벤트루프 - 이벤트 루프는 항상 대기하고 있다가 호출 스택이 비워지면 태스크 큐 또는 마이크로테스크 큐에서 콜백함수를 하나씩 호출 스택으로 밀어 올린다. - 태스크큐에 있는 콜백 함수들을 호출스택으로 넘기는 순서는 정해진 규칙(큐별 우선순위가 다름).. 2020. 11. 8.
쿠키, 세션, 캐시 쿠키 - 클라이언트(브라우저)에 저장되는 키-값 쌍으로된 데이터 - 사용자의 편의를 위하되 수정되거나 삭제되어도 큰 문제가 없는 데이터를 저장하는데 사용된다. - http reques와 response의 header를 통해 클라이언트와 서버 사이에 주고 받는다. - 클라이언트는 서버로부터 받은 정보를 저장하고 있다가 를 웹페이지 재방문시 request와 함께 쿠키값으로 동봉하여 서버에 보낼 수 있다. 세션 - 클라이언트와 서버간 네트워크 연결이 지속적으로 유지되어 있는 상태 - 서버는 클라이언트에게 해당 클라이언트를 식별할 수 있는 유일한 세션 id를 부여 - 클라이언트가 서버에 request를 보낼때 해당 세션id를 쿠키에 동봉하여 보냄으로써 stateless한 http에서 클라이언트와 서버간 네트워크.. 2020. 11. 7.
HTTP vs HTTPS HTTP, HyperText Tranfer Protocol - HTTP는 웹브라우저(Client)와 서버(Server)간의 웹페이지(html)같은 자원을 주고 받을 때 쓰는 통신 규약 - 클라이언트인 웹브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보를 요청하면 서버는 이 요청에 응답하여 요구하는 정보를 제공한다. HTTPS, HyperText Tranfer Protocol Secure - HTTPS는 SSL 프로토콜 위에서 돌아가는 프로토콜 - HTTP에 보안기능을 적용하여 내가 어떤 웹사이트에 보내는 정보를 제 3자로부터 정보보호하고, 기관으로부터 인증 받은 사이트만 https 주소를 사용가능하므로 내가 접속하려는 웹사이트가 신뢰할 수 있는 사이트인지 알수 있다 SSL, Secure Socke.. 2020. 11. 7.
MVC 패턴 소프트웨어 아키텍쳐 와 디자인 패턴 - 소프트웨어 아키텍처란, 소프트웨어의 특성을 고려하여 소프트웨어의 구성요소들 사이의 관계를 표현하는 것으로 이후 소프트웨어의 설계와 업그레이드를 통제하는 원칙이된다. - 디자인 패턴이란, 소프트웨어의 모듈들이 어떤 기능을 하는지, 클래스의 범위, 함수의 목적 등 코드 수준의 디자인을 표현하는 것으로, 상황에 따라 자주 쓰이는 설계 방법들을 정리하여 재사용하기 좋은 형태로 패턴화 시켰다. MVC (Model , View , Controller) 패턴 - 정의 : 대표적인 디자인 패턴중 하나로, 하나의 애플리케이션을 Model , View , Controller 세가지의 역할로 구분한 패턴 - 장점 : 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적.. 2020. 10. 30.
express (2) : 요청과 응답, 쿠키와 세션, REST API와 라우팅 1. 요청과 응답 - 클라이언트에서 서버로 request를 보내고, 서버에서는 request내용을 읽고 처리한뒤 클라이언트에게 response를 보낸다. - 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 listen 메서드에 콜백함수를 넣거나, 서버에 listening 이벤트 리스너를 추가한다. 2. 쿠키와 세션 - 쿠키 : '키-값'의 쌍, reques와 response의 header를 통해 오고 감 - 서버는 요청에 대한 응답을 할 때 쿠키라는 것을 클라이언트에게 보냄 -> 서버로 부터 쿠키가 오면 '웹 브라우저'는 쿠키를 저장해 두었다가 요청할 때마다 쿠키를 동봉해서 보냄 -> 서버는 요청에 들어있는 쿠키를 읽어서 사용자가 누구인지 파악 - 브라우저는 쿠키가 있으면 자동으로 동봉해서 보내므로.. 2020. 10. 24.