본문 바로가기
728x90

전체 글163

RFC 2616(HTTP) : 3장 정리 3.1 HTTP 버전 . 메시지 의미에 대한 추가 사항이나 바송자의 추가적인 능력을 의미하는 규약 추가 기능에 대한 변경이 있을 경우 번호를 증가시킴. 프로토콜 내 메시지 형식이 변경되면 번호를 증가시킴. 이 규격이 규정하는 대로 요구나 응답 메시지를 전송하는 애플리케이션은 반드시 HTTP-Version을 "HTTP/1.1"로 설정해야 한다. 이 버전 번호를 사용하는 것은 발송하는 애플리케이션이 최소한 부분적으로는 이 규격을 따르고 있음을 표시한다. 상위 버전의 요구가 수신되었으면 프락시/게이트웨이는 반드시 요구 버전을 내리거나, 에러를 발송하거나 터널로 전환해야만 한다. 프락시/게이트웨이 버전보다 낮은 요구는 상위 버전으로 업그레이드할 수는 있으나 요구받은 버전의 주요 버전은 반드시 동일해야 한다. 3.. 2022. 9. 28.
RFC 2616(HTTP) : 2장 정리 2장 : 기호 관례 및 일반적인 문법 2.1 Augmented BNF : 증가된 BNF 구현자는 이 구격을 이해하기 위해 표기법을 숙지해야 한다. 이 문서에 명시된 모든 메커니즘은 BNF에 자세히 설명되어 있다. name=definition 규칙의 이름은 단순히 이름 자체이며 ""를 포함하지 않으며 동일한 "=" 문자로 정의와 구분된다. 공백은 연속선의 들여쓰기가 둘 이상의 줄에 걸쳐 있는 규칙 정의를 나타내는 데 사용된다는 점에서만 중요. SP, LWS, HT, CRLF, DIGITE, ALPHA 등과 같은 일부 기본 규칙은 대문자로 표시됨. 각 괄호는 규칙 이름 사용을 식별하기 쉽게 할 때마다 정의 내에서 사용됩니다. "literal" 따옴표는 리터럴 텍스트를 둘러싼다. 달리 명시되지 않는 한 텍스트.. 2022. 9. 14.
[한빛 미디어] 코드로 인프라 관리하기(2판) "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 큰 프로젝트를 진행해 본 적이 없고, 유지 보수를 해본 경험도 없어서 자동화에 대해 관심이 없었다. 하지만 자동화, CI/CD, git action 등 여러 가지 단어들이 들려올수록 공부해야겠다는 생각을 하기 시작했다. 이 책은 나에겐 굉장히 어려운 책이었다. 사실 제대로 이해한 파트가 많지 않다. 책의 초반에는 개념 설명이 많이 나온다. 클라우드 시대가 나온 배경부터 시작해서 코드형 인프라가 왜 필요한지, 코드형 인프라의 반대 의견에 대한 반론까지 해준다. 왜 우리가 코드형 인프라를 공부해야 되는지, 장점이 뭔지에 대한 자세한 설명 덕분에 공부에 대한 흥미가 생겼다. 코드형 인프라의 핵심 실행 방법 3가지에 대해서도 설명한다. 1. 모든 것.. 2022. 9. 13.
Git branch 전략 협업을 할 때 개발자들을 브랜치를 나눠서 개발을 한다. 그럼 브랜치를 어떻게 나누고 어떻게 관리할까? 브랜치의 전략에는 크게 git flow, gitlab flow, github flow 가 있다. " git flow " master : 기준이 되는 브랜치로 제품을 배포하는 브랜치. 한마디로 메인 브랜치. develop : 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 Merge. feature : 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 Merge. release : 배포를 위해 master 브랜치로 보내기 전에 먼저 QA(품질검사)를 하기 위한 브랜치. hotfix : master 브랜치로 배포를 했는데 버그가 생겼을 때 긴급 수정하는 브랜치. .. 2022. 8. 31.
이것이 자료구조+알고리즘이다 with C 언어 "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 개발자라면 꼭 필수로 공부해야 되는 자료구조, 알고리즘 책을 리뷰해보려 한다. 일단 이 책은 C언어 베이스로 적혀 있는 책이다. 전공자라면 거의 대부분 C언어를 알기 때문에 다른 언어 베이스의 책보다는 이 책을 강력 추천한다. 왜냐면 C언어로 자료구조와 알고리즘을 공부하면 다른 언어에서는 쉽게 접하기 힘든 더 딥한 부분(메모리에 관한 부분)까지 접할 수 있는 장점이 있다. 그리고 이 책은 자료구조와 알고리즘에 대한 모든 개념이 있는 것이 아닌, 핵심 개념만 소개하기 때문에 보기 좋다. 이 책은 자료구조, 알고리즘, 알고리즘 설계 기법 총 3개의 내용으로 구성되어 있다. 자료구조는 리스트, 스택, 큐, 트리에 대해 배운다. 자료구조의 개념을 설.. 2022. 8. 28.
CPP Lvalue, Rvalue, &&(우측값 레퍼런스) 개념 Lvalue, Rvalue가 뭘까? 🔸 lvalue 저장할 장소가 있는 값, const가 붙은 값 ex) int a, const char b 🔸 rvalue 임의의 값 ex) 10, 'a' rvalue와 lvalue가 생긴 이유!? 원래 cpp98까지는 rvalue와 lvalue의 개념이 연산자 오른쪽에 있는 애, 연산자 왼쪽에 있는 애였다. 하지만 deep copy가 꼭 필요하지 않은 경우가 있다. class A { std::string a[100000000]; }; A a; B(a); B(makestr(a)); 위의 코드를 보면 class A는 굉장히 큰 string 배열을 저장하고 있다. A 클래스를 파라미터로 받는 B의 생성자를 만들 때, 우리는 항상 deep copy로 A 클래스의 string값.. 2022. 7. 27.
AVL 트리 개념과 특징 AVL 트리란? 이진 탐색 트리(BST)의 한 종류 스스로 균형(balancing)을 잡는 트리 balance factor(BF)를 통해 균형 유지 노드의 balance factor란? 임의의 노드 x에 대해서 BF(x) = h(lSubtree(x)) - h(rSubtree(x)) BF = balance factor, h = height, lSubtree = left subtree, rSubtree = right subtree AVL의 트리의 특징 balance factor가 -1, 0, 1 셋 중 하나의 값을 가짐. 트리에 삽입 혹은 삭제 후 BF(x)가 -1, 0, 1이 아니라면 노드가 생기면 균형을 맞추는 작업을 수행! AVL 동작 방식 🟨 오른쪽 오른쪽으로 편향된 상태 중간값을 위로 올림. (왼쪽.. 2022. 7. 25.
이진 탐색 트리(binary search tree) 이진 탐색 트리(binary search tree)란? 모든 노드의 왼쪽 서브 트리는 해당 노드의 값보다 작은 값들만 가지고 모든 노드의 오른쪽 서브 트리는 해당 노드의 값보다 더 큰 값들만 가지는 트리 👉 이진 탐색 트리의 최솟값 트리의 가장 왼쪽에 존재 👉 이진 탐색 트리의 최댓값 트리의 가장 오른쪽에 존재 👉 노드의 successor(후임자) 해당 노드보다 값이 큰 노드들 중에서 가장 값이 작은 노드 👉 노드의 predecessor(선임자) 해당 노드보다 값이 작은 노드들 중에서 가장 값이 큰 노드 👉 이진 탐색 트리 순회하는 방법 이진 탐색 트리에서는 중위 순회를 대체로 사용함! 트리의 탐색 방법에는 3가지가 있음 inorder traversal (중위 순회) 재귀적으로 왼쪽 서브 트리 순회 현재.. 2022. 7. 25.
트리(tree)와 이진 트리(binary tree) 기초 개념 정리 트리(tree)란? 노드들의 집합 각 노드는 값과 다른 노드들을 가리키는 레퍼런스들로 구성 트리 관련 용어 🔸 간선(edge) 노드와 노드를 연결하는 선 구현 관점에서는 레퍼런스를 의미 a.k.a. link, branch 🔸 루트(root) 노드 트리의 최상단에 있는 노드 트리의 시작점 🔸 자녀 노드 모든 노드는 0개 이상의 자녀 노드를 가짐 🔸 부모 노드 자녀 노드를 가지는 노드 🔸 형제 노드 같은 부모를 가지는 노드들 🔸 조상 노드 부모 노드를 따라 루트 노드까지 올라가면 만나는 모든 노드 🔸 자손 모드 자녀 노드를 따라 내려가며 만날 수 있는 모든 노드 🔸 내부 노드 자녀 노드를 가지는 노드 a.k.a branch node, inner node 🔸 외부 노드 자녀 노드가 없는 노드 a.k.a lea.. 2022. 7. 25.
728x90