[부스트 캠프] 우리만의 네트워크 만들기
·
iOS
👋 들어가기 전우리의 두번째 도전은 프로젝트 전반적으로 사용될 범용적인 라이브러리를 만드는 도전이다.  우리는 크게 2가지 범용 라이브러리를 기획했다. 첫번 째는 네트워크 통신을 담당하는 라이브러리와 두번 째는 uikit 레이아웃을 도와주는 라이브러리가 있다.실제 오픈소스로는 네트워크 쪽은 알라모파이어, 모야,  레이아웃은 스냅킷 등이 있다. 우린 위 오픈소스들을 컨셉을 참고하고 , 당장 사용하기 쉽게 만들기로 계획했다.여기서 나는 네트워크 팀으로 합류하게 되었다. 위 사진은 프로토 타입으로 정리한 백로그다. 각 과정을 간단하게 살펴보자. P.S 레이아웃 쪽은 EasyLayout이라는 명칭으로 만들어뒀으니 궁금하면 살펴보길 바란다.(추후에 Package 형태로 교체할 예정) iOS08-Shook/Pro..
HTTP [ HTTP Version, HTTPS ]
·
CS/Network
앞서 배운 response와 request에 각각 http version이 명시되어 있는데 이번에는 http version 특성을 간단하게 정리해보자. HTTP/1.0한 연결당 하나의 요청을 처리하도록 설계됨TCP 커넥션이 HTTP 요청마다 3-way Handshake와 TearDown 반복RTT증가RTT: 패킷이 목적지에 도달하고 다시 출발지로 돌아오기 전까지 걸리는 시간 = 패킷 왕복 시간 RTT 증가를 해결하기 위해 시도한 방법이미지 스플리팅많은 이미지가 합쳐져 있는 하나의 이미지를 받아 position을 이용하여 단일 이미지처럼 표기하는 방법코드 압축개행 문자, 빈칸등을 없애서 코드의 크기를 최소화하는 방법 이미지 Base64 인코딩이미지 파일을 64지법으로 이루워진 문자열로 인코딩이 방법을 사용..
TCP / IP [송수신 과정, 캡슐화, PDU]
·
CS/Network
저번 시간에는 네트워크를 통해 데이터를 주고 받을 때 어떤 계층을 거쳐야하는 지, 그 계층에는 어떤 규칙 (protocol)이 있는지 살펴봤다. 이번시간은 실제 데이터를 요청할 때 일어나는 일을 계층별로 알아보자. 해당 과정은 클라이언트에서 서버로 보내는 상황을 기반으로 학습해보자. 캡슐화클라이언트 쪽에서 요청을 보내면 요청은 각 계층에서 캡슐화 과정을 거친다. 캡슐화란 데이터를 전달할 때 각 계층마다 아래로 전달할 때 그 계층에 헤더를 삽입하여 전달하는 과정이다. 1. 전송계층데이터가 세그먼트(TCP) 또는 데이터그램(UDP)가 되며 TCP(L4) 헤더가 붙게 된다.2. 인터넷 계층IP(L3) 헤더가 붙으며 패킷화가 진행된다.3. 링크 계층프레임 헤더와 프레임 트레일러가 붙어 프레임화가되어 서버로 전송..
HTTP [정의 및 구성 요소]
·
CS/Network
정의HTTP는 HyperText Transfer Protocol의 약자로 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다.구성  1. 클라이언트  클라이언트는 사용자를 대신하여 동작하는 모든 도구이며 역할은 주로 브라우저에 의해 수행된다.브라우저는 항상 요청을 보내는 개체이다.2. 웹서버웹 서버(하드웨어)웹사이트의 컴포넌트 파일들을 저장하는 컴퓨터컴포넌트 파일에는 HTML, Images, CSS, JavaScript가 존재컴포넌트 파일을 인터넷을 통해 클라이언트에 전달웹 서버(소프트웨어)사용자가 어떻게 호스트 파일들에 접근하는지는 관리웹 서버는 주소 HTTP 프로토콜을 사용하여 클라이언트의 요청을 처리 및 응답3. 프록시웹 브라우저와 서버 사이에서는 수많은 컴퓨터와 머신이 H..