개발 공부 17

Request를 최소로 해야되는 이유

최근에 42서울에 있는 모든 사람들의 유저 데이터를 가져와야되는 이유가 생겼다. 그래서 42API로 전체를 가져오는 로직을 제작하고 있었는데, 이 과정에서 너무 많은 시간이 걸리는 것을 인지하고 최적화에 나섰다. 처음 시도한 방법은 기본적인 API요청을 기반으로 요청을 작성하였는데, 기본적인 페이지 사이즈는 30이었다. 즉, 한번 GET요청을 던지면 서버에서는 30명의 정보를 내게 리턴해주는 방식으로 작동하였다. 사실 30명이라는 사이즈가 그렇게 크지는 않았지만 전체인원(42를 그만두거나 블랙홀에 빠진 인원)을 포함하여 모두를 가져오다보니, 총 요청이 270번 정도 작동하는 문제가 있었다. 컴퓨터에서 비용은 레지스터

RFC7230 요약(HTTP 아키텍처)

본 내용은 RFC7230을 기반으로 작성되었습니다. 영문판을 기반으로 해석을 통해 작성하였으며, 틀린 내용 댓글로 알려주시면, 수정할 수 있도록 하겠습니다. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로, 네트워크를 기반으로 작동하는 무상태 어플리케이션 레벨 요청/응답 프로토콜을 말한다. 이 응답 프로토콜이 사용하는 것으로는 네트워크 기반 하이퍼 텍스트 정보시스템과 유연한 상호작용을 위한 확장 가능한 메시지 페이로드를 포괄하고 있다. 처음 들으면, 무엇인지 이해하기 힘든데, 중요한 키워드 2가지 무상태와 어플리케이션 레벨만 정리하고 넘어가자 첫번째로, 무상태란 무엇일까? 무상태를 설명하기 위해서는, 그 전에 Connectionless(비연결성)에 대해서 설명해야된다. ..

끝까지 파보는 HTTPS

HTTPS 누구냐 넌! HTTPS == HTTP + SECURE 말 그대로, HTTPS는 보안이 되는 HTTP 프로토콜이다. (영문으로, HyperText Transfer Protocol Secured) HTTPS가 생긴 것을 보면 기존 HTTP는 보안이 취약했는가? 맞다. 기존의 HTTP 프로토콜 예하에서 진행된 통신들은 보안 측면에서 문제가 있었기 때문에 이것을 보완하기 위해서 HTTPS 프로토콜이 만들어졌다. 그렇다면 HTTPS 프로토콜은 어떤 장점들이 있을까? HTTPS 프로토콜이 필요한 이유 3가지 1. 개인정보를 보호받을 수 있다. - 개인정보가 보호받을 수 없으면, 내가 서버로 보내는 내용을 누군가가 가로채서 읽을 수 있다. - 네트워크단에서 내가 보내는 HTTP패킷을 누군가가 읽을 수 있는..

브라우저는 어떻게 작동하는가? (주소창에 엔터를 누르면 생기는 일)

1 단계 : 우리가 브라우저 주소창 내용을 입력하면 어떻게 될까? 웹 브라우저는 당신이 원하는 것이 무엇인지 알고 있다. 웹 브라우저는 사용자가 주소 표시줄에 입력한 내용이 URL인지 검색어인지 확인하여 그게 알맞은 인터페이스를 보여준다. 검색어일 경우에는 바로 설정된 검색 엔진으로 검색하는 기능을, 그리고 사이트인 경우에는 해당 사이트로 넘어갈 수 있도록 조치해준다. 이 과정에서, 브라우저는 미리 준비된 DNS 혹은 서버와 통신함으로써 해당 내용이 URL인지 확인해낸다. (주소창에 입력 된 내용을 준비된 서버로 보내 내용이 URL인지 검색어인지 확인) 2단계 : 사이트의 진짜 주소를 알아낸다. 페이지의 모든 데이터들은 서버에서 오고, 그 서버는 IP주소로 되어있다. 하지만, 18.67.51.57 이런식..

브라우저는 어떻게 작동하는가? (브라우저의 프로세스)

모든 프로그램은 프로세스를 가지고 있다 모든 프로그램은 프로세스를 가지고 있다. Linux를 깔면 당연하게 나오는 CLI의 Shell 조차도 프로세스다. 그렇다면, 웹 브라우저도 프로그램이니 프로세스를 가지고 있을텐데 이 녀석의 아키텍처는 어떻게 될까? 하나의 프로그램이니까 하나의 프로세스만 가지고 있을까? 혹은 두개? 사실 브라우저가 몇 개의 프로세스를 사용하는지는 알 수가 없다. 왜냐하면, 이것은 브라우저마다 작성하기 나름이기 때문이다. 하나의 표준으로 만들어진 아키텍처는 없고, 각각의 브러우저들은 각기 다른 아키텍처를 가지고 있다. 어떤 웹 브라우저는 스레드를 많이 사용하는 프로세스 조금으로 만들어져있기도 하고, 어떤 녀석은 스레드를 조금 만들고 프로세스를 많이 만들어 IPC로 통신하며 작동하기도 ..

브라우저는 어떻게 작동하는가?

들어가면서 현대인들이 가장 많이 사용하는 프로그램은 무엇일까? 단순히 프로그램이라고 하면, 사용하는 휴대전화의 OS를 가장 많이 사용하겠지만, 응용단에서 가장 많이 쓰는 프로그램은 아마도 브라우저 일 것이다. 하지만, 웹 브라우저가 어떻게 돌아가는지 아는 사람은 몇 명이나 있을까? 나는 최근에 프론트로서 프로젝트에 참여하면서 이 신기하고 오묘한 웹브라우저라는 친구에게 꽂혀버렸다. 내가 만든 아주 바보 같은 코드들도 철석같이 알아듣고 내가 원하는 대로 그려주는 이 친구에게 개인적으로 호감이 생겼고, 이런 호감은 이 녀석이 어떻게 작동하는지 알아봐야겠다는 생각으로 이어졌다. 그런 마음을 바탕으로, 나는 웹 브라우저에 대해 잘 알지도 못했지만 수요지식회에 "브라우저는 어떻게 작동하는가?"라는 주제로 발표를 잡..