본문 바로가기

WEB24

[Spring] 웹소켓(Websocket) 개념과 예제 [Spring] 웹소켓(Websocket) 개념과 예제 웹소켓(Websocket) 이란 이미지 출처: https://www.vaadata.com/blog/websockets-security-attacks-risks/ 웹소켓(WebSockets)은 양방향 통신을 지원하는 네트워크 프로토콜로, 클라이언트와 서버 간의 실시간 데이터 전송을 위해 사용됩니다. 기존의 HTTP 프로토콜은 클라이언트가 서버에 요청을 보내고 서버가 응답을 반환하는 단방향 통신을 지원하였지만, 웹소켓은 이와 달리 양방향 통신을 가능하게 해줍니다. 웹소켓은 주로 웹 애플리케이션에서 실시간 통신을 구현하는 데 사용되며, 대부분의 최신 브라우저와 서버 측 언어에서 지원됩니다.JavaScript를 사용하여 클라이언트 측에서 웹소켓을 다루는 것.. 2023. 8. 11.
HTTP 상태코드의 종류와 의미 HTTP 상태코드 (1xx, 2xx, 3xx, 4xx, 5xx) 의미 HTTP 상태코드 종류 HTTP의 상태코드란 클라이언트가 보낸 요청에 대해 처리 상태를 알려주는 기능입니다. 상태코드는 크게 5가지 타입이 존재하며 각 타입은 다음과 같은 의미를 가지고 있습니다. 1xx(정보): 서버가 요청을 수신했으며 계속 처리 중임을 나타내는 중간 응답입니다. 2xx(성공): 클라이언트의 요청이 성공했음을 나타냅니다. 3xx(리디렉션): 클라이언트가 요청을 완료하기 위해 리디렉션과 같은 추가 작업을 수행해야 함을 나타냅니다. 4xx(클라이언트 오류): 누락되거나 잘못된 매개변수와 같은 클라이언트 요청으로 오류가 있음을 나타냅니다. 5xx(서버 오류): 요청을 처리하는 동안 서버 측에서 오류가 발생했음을 나타냅니다... 2023. 5. 17.
HTTP 메서드의 안전, 멱등, 캐시가능 개념 이해하기 HTTP 메서드(GET/POST...)와 안전, 멱등, 캐시가능 개념 HTTP API란 HTTP API는 HTTP 프로토콜을 사용하여 인터넷을 통해 통신하는 방법입니다. 일반적으로는 클라이언트에서 서버측으로 요청을 보낸후에 응답을 다시 받을수있는 엔드포인트의 집합으로 구성됩니다. 웹 애플리케이션 및 기타 네트워크 소프트웨어 시스템을 구축하는 데 널리 사용되고 서로 다른 소프트웨어 구성 요소가 표준화된 방식으로 데이터를 통신하고 교환할 수 있습니다. HTTP API의 장점 HTTP API는 HTTP를 지원하는 모든 프로그래밍 언어 또는 플랫폼과 함께 사용할 수 있으므로 플랫폼 독립적이다. HTTP 및 웹 프로그래밍에 대한 기본 지식만 있으면 되므로 상대적으로 구현하기 쉽다. 증가된 트래픽을 처리하기 위해 .. 2023. 4. 23.
HTTP 기본개념 (HTTP/1.1, Stateful, Stateless, 비연결성, 지속연결) HTTP 기본개념 (HTTP/1.1, Stateful, Stateless, 비연결성, 지속연결) HTTP(Hypertext Transfer Protocol)는 인터넷에서 웹페이지와 같은 리소스를 전송하기 위한 프로토콜입니다. HTTP는 클라이언트와 서버 간에 요청과 응답을 전송하며, 일반적으로 웹 브라우저에서 사용됩니다. 전송되는 데이터의 종류는 우리가 주로 사용하는 이미지, 텍스트, 영상 뿐만아니라 json, xml 등등 모든 형태의 데이터를 전송할수 있습니다. HTTP 버전 HTTP/0.9 HTTP의 초기버전으로 단순히 HTML 문서를 전송하는 용도로 사용되었습니다. GET 메소드만 지원했으며, 응답 메시지는 HTML 문서 자체였고 HTTP 헤더는 없었습니다. HTTP/1.0 HTTP/0.9에서 발전.. 2023. 2. 28.
[HTTP] URI와 웹브라우저의 요청 흐름 (URL, URI, URN, TCP/IP패킷) [HTTP] URI와 웹브라우저의 요청 흐름 URI는 Uniform Resource Identifier의 약자로 통합 자원 식별자 라는 의미입니다. URI 뿐만 아니라 URL이라는 단어도 많이 들어보았을텐데 URL, URL 추가로 URN은 서로 어떤관계이며 어떤 의미를 가지고 있는지 대해 알아보겠습니다. URI URI는 로케이터(Locater) 또는 이름(Name) 으로 분류되거나 둘다로 분류될수 있습니다. 일반적으로 URN은 잘 사용되지않고 URL을 주로 사용하므로 URI, URL는 동일한 개념으로 볼수 있습니다. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할수 있는 모든것 Identifier : 다른 항목과 구분하는데 필요한 정보 URL 의미와 구조 URL.. 2023. 2. 27.
[HTTP] 인터넷과 네트워크의 기본 개념 (IP, TCP/UDP, PORT, DNS) [HTTP] 인터넷과 네트워크 인터넷을 이용하면 물리적으로 얼마나 멀리 떨어져있든지 간에 우리는 컴퓨터나 스마트폰을 통해 통신할수 있습니다. 지금까지 Spring을 포함해 다른 프레임워크 혹은 다른 언어로 개발했던 API 서버들 역시 인터넷을 통해 서비스를 제공하고 있는데 우리가 이렇게 인터넷으로 통신할수 있는 원리와 내부적으로 사용되는 기본 개념들에 대해 알아보겠습니다. 1. IP(Internet Protocol) 우리가 흔히 말하는 IP란 인터넷 프로토콜의 약자입니다. IP의 역할은 인터넷에서 단말기끼리 통신할때 각각의 지정된 IP주소로 데이터를 전달하기 위해 사용됩니다. 이때 전달되는 데이터의 단위는 패킷(Packet) 이라는 통신 단위로 전달합니다. IP패킷의 규격은 출발지 IP, 목적지 IP, .. 2023. 1. 31.
[Spring] 객체지향 설계의 5원칙 (SOLID) #다형성 #의존관계 #인터페이스 분리 [Spring] 객체지향 설계의 5원칙 (SOLID) SOLID란 클린코드의 저자인 로버트 마틴이 제시한 좋은 객체지향 설계의 5가지 원칙을 정리한 내용입니다. SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙(Open/Closed principle) LSP: 리스코프 치환 원칙(Liskov substituion principle) ISP: 인터페이스 분리 원칙(Interface segregation principle) DIP: 의존관계 역전 원칙(Dependency inversion principle) 1. SRP, 단일 책임 원칙 단일 책임 원칙이란 한 클래스는 하나의 책임만을 갖는다는 의미입니다. 하나의 책임이란 동작을 뜻하며 의도한 동작과.. 2023. 1. 11.
[Spring] @RequestMapping HTTP Header 데이터 유형 / produces, consume 의미와 역할 [Spring] @RequsetMapping produces, consume 의미와 역할 @Mapping 어노테이션의 역할 Spring Boot 기반으로 웹 어플리케이션을 개발하게 되면 외부에서 들어오는 url을 처리할수 있도록 여러가지 Mapping 어노테이션을 사용하게 됩니다. 스프링 4.3 버전 이전에는 @RequestMapping만 있었지만 역할을 명시적으로 분리하기 위해 @GetMapping, @PostMapping, @DeleteMapping, @PostMapping, @PatchMapping 어노테이션들이 탄생했습니다. 컨트롤러에서 이런 Mapping 어노테이션들을 사용할때 파라미터로 value 값만 지정하여 url 경로에 대한 정의만 하는 경우도 있지만 컨트롤러를 통해 들어오거나 반환해줘야.. 2022. 7. 6.