CS

CS공부

CORS (Cross-Origin Resource Sharing) 란?

CORS란 CORS 웹개발에서 중요한 보안 관련 주제 중 하나로, "Cross-Origin Resource Sharing" (교차 출처 리소스 공유) 의 약어이다. 서로 다른 도메인 간에 데이터 요청과 응답을 허용하는 웹 보안 메커니즘으로 출처가 다른 자원들을 공유한다는 의미이다. 쉽게 말해, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. 웹 브라우저에서 실행되는 스크립트가 다른 출처(도메인)에서 리소스를 요청할 때, 동일 출처 정책 (Same-origin policy)에 따라 요청을 차단하는데, 이를 허용하기 위해 필요한 것이 CORS이다. CORS에 대해 자세히 알기 전에 출처 와 동일 출처 정책 이 무엇인지 먼저 알아보자. 출처란? 여기서 출처가 무엇인지, 어디서부터 ..

CS공부

로드밸런싱 (Load Balancing) 이란

로드밸런싱 (Load Balancing) 이란 로드 밸런싱이란, 로드 + 밸런스 -ing 를 합친 말이다. 로드 : 서버가 받는 부하 (트래픽) 로드밸런싱 (Load Balancing) 은 이런 트래픽들을 잘 밸런싱하여 서버에게 골고루 분산시켜 주는 모듈이다. 로드밸런서 (Load Balancer) 는 클라이언트와 Server pool(서버 그룹) 사이에 위치해, 서버의 부하를 분산시키는 하드웨어 또는 소프트웨어를 말한다. 그렇다면 로드밸런서가 왜 필요할까? 예를 들어서비스를 런칭했다고 치자. 유저에게 오는 쿼리 개수가 1000개 이상 늘어난다고 하면 어떻게든 서버가 잘 유지가 될 수도 있겠지만 앱이 커지고 수천만명, 수억 명의 유저가 몰린다면 한 대의 애플리케이션 서버로 감당 가능하기 힘들다. 이처럼,..

CS공부

서블릿(Servlet)이란?

서블릿(Servlet) 이란? 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. - 위키백과 : 자바 서블릿 서블릿이란, 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다. 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 수행하고 웹 브라우저에 HTTP 형식으로 응답(Response) 한다. 예를들어, 사용자가 로그인을 하려 ID, PW를 입력하고 로그인 버튼을 누른다면 서버는 클라이언트의 ID,PW를 확인한 후 다음 페이지를 띄워주어야하는데 이러한 역할을 수행하는 것이 바로 서블릿이다. ..

CS공부

WS(Web Server)와 WAS(Web Application Server) 차이

WS (Web Server) 와 WAS (Web Application Server) 는 웹 개발에서 서로 다른 역할을 수행하는 두 가지 서버 유형이다. 각각의 특징을 알아보자. WS란? WS (Web Server) 란, 웹 브라우저(클라이언트)로 부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램이다. 클라이언트가 요청을 하면 웹서버는 요청을 해석하고 해당 파일을 찾아 응답한다. 정적 컨텐츠란, 요청 인자값에 상관없이 달라지지 않는 컨텐츠. 즉, 어느 사용자에게든 동일한 컨텐츠를 보여준다. (HTML, CSS, Image 등) APACHE, Microsoft IIS, Nginx 등이 있다. WAS란? WAS의 등장 배경 1990년대 후반, 인터넷이 보급되며 웹 브라우저를 사용..

CS공부

쿠키(Cookie)와 세션(Session)의 차이

쿠키와 세션의 필요성 쿠키와 세션일 왜 필요할까? 에 대해 묻는다면 아마 HTTP의 특징 때문일 것이다. HTTP에는 서버가 응답을 완료하면 연결이 끊어버리는 성질이 있는 비연결성(Connetionless) 요청에 답하는 동시에 연결을 끊고 통신을 종료하기 때문에 상태를 저장하지 않는다는 무상태성(Stateless) 이라는 큰 특징이 있는데 자주 사용하는 웹사이트에 들어갈 때마다 매번 로그인해야 한다던가 똑같은 팝업창이 매번 나온다던가 하는 등의 번거로움을 줄이기 위해 쿠키(Cookie) 와 세션(Session)이 등장했다. HTTP 특징 자세히 알아보기 쿠키(Cookie) 란? 크롬, 사파리 같은 브라우저에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 쿠키는 클라이언트의 상태 정보를 로컬(브라우..

CS공부

동기와 비동기 / 블록과 논-블록

동기 (Synchronous) 동기는 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행하는 직렬적인 일처리를 말한다. 예를들어, A작업이 모두 진행될 때까지 B작업은 대기 상태에 있는다. 동기는 설계가 간단하고 직관적이라는 장점이 있는 반면, 응답이 올 때까지 대기해야 하므로 비효율적이라는 단점이 있다. 비동기 (Asynchronous) 비동기는 서버에서 요청을 보냈을 때 응답상태와 관련 없이 다음 동작을 수행하는 병렬적인 일처리를 말한다. 예를들어, A작업에 대한 요청을 보냄과 동시에 B작업을 실행한다. A작업은 결과값이 나오는 대로 출력한다. 비동기는 동기에 비해 복잡하고 결과가 주어지는 데까지 시간이 걸리지만, 그 시간 동안 다른 작업을 할 수 있으므로 효율적으로 자원을 사용할 수 있다는..

CS공부

[HTTP] HTTP 메서드 및 상태코드

✏️HTTP 개념 및 진화과정 보러가기 HTTP 메서드 HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 총 9가지 종류가 있다. 주요 메서드 5가지 1. GET - 리소스를 조회한다. - 서버에 전달하고 싶은 데이터는 Query를 통해 전달한다. - 메세지 바디를 사용할 수 있지만 지원하지 않는 곳이 많아 권장하지 않는다. GET/MEMBER/1 2. POST - 요청데이터를 처리하며, 주로 데이터 등록에 사용한다. - 메세지 바디 안에 데이터를 담아 서버로 요청데이터를 전달한다. - 서버는 요청데이터를 처리한다. - 메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다. - 주로 전달된 데이터로 신규 리소스를 등록하며 프로세스 처리에 사용한다. POST..

CS공부

[HTTP] HTTP의 개념 및 진화

✏️HTTP 메서드 및 상태코드 보러가기HTTP란?HTTP (Hyper Text Transfer Protocol ) 란 HTTP는 월드 와이드 웹 (World Wild Web, WWW) 에 내재된 프로토콜로 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이기도 하다. 클라이언트 서버 프로토콜(Client-Server Protocol) - 클라이언트에서 요청을 보내면 서버에서 응답을 하는 규칙 프로토콜 (Protocol) - 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계 HTTP의 시작과 진화HTTP의 진화과정을 간단하게 설명하면 아래 그림과 같다. HTTP/0.9 ( = 원-라..

DEV장화
'CS' 태그의 글 목록