본문 바로가기
728x90

개발새발13

[WEB] HTTP의 진화 2. HTTP/2.0 HTTP/2.0HTTP/2.0은 기존 HTTP/1.1 버전의 성능 향상에 초점을 맞춘 프로토콜이다.HTTP/1.1 까지는 한번에 하나의 파일만 전송이 가능했다. 비록 파이프라이닝 기술이 있었지만, 여러 파일을 전송할 경우 선행하는 파일의 전송이 늦어지면 HOLB이 발생했다. 따라서 HTTP/2.0에서는 이 문제를 해결하기 위해 여러 파일을 한번에 병렬로 전송한다. 이 덕분에 웹 응답 속도가 HTTP/1.1에 비해 15~50% 향상되었다.   Binary Framimg LayerHTTP/1.1과 HTTP/2.0의 주요한 차이점은 HTTP 메시지가 1.1 에서는 text로 전송되었던 것과 달리, 2.0 에서는 binary frame 으로 인코딩되어 전송된다는 점이다.  또한 HTTP 헤더에 대해서 배웠을 때.. 2024. 7. 17.
[WEB] HTTP의 진화 1. HTTP/0.9~HTTP/1.1 HTTP (HyperText Transfer Protocol)은 월드 와이드 웹의 기반이 되는 프로토콜이다.    HTTP/0.9HTTP의 시작은 1989년 팀 버너 리(Tim Berners-LEE)에 의해 제안된 인터넷의 하이퍼 텍스트 시스템이다. 초기 버전인 HTTP/0.9는 매우 단순한 프로토콜이었다.요청은 단일 라인으로 구성되어 가능한 메서드는 `GET`이 유일했으며, 헤더(header)도 없어 요청과 응답이 극히 단순명료했다. 또한 상태 코드(status code)도 없었기 때문에 문제가 발생할 경우 특정 html 파일을 오류에 대한 설명과 함께 보냈다. ▷ Request ▷ Response HTTP/0.9 스펙을 요약하면 다음과 같다.TCP/IP 링크 위에서 동작하는 ASCII 프로토콜GET .. 2024. 7. 7.
[WEB] Web Server와 WAS의 차이 Web Server 웹 서버는 클라이언트가 요청한 정적인 컨텐츠(HTML, jpeg, css 등)를 HTTP 프로토콜을 통하여 제공해주는 서버로, 정적 컨텐츠 제공이 가장 큰 역할이다. 동적인 요청이 들어왔을 경우엔 해당 요청을 웹 서버에선 처리할 수 없기 때문에 WAS 에게 보내주고, WAS 에서 처리한 결과를 클라이언트에게 전달해주는 역할도 한다. 대표적인 예로는 Nginx, Apach Server 등이 있다.  WAS(Web Application Server)웹 서버로부터 오는 동적인 요청을 처리하는 서버를 말한다.WAS = Web Server + Web Container WAS 는 웹 서버와 웹 컨테이너가 합쳐진 형태로서, 웹 서버 단독으로는 처리할 수 없는 DB 조회나 다양한 로직 처리가 필요.. 2024. 6. 27.
[자료구조] JavaScript에서 배열의 pop 과 shift JavaScript에서 배열의 pop 과 shift 는 스택/큐 구현을 쉽게 해준다.  코딩테스트 연습을 하다보니 자꾸 시간 초과가 나서 왜 때문인가 찾아봤더니만, pop 메서드는 시간 복잡도 O(1) 을 가지는 반면, shift 메서드는 시간 복잡도 O(n) 을 가진다.   poppop 메서드는 배열의 마지막 요소를 제거하고 그 요소를 반환한다. const arr = [1, 2, 3, 4, 5];const lastElement = arr.pop(); // lastElement는 5, arr는 [1, 2, 3, 4] 시간 복잡도는 O(1) 으로, 배열의 마지막 요소에 접근하고 이를 제거하는 작업이므로, 배열의 길이에 관계없이 일정한 시간이 걸린다.  shift shift 메서드는 배열의 첫번째 요소를 .. 2024. 6. 24.
[알고리즘] 탐색 알고리즘 (feat. DFS와 BFS) 코딩테스트를 준비해본 사람이라면 BFS와 DFS 때문에 머리를 싸맨 경험이 한번쯤은 있을 것이다. BFS와 DFS는 탐색 알고리즘 중의 하나인데,탐색 알고리즘이란 데이터 구조(ex. 배열, 트리, 그래프) 내에서 특정 요소를 찾기 위해 사용되는 알고리즘이다.  선형 탐색 (Linear Search)설명: 가장 단순한 형태의 탐색 알고리즘으로, 리스트의 첫 번째 요소부터 마지막 요소까지 순차적으로 탐색하며 목표 값을 찾는다.시간 복잡도: O(n) (n: 리스트의 크기) 예제 코드: function linearSearch(arr, target) { for (let i = 0; i  이진 탐색 (Binary Search)설명: 정렬된 리스트에서 효율적으로 목표 값을 찾는 알고리즘이다. 리스트의 중간 값을.. 2024. 5. 28.
[알고리즘] 시스템 설계 인터뷰 전에 알아둬야 할 알고리즘 나에게 알고리즘은 그저 이직을 준비할 때마다 잠깐잠깐씩 공부하는 것 중 하나였다. 이직에 성공하면 다시 거들떠도 안보는... 연차가 쌓이며, 탄탄한 CS(Computer Science) 지식이 얼마나 중요한지 뼈저리게 깨닫고 있다. 인터뷰를 앞둔 사람 뿐만 아니라 Software Engineer 라면 알아두는게 좋은 알고리즘을 살펴보자. 나는 이 중에 1/3 도 모르는듯 하다. 열심히 공부하자 요니...☆ 알고리즘 중요도 사용되는 예시 참고 사이트 Geohash ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://www.pubnub.com/learn/glossary/what-is-geohashing/ Quadtree ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://engblog.yext.com/post/.. 2022. 8. 18.
728x90
반응형