전체 글

전체 글

    [CKA] Section 2: Core Concepts

    본 글은 Udemy 강의 중 Certified Kubernetes Administrator (CKA) with Practice Tests 내용을 임의로 정리한 내용입니다.12. Docker-vs-ContainerD태초엔 Docker가 있었다. Docker가 융성하면서 이를 효율적으로 관리하기 위해 k8s가 태어났다.k8s 커뮤니티가 점점 커지기 시작하자, Rocket과 같은 다른 컨테이너 런타임도 k8s에 들어오고 싶어했다.k8s는 그 생명력을 위해서라도 확장성을 가져야 했다. 그래서 다른 컨테이너 런타임도 원한다면 생태계에 들어올 수 있도록 인터페이스를 제공했다. 그게 **Container Runtime Interface** (CRI)다.CRI를 구현한 컨테이너 런타임은 Open Container In..

    봄밤

    봄밤은 변방의 이야기다. 요양원이라는 물리적으로는 우리와 가깝지만 심리적으로는 브라질보다도 먼 그곳의 이야기. 영경과 수환은 배신당한 이들이다. 수환은 거래처 사장과 아내에게 배신당했다. 영경은 전남편과 전시부모, 그리고 두 언니에게 배신당했다. 영경은 그 후유증으로 술을 마시다 결국 자신에게도 배신당했다. 의사도 거기에 거들었다. 그는 몸의 반응은 알코올이 가져다주는 거짓이라고 말했다. 그녀는 몸의 떨림은 물론, 자신의 감정까지 믿지 못하게 되었다. 모든 것이 환상이라고 치부해야 했다. 아니, 어쩌면 그녀 자신이 모든것을 받아들이지 못한 것일수도 있겠다. "산다는 게 참 끔찍하다. 그렇지 않니?" 작가가 표현해낸 요양원에서의 삶은 끔찍하다. 수많은 갈등과 반목, 욕망에 대한 패배 그리고 가난까지. 그곳..

    [C++ Primer Plus] 18. Visiting with the New C++ Standard

    대답해야 할 질문들 auto 타입의 type deduction 시점은 언제인가? decltype의 사용법은 어떻게 되는가? move semactics는 어떻게 사용할 수 있는가? c++11의 클래스에서 자동생성되는 함수 6개는 무엇인가? override와 final 키워드의 의미는 무엇인가? 람다식이 함수 포인터와 펑터보다 우월한 이유는 무엇인가? wrapper를 쓰는 이유는 무엇인가? variadic template은 어떻게 사용할 수 있는가? C++11 Features Revisited New Types C++11에서 64bit int 지원을 위해 long long, unsigned long long 타입을 추가됐다. 비슷한 이유로 char16_t, char32_t도 추가됐다. Uniform Init..

    [C++ Primer Plus] 16. The string Class and the Standard Template Library

    대답해야 할 질문 smart pointer의 3가지 종류를 말하고 이를 설명하시오. shared_ptr에서 발생할 수 있는 circular referencing 상황을 설명하고 해결법을 말하시오. iterator의 5가지 종류를 말하고 차이점을 설명하시오. The string class 지엽적인 내용 같아서 생략 Smart Pointer Template Classes Smart Pointer(이하 '스마트 포인터')는 포인터에 몇개 기능이 더 있는 클래스 오브젝트다. 기본적으로 dynamic memory allocation을 하면 delete를 해야 한다. 빠트리면 leak이 난다. 그러니까 leak을 피하는 방법은 프로그래머가 'delete를 해야지!'하고 기억하는 것이다. 이건 뭐 방법이라고는 할 수..

    [C++ Primer Plus] 15. Friends, Exceptions, and More

    대답해야 할 질문들 Friend class와 Friend member function의 사용법이 무엇인가? Nested class를 쓰는 이유는 무엇인가? return과 throw의 차이점이 무엇인가? exception을 레퍼런스로 catch하는 이유는 무엇인가? undefined exception과 unexpected exception이 무엇인지 설명하고 어떻게 해결할 수 있는지 설명하시오. RTTI의 세가지 구성요소는 무엇인가? C++의 explicit casting을 설명하시오. Friends 이제까지 friend function만 배웠지만, friend class도 가능하다. friend class가 마치 OOP를 해칠 것만 같은 느낌을 주지만 그렇지 않다. 그 이유는 2개다. 먼저 friend ..

    [C++ Primer Plus] 14. Reusing Code in C++

    대답해야 할 질문들 has-a 관계를 가지는 두 가지 방법은 무엇인가? 다이아몬드 상속을 할 때, 신경써줘야하는 부분은 무엇인가? template class에서 implicit/explicit instantiation과 specialization의 문법은 무엇인가? Classes with Object Members 클래스가 오브젝트 멤버를 가지는 방법은 2가지다. 오브젝트를 변수로 선언한다. (containment) protected or private으로 상속한다. Private Inheritance 상속할 때, Private으로 상속하면 base-class의 public 멤버와 protected 멤버가 derived-class의 private 멤버가 된다. 즉, 인터페이스가 똑같이 이어지는 게 아니기..

    [C++ Primer Plus] 13. Class Inheritance

    대답할 질문 상속을 통해 어떤 일을 할 수 있는가? derived-class의 constructor와 destructor는 어떻게 작동하는가? Is-a relationship은 무엇인가? dynamic binding이 default가 아닌 이유가 무엇인가? virtual function은 어떻게 작동하는가? derived-class에서 함수를 재정의할 때 무엇을 유의해야 하는가? Abstract Base Class는 어떻게 만들 수 있는가? 왜 만드는가? Class Inheritance OOP의 목적 중 하나가 코드 재사용성이다. Inheritance(상속)는 이 특성을 강화한다. C library를 생각해보자. 따로 소스 코드가 제공되지 않는 라이브러리라면 우리는 특정 함수를 입맛대로 바꾸기 어려울 것..

    [C++ Prime Plus] 12. Classes and Dynamic Memory Allocation

    Dynamic Memory and Classes C++은 Memory allocation을 runtime에 정하는 방식이다. C++은 Dynamic Memory allocation을 위해 new와 delete 연산자를 사용한다. 이로 인해, 우리는 새로운 문제를 풀어야만 한다. Special Member Functions C++은 다음 멤버 함수를 자동으로 만들어낸다. 만약 생성자가 없으면, default constructor를 만들어낸다. 따로 정의하지 않았다면, default destructor를 만들어낸다. 따로 정의하지 않았다면, copy constructor를 만들어낸다. 따로 정의하지 않았다면, = operator를 만들어낸다. 따로 정의하지 않았다면, & operator를 만들어낸다. 좀더 ..