본문으로 건너뛰기

stack — 최근 글

최근
FundamentalOOP

오브젝트; 동적 메서드 탐색과 다형성

객체지향 언어가 제공하는 업캐스팅과 동적 바인딩을 이용하면 부모 클래스 참조에 대한 메시지 전송을 자식 클래스에 대한 메서드 호출로 변환할 수 있다. 객체지향 시스템은 다음 규칙에 따라 실행할 메서드를 선택한다. 메시지를 수신한 객체는 먼저 자신을 생성한 클래스에 적합한 메서드가 존재하는지 검사하낟. 존재하면 메서드를 실행하고 탐색을 종료한다. 메서드를 찾지 못했다면 부모 클래스에서 메서드 탐색을 계속 한다. 이 과정은 적합한 메서드를 찾을 때 까지 상속 계층을 따라 올라가며 계속된다. 상속 계층의 가장 최상위 클래스에 이르렀지만
BlogBook Review

소프트웨어 엔지니어 가이드북 - 책 소개

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups 저자 : Gergely Orosz 출간 : Pragmatic Engineer BV, 2023 / 한빛미디어, 2024 일반적으로 부르는 개발자라는 직군은 이 나라를 대표하는 직업 중 빠질 수 없는 직군으로 자리잡은지 오래다. 대
FundamentalOOP

오브젝트; 업캐스팅과 동적 바인딩

실행 시점에 메서드를 탐색하는 과정을 살펴보자. 다음은 다익스트라 교수가 강의하는 알고리즘 과목의 성적 통계를 계산하는 코드다. Lecture대신 아래와 같이 GradeLecture로 전달할 수 있다 생성자의 인자 타입은 Lecture로 선언되어 있지만 GradeLecture의 인스턴스를 전달하더라도 아무 문제 없이 실행된다. 동일한 객체 참조인 lecture에 대해 동일한 evaluate메시지를 전송하는 동일한 코드 안에서 서로 다른 클래스 안에 구현된 메서드를 실행할 수 있다는 사실을 알 수 있다. 이처럼 코드 안에서 선언된 참
FundamentalOOP

오브젝트; 상속과 다형성

코드 재사용을 목적으로 상속을 사용하면 변경이 어렵고 유연하지 못한 설계에 이른다. 상속은 타입 계층을 구조화하기 위해 사용해야 한다. 타입 계층은 다형성의 기반을 제공한다. 상속은 인스턴스를 동일하게 행동하는 그룹으로 묶기 위한 관점으로 사용되어야 한다. 다형성 Polymorphism은 많은 형태를 가질 수 있는 능력을 의미한다. 컴퓨터 과학에서 다형성은 하나의 추상 인터페이스에 대해 코드를 작성하고 이 추상 인터페이스에 대해 서로 다른 구현을 연결 할 수 있는 능력으로 정의한다. 다형성의 구분은 위 그림과 같다. 오버로딩 다형성
BlogBook Review

쿠버네티스 창시자에게 배우는 모범사례 2판 - 책 소개

한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : Kubernetes Best Practices 2E 저자 : Brendan Burns 외 3인 출간 : O’Reilly Media, 2024 / 한빛미디어, 2024 이 책은 한마디로 쿠버네티스 환경에서의 운영을 데브옵스 엔지니어가 수행할만한 내용들로 모아놓은 사례집이다. 어플리케이션을 안정적으로 운영하기 위해 메트릭, 보안, CI/CD, 형상관리, 테스트, 롤링, 리소스 관리, 스테이징, 네트워킹, 멀티클러스터, 스토리지와 같은 주제에서 어떤 전략
FundamentalOOP

오브젝트; 상속을 합성으로 바꾸기

컴파일 타임 관계를 런타임 관계로 변경함으로써 이 문제를 해결한다. 이것이 합성이다. 상속을 사용하는 것은 컴파일 타임의 의존성과 런타임의 의존성을 동일하게 만들겠다고 선언하는 것이다. 그래서 상속을 사용하면 부모 클래스와 자식 클래스 사이의 관계가 정적으로 고정되기 때문에 실행 시점에 동적으로 관계를 변경할 수 있는 방법이 없다. 합성을 사용하면 구현 시점에 정책들의 관계를 고정시킬 필요가 없으며 실행 시점에 정책들의 관계를 유연하게 변경할 수 있게 된다. 상속이 조합의 결과를 개별 클래스 안으로 밀어 넣는 방법이라면, 합성은 조
BlogThink

2024 3Q 분기정리

이벤트 생성 중단 '제대로 된 삶'을 살기 2 OpenInfra Summit Asia 참관 한빛미디어 서평활동 3개월 연속 우수리뷰 달성 오래전부터 예정되어 있거나 당장 해야 하는 일을 제외하고 새로운 시도나 습득에 대해서 멈췄다. 당분간은 이벤트를 그만 만들어야 한다고 직감이 경고한다. 플라이바이 하는 그때를 위하여. 원래 OpenStack에서 주관하는 이벤트 였다가 다른 인프라 소프트웨어 프로젝트들과 합치면서 OpenInfra 라고 이름이 바꼈다고 한다. 대부분의 세션이 영어로 진행됐고 다행히 실시간 번역이 제공되었다. 아시아
BlogBook Review

소프트웨어 설계의 정석 - 책 소개

한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : はじめての設計をやり抜くための本 第2版 (처음 설계를 시작하는 사람들을 위한 책 제2판) 저자 : 吉原 庄三郎 출간 : 翔泳社, 2022 / 한빛미디어, 2024 설계라는 영역의 세부 분야에 대해서 다루는 책은 많다, 아키텍처, UML, RDB 설계, 각종 개발 방법론, 프레임워크 개론 등, 제목만 붙여도 생각나는 책들이 많이 있다. 그러나 이들을 하나로 묶어내어 프로젝트가 진행되는 전체 과정을 다루는 실체는 대부분 다루지 않는다. 정답이 없는 영역이