이번 포스팅에서는 HTTP 완벽가이드, 네트워킹과 웹 성능 최적화 기법, 리눅스 커널 이야기, 와이어샤크를 활용한 실전 패킷 분석 책을 활용하였습니다. 4장 Connection 관리 1. TCP Connection이란 HTTP가 메시지를 전송하고자 할 경우, 현재 연결되어 있는 TCP Connection을 통해서 메시지 데이터의 내용을 순서대로 보낸다. TCP는 Segment라는 단위로 데이터 스트림을 잘게 나누고, Segment를 IP Packet이라고 불리는 작은 조각에 담아서 인터넷을 통해 전달한다. 1) TCP와 IP IP(Internet Protocol)은 3계층의 프로토콜로 서로 연결된 네트워크의 인터네트워크를 통해 패킷(3계층의 PDU는 패킷 데이터그램)을 전달하는 목적으로 사용 특징 설명 ..
이번 포스팅에서는 HTTP 완벽가이드 책을 활용하였습니다. 3장 HTTP 메시지 HTTP 메시지는 HTTP 애플리케이션간에 주고받는 데이터의 블록이다. 모든 HTTP 메시지는 요청 메시지나 응답 메시지로 분류된다. 이번에도 HTTP method 까지의 내용을 코드로 구현해보았다. > https://github.com/brainbackdoor/bbd-http-web/blob/master/docs/message/README.md brainbackdoor/bbd-http-web Contribute to brainbackdoor/bbd-http-web development by creating an account on GitHub. github.com 추가적으로, - 흔히 알고 있는 RESTful에서의 POST..
이번 포스팅에서는 HTTP 완벽가이드, 네트워킹과 웹 성능 최적화 기법 책을 활용하였습니다. 2장 URL과 리소스 URL(Uniform Resource Locator) 는 인터넷의 리소스를 가리키는 표준 이름이다. - URL 문법 (보다 상세한 내용은 직접 코드로 작성하며 확인해보았다.) > https://github.com/brainbackdoor/bbd-http-web/blob/master/docs/url/README.md brainbackdoor/bbd-http-web Contribute to brainbackdoor/bbd-http-web development by creating an account on GitHub. github.com ://:@:/경로;?# RESTful 아래의 내용은 '그런..
독서대에 올랐다. "허무로다, 허무! 코헬렛이 말한다. 허무로다, 허무! 모든 것이 허무로다! 지혜와 지식과 재주를 가지고 애쓰고서는 애쓰지 않은 다른 사람에게 제 몫을 넘겨주는 사람이 있는데 이 또한 허무요 커다란 불행이다. 그렇다, 태양 아래에서 애쓰는 그 모든 노고와 노심으로 인간에게 남는 것이 무엇인가? 그의 나날은 근심이요 그의 일은 걱정이며 밤에도 그의 마음은 쉴 줄을 모르니 이 또한 허무이다." ... 응? 🙄 아직 제대로 시작도 안했는데, 요새들어 바쁘다는 오해를 종종 받고 있다. 그도 그럴 것이 4주째 저녁에 이런저런 일정들로 꽉 차있기는 하다. 그만큼이나 신경이 분산되고 일상이 증발한다. 얼마전, 포비네 농장에서 옥수수를 주문해 집에 배송하는 과정에선 세번이나 전화를 해야했다. 처음엔 ..
정신차려보니 HTTP 완벽가이드 책 뽀개기 모임에 들어와있다. 매주 1챕터씩 읽고 정리하는 것인데, 일종의 콘텐츠를 만드는 방식이다. 책을 보니 1.1 HTTP 개관은 다른 주제들의 정리와 같은 챕터라 어느 정도로 설명할지 애매하여 각 목차들을 어떤 방식으로 학습하고 정리할지에 대한 가이드를 작성하려고 한다. (날로 먹는 느낌인데..😏) 1.2 URL과 리소스: URL 구성요소와 RESTful시 주의점에 대해 살펴본 후 리소스와 관련한 최적화(Concatenation, Spriting, Resource inlining 등)에 대해 정리한다. 1.3 HTTP message: HTTP Spec 문서를 기초로 메시지의 구성요소와 메서드의 동작방식을 정리하고 Java code로 구현해본다. 상태코드를 사용하면서..
이 포스팅은 "도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문" 책을 읽고 스터디한 내용을 다룬 포스팅입니다. "Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker는 소프트웨어를 컨테이너는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다." - AWS 1. OS를 가상화한 기존의 방식과 Docker는 어떤 차이가 있을까? 하이퍼바이저(VMM) 기술을 이용한 가상화 방식에는 native와 hosted 등 2가지..
여름이 왔다. 긴장이 풀려버린 탓인지 지독한 감기에 걸려버렸다. 플랫폼 개발, 커리큘럼 설계, 스터디 준비, 코드 리뷰 등 해야 할 일들이 산재해 있지만 머리가 핑 하고 돌아버린다. 휴가를 쓰고 14시간이나 자버렸지만 몸 상태는 여전하다. 이왕 이지경이 돼버린 거 포비한테는 미안하지만, 오늘 하루 더 쉴 겸 상반기 회고를 한다. 상반기의 화두는 역시 우아한 테크코스이다. 우리 팀엔 매주 새로운 미션이 있었고 지난 주에 레벨 1 과정을 어떻게 잘(?) 마무리했다. '우아한 테크코스'란 이름을 짓는 것부터 기획, 마케팅, 플랫폼 개발, 선발(선발 방식 설계, 온/오프라인 문제 출제, 평가 등), 커리큘럼 설계, 코드 리뷰, 강의, 생활 방침 설계 및 면담, 각종 이벤트 준비 등등.. 참 많은 일들이 있었다...
이 포스팅은, 서버/인프라를 지탱하는 기술을 읽고 진행하는 스터디의 내용을 정리하였습니다. 성능이란 무엇일까? 암달의 법칙 성능 개선율 = 1/((1-P) + P/S) P: 개선 가능한 부분의 비율 S: 개선된 정도 즉, 성능 개선에는 한계가 생길 수 밖에 없다는 것을 인지하고 작업하여야 한다. 튜닝은 아래의 단계로 진행된다. 1) 원인파악 : 병목지점 파악 2) 목표설정 3) 튜닝실시 4) 개선율 확인 5) 결과 정리 및 반영 결국, 튜닝이란 부하의 원인을 알고 이를 제거하는 것을 의미한다. 그렇다면 부하는 어떻게 확인할까? 우선, 부하를 계측하고자 할 때 top, uptime 등의 툴을 사용하여 Load Average를 확인한다. Load Average가 낮은데 전송량이 오르지 않는 경우 소프트웨어 ..
많은 개발자들이 좋은 개발 문화를 원한다. 그런데 정작 좋은 개발 문화를 정의하는 이는 드물다. 아니, 무슨 신대륙을 찾아 떠나는 것도 아니고, 좋은 개발 문화가 있는 회사를 찾는다는 것은 무슨 말일까. 그저 희망 없는 현실을 도피하려는 망상인건 아닐까. 좋은 + 개발 + 문화 쪼개서 생각해보자. 우선, 문화는 개별성을 가진다기보다 상호작용의 결과이기에, 그저 표징을 따라 한다고 표상이 구성되지 않는다. 다시 말해, 우아한형제들, Line, Google 등 회사의 DR(Developer Relations) 활동을 모방한다고 그러한 문화가 발생하는 것은 아니다. 개발은 문제를 해결해나가는 과정이다. 과정의 참여자를 개발자로 한정할 경우 개발 문화는 개발 프로세스를 의미하고, 그 외연을 확장할 경우 조직문화..
1) OSI 7 Layer 중 L1,L2 1계층 - Physical Layer - 역할: Bit Stream(이진수 흐름)을 전기, 빛 등의 신호로 변환 - PDU: Bit - 대표장비: 케이블(LAN-UTP, WAH-Serial), 허브, 리피터, 커넥터(LAN-RJ45) 등 2계층 - Data-Link Layer - 역할: 물리적 주소를 이용해 노드(L2 스위치에 연결될 수 있는 3계층 이상의 장비) 간 연결 - PDU: Frame - 대표장비: 브릿지, L2 스위치 등 - 프로토콜 및 기술: LAN - Ethernet Protocol, WAN - PPP, HDLC 등 2) Collision Domain & Broadcast Domain Collision Domain이란, Half Duplex로 다중..