728x90 [한빛 미디어] 코드로 인프라 관리하기(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. [한빛 미디어] AI로 일하는 기술 "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 요즘 AI, 빅데이터, 인공지능이라는 단어를 심심찮게 들을 수 있다. 하지만 그 기술이 뭔지, AI로 내가 뭐를 만들 수 있는지에 대해 전혀 알지 못했다. 이 책은 개발자의 눈높이 맞춰 AI나 인공지능의 실질적인 구현 방법, 기술에 대한 자세한 설명이 적힌 책이 아니라 개발자가 아닌 사람도 편하게 읽을 수 있다. 그렇다고 AI의 자세한 정보를 얻지 못하는 것은 아니다. 아주 기본적인 개념 정리부터 시작한다. 인공지능, 머신러닝, 딥러닝의 차이점과 사람들은 이를 어떤 개념으로 받아들이고 사용하는지에 대해 자세히 적혀있다. 현 인공지능의 발전 수준과 어디까지 발전되어 있는지에 대해 서술되어있다. 인공지능 분야에서 유명한 개발자 일리야 슈츠케버, .. 2022. 7. 24. RFC 2616(HTTP) : 1장 정리 1.1 목적 HTTP 분산 정보 시스템, 종합 정보 시스템 및 하이퍼미디어 정보시스템에서 사용하는 응용계층의 규약 HTTP/0.9 HTTP의 첫 버전. 인터넷 상에서 저장되어 있는 원래 데이터를 전송하기 위한 단순한 규약. HTTP/1.0 메시지를 전송하는 문서 데이터에 대한 메타 정보 및 요구/응답 용어의 변경자를 포함하는 MIME(다용도 인터넷 메일 확장)과 유사한 메시지의 형식으로 사용할 수 있도록 함으로써 규약을 향상시킴. HTTP/1.1 HTTP/1.0의 문제(계층적 프락시, 캐시, 지속적인 연결의 필요성, 가상 호스트)을 해결한 버전. 상호 협상할 수 있는 응용 프로그램이 상대방의 진정한 성능을 파악할 수 있도록 규약 버전을 갱신함. 하이퍼텍스트 전송 규약을 정의. 요구의 목적을 표시하는 일련.. 2022. 7. 13. [한빛 미디어] 구글 엔지니어는 이렇게 일한다 "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 팀 프로젝트를 진행할 때마다 항상 코드 관리와 프로젝트 관리의 어려움을 겪었다. 이 책은 구글의 소프트웨어 엔지니어링이 어떻게 발전했고 현재 어떻게 프로젝트를 진행하고 있는지에 대한 내용을 담고 있는 책이다. 소프트웨어 엔지니어링에 대해 이야기하며 책이 시작한다. 기본적인 개념에 대해 설명해주며 엔지니어링과 프로그래밍의 차이를 설명해주고 프로젝트 진행 시 어디에 초점을 두어야 할지 설명한다. 팀을 운영할 때의 방식, 멘토나 스터디 방법 등 정말 궁금했지만 어디서도 배우지 못했던 사소한 내용까지 담고 있다. 문서와 코드를 어떻게 관리하고 공유할 것인지에 대해서도 나와있다. 엔지니어링이 갖춰야 될 역량에 국한되지 않고 팀 리더, 관리자 등의 필수.. 2022. 5. 29. 이전 1 2 3 4 5 ··· 17 다음 728x90