본문 바로가기

분류 전체보기

(29)
[Network] Stateful vs Stateless HTTP에 대해 배웠기 때문에 Stateless라는 개념에 대해 어느정도 알고는 있었지만, 막상 다른 사람들에게 Stateless와 Stateful에 대해 설명해달라는 질문을 받았을 때는 어떤 개념인지에 대해 정확하게 설명하기가 힘들었다. 그래서 이번에는 Stateless한 프로토콜을 Stateful한 프로토콜과 비교하며 각각 어떤 특징들을 가지는지 다시 한 번 복습하며 조사해보았다. 우선 Stateless프로토콜과 Stateful한 프로토콜은 모두 웹 서버와 브라우저의 통신을 위한 네트워크 프로토콜에 해당한다. 하지만 이 프로토콜들은 서버 사이드에서 세션 및 세부 정보에 대해 추적 및 저장을 하는 지에서 차이가 발생한다. 상호 작용 상태가 얼마나 오래 기록이 되는지, 또 해당 정보가 어떻게 저장되는지가..
MVC 패턴이란 무엇인가? MVC는 Model View Controller를 줄인말로, 사용자 인터페이스와 데이터 및 논리 제어를 구현할 때 사용되는 소프트웨어 디자인 패턴 중 하나이다. 간단하게 말하자면 개발을 할 때 3가지의 형태로 역할을 나누어서 개발을 하는 방식으로, 사용자 인터페이스로부터 비즈니스 로직을 분리하는 것에 가장 큰 중점을 두고 있다. 우리가 어떤 서비스가 돌아가게 하기 위해서는 여러 과정들과 처리가 필요한데, 그런 처리들에 대해 하나의 코드 베이스가 아닌 기능별로 모델, 뷰, 컨트롤러로 나누어주는 것이 MVC 패턴이라고 보면 된다. 이러한 분리를 통해 우리는 인터페이스와 비즈니스 로직 간에 서로 영향 없이 업데이트 및 유지보수가 가능한 애플리케이션을 만들 수 있다. MVC 컨셉을 사용하는 웹 프레임 워크는 E..
[Auth] Session과 Token은 서로 절충 가능한가? Session 과 Token은 모두 웹 브라우저에서 인증을 위해 사용되는 방식이다. 사용자의 정보를 인증받고 그에 대한 정보를 저장한다. 1-1. Session 클라이언트와 서버간의 관계를 활성화 된 상태로 유지하기 위해 서버에서 클라이언트에 유니크한 아이디를 부여하고 서버 측에서 관리하도록 하는데, 이 자체를 바로 세션이라 한다. 사용자에 대한 민감한 정보들은 세션으로 관리하는데, 사용자가 웹 브라우저에 이용하면서 탈취당하는 경우보다, 서버가 해킹당하는 경우가 일반적으로 더 적기 때문에 서버에 인증의 책임을 더 부여하는 것이다. (물론 요청 자체를 가로챈다면 요청 내부에 있는 쿠키도 탈취가 가능하기 때문에, 이 경우까지 막기 위해서는 https 방식을 통해 요청 자체를 읽기 힘들게 만들거나 세션에 유효..
[Database] MongoDB 보호되어 있는 글입니다.
[Authentication] Cookie/Session 학습 내용 HTTP와 HTTPS의 차이점 권한 부여(Authorization)와 인증(Authentication) Cookie/Session HTTP, HTTPS, SSL HTTP : 브라우저에서 웹 클라이언트와 서버 간에 데이터를 전송하기 위한 통신 규약. 암호화 되어있지 않기 때문에 서버와 클라이언트 사이에서 전송되는 데이터의 보안이 취약하다. HTTPS : SSL나 TLS (이전 SSL이 TLS로 이름이 바뀐 것이기 때문에 사실상 둘은 같은 말이지만, 일반적으로는 TLS가 SSL이란 이름으로 사용된다.) 을 이용해서, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송한다. SSL : SSL 인증서는 클라이언트와 서버 간의 데이터 전송을 위한 통신을 제 3자가 보증하는 문서이며, 클라이언..
210317 오늘 배운 내용 서버-클라이언트 구조 HTTP API Ajax Fetch API 클라이언트-서버 : 서비스 요청자인 클라이언트와, 리소스 제공자인 서버간의 작업을 분리시켜 주는 분산 애플리케이션 구조이자 네트워크 아키텍처. 클라이언트 : 네트워크를 이용해 서버 시스템에 연결된 사용자 측. 서버에서 받아온 데이터를 화면에 나타내고 사용자의 요청을 서버로 전달한다. 대표적으로 웹 브라우저가 해당한다. 서버 : 데이터를 저장 및 관리, 처리할 수 있다. 클라이언트와 서버는 1:N의 구조를 가질 수 있으며, 일반적으로 서버는 다수의 클라이언트를 상대하게 되기 때문에 큰 용량을 가진다. 데이터베이스 : 위에서 서버에 데이터를 저장할 수 있다고 언급했지만, 서버는 주로 리소스를 전달해 주는 역할만 하고, 일반적으로..
[Data Structure] Stack, Queue 스택 (Stack) LIFO (Last Input First Out) 데이터는 스택의 끝에만 삽입 가능 데이터는 스택의 끝에서만 읽기 가능 데이터는 스택의 끝에서만 삭제 가능 top : 스택에서 가장 위에 존재하는 데이터 push : 스택에 데이터 추가 pop : 스택에서 데이터를 제거하고 해당 데이터를 반환 실생활에서 스택의 사용 예제: 브라우저의 뒤로 가기, 앞으로 가기 큐 (Queue) FIFO (First Input First Input) 데이터는 큐의 끝에만 삽입 가능 데이터는 큐의 앞에서만 읽기 가능 데이터는 큐의 앞에서만 삭제 가능 first : 큐에서 가장 아래에 존재하는 데이터 enqueue : 큐에 데이터를 추가 dequeue : 큐에서 데이터를 제거하고, 해당 데이터를 반환 실생활에서..
[JavaScript] 상속과 prototype, class 보호되어 있는 글입니다.