Programming/Web 36

Web Socket 웹 소켓 개념 정리 (HTTP, Ajax)

Web Socket 이전 웹 소켓이 나오기 전에 통신은 HTTP 통신, Ajax 통신을 사용했습니다. 이 두 가지 통신 방법은 HTTP를 기반으로 이루어졌으며 HTTP는 Request, Response 기반의 Stateless Protocol입니다. stateless protocol은 클라이언트가 서버에 요청을 보내야만 응답을 얻을 수 있는 단방향 통신인데요. 이 경우 서버에 변경사항이 발생했을 때 서버는 클라이언트에 변경사항을 알릴 방법이 없다는 문제가 발생하게 됩니다. 이러한 문제를 해결하기 위해 요청을 보내지 않아도 서버에서 응답을 줄 수 있는 기술인 '웹 소켓 (Web Socket)'이 HTML5의 표준 기술로 개발되었습니다. Web Socket 웹 소캣 개념 정리 웹 소켓(Web Socket)은..

Programming/Web 2021.08.26

(Web) HTTP 통신의 개념과 예제

HTTP (Hyper Text Transfer Protocol)란, 브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 HTML(웹 문서를 만들기 위한 언어) 문서를 주고받는데 쓰이는 통신 프로토콜입니다. * 초기에는 HTTP 파일을 전송하기 위한 목적으로 만들어졌으나 현재는 JSON, Image 파일 등 또한 전송할 수 있습니다. 일반적으로 전송 계층 프로토콜로 TCP를 사용하고, 네트워크 계층 프로토콜로 IP를 사용합니다. 이 두 계층을 합쳐서 TCP/IP라는 이름으로 부릅니다. TCP/IP에서는 IP 주소를 사용해서 통신할 컴퓨터를 결정하고, 포트 번호를 사용해서 해당 컴퓨터의 어떤 프로그램과 통신할지를 결정합니다. (HTTP에서는 기본적으로..

Programming/Web 2021.08.26

런타임 Run Time, 컴파일 타임 Compile Time 차이점

런타임 Run Time, 컴파일 타임 Complie Time 런타임과 컴파일 타임은 소프트웨어 프로그램 개발의 단계를 나타내는 프로그래밍 용어입니다. 프로그램을 만들기 위해 개발자는 프로그램이 작동하는 방식을 정의하는 소스코드를 작성합니다. 이 소스코드가 실행 가능한 프로그램이 되려면 컴퓨터가 인식할 수 있는 기계어로 컴파일 되어야 합니다. 컴파일은 일반적으로 사람이 이해하기 쉬운 자연어 형태(고수준 언어)를 기계어, 어셈블리어(저수준 언어)로 번역하는 것인데, 이렇게 컴파일이 진행되는 과정을 컴파일 타임(Compile Time)이라고 합니다. 그리고 이렇게 컴파일 된 프로그램을 사용자가 실행할 수 있습니다. 정상적으로 컴파일 된 응용 프로그램이 실행 중일 때를 런타임(Run Time)이라고 합니다. 런..

Programming/Web 2021.08.24

Redis란? 레디스의 기본적인 개념 (인메모리 데이터 구조 저장소)

Redis란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소입니다. * db-engines.com 에서 key, value 저장소 중 가장 순위가 높습니다. Redis에 대해서 더 자세하게 알아보기 전 캐시 서버(Cache Server)에 대해서, 데이터 베이스가 있는데도 Redis라는 인메모리 데이터 구조 저장소를 사용하는 이유는 무엇일까요? 데이터 베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생하여 다운되더라도 데이터가 손실되지 않습니다. 하지만 매번 디스크에 접근해야 하기 때문에 사용자가 많아질수록 부하가..

Programming/Web 2021.08.12

RESTful API 개념과 특징, 설계 시 중요한 점 (Representational State Transfer)

RESTful API (Representational State Transfer) 란, REST API는 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용한 웹의 장점을 최대한 활용한 아키텍쳐 스타일입니다. 자원의 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보) 를 주고받는 모든 것을 의미하며, 조금 더 자세하게는 HTTP URI로 자원을 표현하고, Method (GET, POST, PUT, PATCH, DELETE)를 통해 자원에 대한 처리를 합니다. RESTful API는 Resource (자원) + Method (행위) + Representation of Resource (자원의 형태) 세 가지로 구성됩니다. Resource : 서버는 Unique 한 ID를 가지는 Resource를 ..

Programming/Web 2021.08.10

웹사이트 네이버 웹 페이지 최적화 (robots.txt, 선호 URL, Open Graph, 모바일 사용성)

개발한 웹사이트를 배포하고 서비스 하는 부분에 있어서 검색엔진 최적화는 중요한 부분입니다. 최적화 과정에서 적용한 네이버 서치어드바이저 Search Advisor 웹 페이지 최적화를 적용한 방법을 보겠습니다. 최초 사이트 등록에서 사이트의 소유 확인을 위한 HTML 태그를 넣고 소유 인증을 하고 나서 해당 사이트 주소를 입력하면 웹 페이지 최적화 테스트를 할 수 있습니다. 위 부분에서 선호 URL, robots.txt, 페이지 제목, 페이지 설명, Open Graph 제목, Open Graph 설명, 모바일 사용성 부분을 활성화 시키는 방법입니다. robots.txt 를 제외한 모든 것은 html 의 태그 안에서 적용할 수 있습니다. thymeleaf 또는 tiles 탬플릿을 사용하신다면 해당 탬플릿의 ..

Programming/Web 2021.08.03