본문 바로가기
반응형

IT 개인 공부/Web15

HTTP 프로토콜 발전 대부분의 인터넷은 HTTP 프로토콜을 기반으로 통신한다. HTTP 프로토콜은 Hypertext Transfer Protocol의 약자로 TCP/IP 위에서 작동하는 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. HTTP는 1965년부터 등장하여 부족한 성능을 개선해나가면서 현재 HTTP 3.0 버전까지 등장하였다. Naver, Google 등 다양한 웹사이트를 접속하면 여러 버전의 HTTP를 사용 중인 것을 확인할 수 있다. HTTP는 TCP/IP 계층의 Application 계층에서 동작한다. 또한 Application 계층의 프로토콜들은 추가적인 기능을 제공하기 위해 Transport 계층의 TCP or UDP 프로토콜을 활용한다. 기본적으로 HTTP는 연결 지향적이.. 2021. 9. 2.
프레임워크 vs 라이브러리 vs API 개발자라면 프레임워크, 라이브러리, API를 모두 들어봤을 것이다. 다른 개념이지만 헷갈릴 수 있는 요소를 충분히 가지고 있기 때문에 애매하게 알고 넘어간다면 누군가 물어봤을때 대답하는데 있어 난처해지는 상황이 발생할 수 있다. 따라서 이들에 대해서 정리해보도록 하자. 프레임워크 범용 기능들을 제공해줌으로써 애플리케이션을 개발하기 쉽도록 해주는 소프트웨어이다. 덕분에 개발자는 핵심 로직에만 집중할 수 있음 Java로 Web 애플리케이션을 개발할 경우 Servlet 관련 로직들을 구현해야 하지만, Spring 프레임워크를 사용하면 이러한 부분들을 추상화시키고 @RequestMapping 같은 기능으로 쉽게 구현할 수 있게 편의성을 제공해줌 제어의 흐름을 개발자가 아닌 프레임워크가 가지고 있음 즉, 프레임워.. 2021. 8. 30.
캐시(Cache) : 검증 헤더와 조건부 요청 클라이언트가 특정 데이터를 자주 요청한다고 하자. 해당 데이터를 매번 요청마다 서버를 통해 DB에게 접근하여 반환하는 방법은 상당히 비효율적이다. 왜냐하면 이전에 사용했던 데이터와 새롭게 요청하는 데이터는 차이가 없음에도 불구하고 비싼 네트워크 통신을 통해 해당 데이터를 서버로부터 다운로드하여야 하기 때문이다. 이를 해결하기 위해 우리는 캐시(Cache)라는 것을 사용한다. 캐시(Cache)란 한번 조회된 데이터를 미리 특정 공간에 저장해놓고, 똑같은 요청이 발생하게 되면 서버에게 다시 요청하지 말고 저장해놓은 데이터를 제공해서 빠르게 서비스를 제공해주는 것을 의미한다. 즉, 캐시를 통해 자주 사용하는 데이터를 저장하여 서버의 부담을 줄일 수 있게 된다. 하지만 캐시는 보통 디스크나 메모리에 저장하기 때.. 2021. 8. 28.
SSR(서버 사이드 렌더링) vs CSR(클라이언트 사이드 렌더링) 렌더링(Rendering)이란 컴퓨터 프로그램을 사용하여 모델 또는 이들을 모아놓은 장면인 씬 파일(scene file)로부터 영상을 만들어내는 과정을 말한다. 따라서 웹 상에서의 렌더링은 서버로부터 받은 정보(HTML)를 브라우저 화면에 표현하는 것을 의미한다. 브라우저 화면을 의미하는 페이지는 정적 페이지와 동적 페이지가 존재한다. 정적 페이지는 누구에게나 동일한 화면을 보여주지만 동적 페이지는 사용자에 따라 다른 페이지를 보여줘야 한다. 간단한 예시로 로그인을 성공하면 해당 유저의 로그인 정보가 페이지에 나타나야 할 것이다. 따라서 사용자의 요청에 해당하는 페이지를 보여주기 위해 서버로부터 필요한 데이터들을 받아서 최종 HTML를 구성해야 한다. 이때 서버 or 클라이언트 중 누가 최종 HTML를 .. 2021. 8. 19.
Forward와 Redirect 방식의 차이점 & PRG(Post/Redirect/Get) 현재 작업 중인 페이지에서 어떤 요청으로 인해 다른 페이지로 이동할 경우 Forward 방식과 Redirect 방식, 2가지 방식으로 페이지를 전환해준다. 두 방식의 공통점은 자신에게 요청이 왔을 때 자신이 처리할 수 없기 때문에 다른 URL에게 요청 처리를 위임한다는 점이다. 하지만 요청 처리를 위임하는 과정에서 차이점이 발생한다. 그렇다면 이 두 방식의 차이점은 무엇일까? 하나씩 알아보도록 하자. 1. Forward 방식 Forward 방식은 URL 1에게 요청을 보내게 되면 해당 요청을 자신이 처리할 수 없기 때문에 다른 URL 2에게 직접 위임하여 처리하도록 하는 방식 서버 내부에서 처리하기 때문에 초기의 Request, Response 정보를 유지한 채로 전송된다. 또한, 서버 내부에서 일어나는.. 2021. 8. 17.
URI vs URL vs URN URI는 Uniform Resource Identifier의 약자로써 인터넷의 자원을 나타내는 고유 식별자를 의미한다. 즉, 인터넷에 존재하는 모든 자원을 식별하기 위한 문자열의 구성을 뜻한다. ​나의 블로그 주소인 https://sorjfkrh5078.tistory.com/ 문자열도 나의 블로그를 식별하는 URI이다. ​ URI와 비슷한 개념으로 URL과 URN이 존재한다. ​URI는 인터넷에 있는 모든 자원을 식별하기 위한 고유 식별자라면 URL과 URN은 URI의 하위 개념으로 이들의 관계를 그림으로 나타내면 다음과 같다. URL은 Uniform Resource Locator의 약자로써 URI 내에서 자원의 위치를 뜻하는 Locator를 의미한다. 즉, 인터넷상의 어떤 자원을 식별할 때 위치로 자원.. 2021. 7. 25.
HTTP 통신 vs Socket 통신 대부분의 웹사이트는 HTTP 프로토콜을 통해 서버에게 원하는 데이터를 요청하거나 전송하는 등의 통신을 수행한다. 하지만 당연히 HTTP 통신말고도 데이터를 주고받는 다른 통신 방식들도 존재할 것이다. ​그중 대표적인 방법이 바로 HTTP 통신과 Socket 통신이다. 두 방식 모두 이 둘의 차이에 대해서 간단하게 정리해보려고 한다. ​ 먼저 언급하면 두 방식의 가장 큰 차이는 클라이언트와 서버의 통신을 유지하는지에 대한 여부이다. 그렇다면 각 방식에 대해서 간단하게 알아보도록 하자. ​ 먼저 HTTP 통신이다. HTTP 프로토콜의 특징 중 하나는 비연결성(Connectionless)이다. 즉, 클라이언트와 서버가 연결되어 클라이언트의 요청에 대해 서버가 응답을 하면 연결을 끊어버린다. 또한, 반대로 서버.. 2021. 7. 25.
JSON(Java Script Object Notation) REST에 대해서 공부할 때 일반적으로 JSON or XML 형식을 통해 자원의 상태를 전달한다고 하였다. 최근에는 데이터를 표현하는데 XML을 대체해서 JSON이 많이 활용되기 때문에 흔히 제이슨이라고 부르는 JSON에 대해 공부 및 정리해보려고 한다. ​ JSON의 정의는 "속성-값 쌍" 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 간단하게 얘기하면 데이터를 저장하거나 전송할 때 자주 사용되는 경량의 데이터 형식이다. JSON은 ​원래 Javascript에서 객체를 만들 때 사용하는 표현식이었지만 독립적인 데이터 포맷이기 때문에 다양한 프로그래밍언어에서 JSON을 사용할 수 있다. 이때 JSON을 쉽게 활용할 수 있도록.. 2021. 7. 25.
REST, REST API, RESTful 최근 대부분의 API는 REST API를 제공하는 추세이다. 하지만 REST, REST API, RESTful에 대해 아직까지 잘 모르기 때문에 막상 질문이 들어오면 대답하기가 어렵다. 따라서 이번 기회에 한번 알아보려고 한다. 먼저 공통된 단어인 REST에 대해서 알아보자. ​REST는 Representational State Transfer의 약자로써 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 자원은 문서, 그림, 데이터 등 해당 소프트웨어가 관리하는 모든 것을 의미한다. 일반적으로 JSON or XML 형식을 통해 자원의 상태를 전달하며 최근에는 JSON 방식을 주로 사용한다. ​월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소.. 2021. 7. 25.
반응형