본문 바로가기

CS17

WebSocket & STOMP의 개념 Polling, Long Polling, SSE(Server Sent Event)HTTP의 이해HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의hbb-devlog.tistory.com이전 글에서 클라이언트와 서버가 데이터를 실시간으로 주고 받는 방법으로 Polling, Long Polling, SSE를 알아보았는데, 이 방법들은 클라이언트와 서버가 동시에 양방향 통신이 불가능하다는 단점이 있다.웹소켓은 HTML5의 새로운 기능으로, 웹 애플리케이션과 서버 간에 상시 연결을 유지할 수 있는 통신 프로토콜이다.HTTP 프로토콜과 다르게 클라이언트와 서버 간의.. 2025. 2. 23.
Polling, Long Polling, SSE(Server Sent Event) HTTP의 이해HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의 모든 형태hbb-devlog.tistory.com HTTP 통신은 요청-응답(Request-Response) 구조를 따르며, 무상태(stateless), 비연결성(connectionless) 이라는 특징을 가진다.즉, 서버는 클라이언트가 요청을 보낼 때만 응답하고, 응답이 완료되면 연결이 종료되는데, 이러한 특성 때문에 실시간 데이터 통신이 필요한 서비스에서는 한계가 존재한다.이를 해결하기 위해 클라이언트와 서버 간 데이터를 실시간으로 주고받는 방법으로 Polling과 Long Polling.. 2025. 1. 13.
OAuth2.0 개념 기존에 로그인 방식은 사이트마다 별도로 가입을 해 사용자가 많은 비밀번호를 사용해야 하며, 서비스 제공자 입장에서는 개인 정보를 직접 관리해야하므로 부담이 있었다.OAuth(Open Authorization)는 인증과 권한 위임을 위한 개방형 표준 프로토콜로, 사용자가 자신의 개인정보를 제3자 서비스(우리 앱)에 직접 제공하지 않고도, 해당 서비스가 플랫폼 내의 정보에 접근할 수 있도록 권한을 부여하는 방식으로 사용한다.OAuth2.0 용어Authentication(인증)Id/Password 확인하여 신원을 체크Authorization(인가)사용자가 플랫폼에 있는 개인 정보 사용을 동의하여 권한 부여Resource서버가 관리하는 사용자 정보Authorization Code인가 단계 이후 Auth Serv.. 2025. 1. 2.
HTTP의 이해 HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의 모든 형태의 데이터를 전송할 수 있으며 서버 간 데이터를 주고 받을 때 역시 HTTP 프로토콜을 사용한다.HTTP의 특징1. 클라이언트-서버 구조위에서 HTTP 통신은 클라이언트와 서버가 서로 데이터를 주고 받는 형태로 되어있다고 하였다.즉 클라이언트가 Request를 보내면 서버가 Response를 보내는 요청-응답 구조로 되어있다.이렇게 클라이언트와 서버를 명확하게 구분함으로써 클라이언트는 UI를 그리는데 집중할 수 있고, 서버에서는 비즈니스 로직과 데이터를 다루는데 집중할 수 있게 된다.2. 무상태(.. 2024. 12. 27.
CORS CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제로 웹 애플리케이션이 리소스가 자신의 출처와 다를 때 브라우저는 요청 헤더에 Origin 필드에 요청 출처를 함께 담아 교차 출처 HTTP 요청을 실행함.CORS는 브라우저에 구현된 스펙으로, 브라우저가 클라이언트의 요청 헤더와 서버의 응답헤더를 비교해서 최종 응답을 결정한다.두 개의 출처를 비교하는 방법은 URL 구성요소 중에서 Protocol, Host, Port 세 가지가 모두 동일한 지 판단CORS의 종류1. Simple Request예비 요청(Preflight.. 2024. 12. 26.
프로세스와 스레드 프로세스의 개념컴퓨터에서 실행 중인 프로그램을 뜻하는 것으로 운영체제(OS)가 프로그램을 실행시키면, 프로세스라는 단위로 관리된다.이 때 각 프로세스는 고유한 메모리 공간을 할당받는데 해당 공간에는 프로그램 코드(명령어들), 데이터(변수, 스택, 힙 등)가 있다.또한 독립적으로 동작하기 때문에 다른 프로세스와 메모리 공간을 공유하지 않는다. CPU: 프로그램의 명령어를 실제로 처리하는 장치메인 메모리(RAM): 프로세스가 CPU에서 실행되기 위해 대기하는 곳으로 프로세스의 실행 코드와 데이터가 여기에 존재한다. 단일 프로세스초창기 컴퓨터의 방식으로 CPU는 한 번에 하나의 작업만 할 수 있는데 이는 실행 중인 프로그램이 있다면 다른 프로그램은 실행할 수 없다. 만약 프로그램이 I/O 작업을 하여 대기 상.. 2024. 12. 26.
웹 서버, WAS, 리버스 프록시 웹 서버웹 서버란 웹 서비스를 지원해주는 하드웨어나 소프트웨어를 의미한다.하드웨어 : 웹 서비스를 지원하는 컴퓨터 시스템을 의미한다.소프트웨어 : 클라이언트로부터 웹 페이지 요청을 받아 정적인 컨텐츠(html, css, jpeg, javascript 등)를 제공하는 컴퓨터 프로그램으로 Apache, Nginx, IIS 등이 있다.만약 정적인 컨텐츠 대신 동적인 컨텐츠를 제공해야 한다면 WAS에게 해당 요청을 전달하고, 처리 결과를 다시 받아와 클라이언트에게 전달해준다.만약 이미지 파일을 클라이언트에게 보내야 한다면? 보통 이미지 파일은 HTML 문서와 함께 클라이언트로 보내지지 않는다. 즉 HTML 문서를 먼저 받은 뒤 그에 맞는 이미지를 다시 서버로 요청하고 그 후에 이미지 파일을 받아오게 됨. 이 때.. 2024. 12. 26.
쿠키, 세션, 토큰 쿠키클라이언트의 상태 정보를 사용자의 브라우저에 저장하는 작은 텍스트 정보로, 웹 서버가 클라이언트에게 보내면 해당 클라이언트는 이를 쿠키 저장소에 저장 후 요청을 보낼 때 이 정보를 함께 전송하여 어떤 클라이언트의 요청인지 식별하는 역할을 한다.Key-Value 쌍으로 구성쿠키 이름, 쿠키 값, 만료시간, 전송할 경로, 전송할 도메인 명, 보안 연결 여부, HttpOnly 여부로 구성예) Set-Cookie: sessionId=abcd1234; Expires=Wed, 21 Oct 2024 07:28:00 GMT; Domain=example.com; Path=/; Secure; HttpOnly하나의 쿠키는 4KB 정도의 크기 제한도메인 당 20개의 쿠키를 가질 수 있음클라이언트는 300개의 쿠키를 저장할.. 2024. 12. 26.
SOLID 원칙 SOLIDSOLID란 객체 지향 설계에서 지켜야 할 5가지 원칙으로 이러한 원칙에 맞게 설계하면 새로운 요구사항이나 변화에 유연하게 대처할 수 있으며 코드의 유지보수를 쉽게하여 개발의 생산성을 올려줄 수 있다.여러 디자인 패턴들이 이러한 SOLID 원칙을 기반으로 만들어졌으며 이는 특정 프로그래밍 언어에 국한되는 것이 아니다.SRP - 단일 책임 원칙(single responsibility principle)한 클래스는 하나의 책임만 가져야 함하나의 클래스는 하나의 기능만 담당할 것하나의 클래스에 여러 기능이 있다면 기능 수정 시 변경 부분이 많아짐하나의 책임이라는 것이 클 수도, 작을 수도 있고 또한 상황에 따라 다를 수 있는데 변경이 있을 때 파급 효과가 적다면 단일 책임 원칙을 잘 따른 것이다.pu.. 2024. 12. 26.