본문으로 건너뛰기

stack — 최근 글

최근
FundamentalOOP

오브젝트; 상속의 문제

객체지향 프로그래밍에서 코드를 재사용하기 위한 기법으로 상속과 합성은 가장 널리 사용된다. 상속 부모클래스와 자식클래스를 연결해 부모클래스의 코드를 재사용한다. 클래스 사이의 의존성은 컴파일 타임에 결정된다. is-a 관계 상속을 제대로 사용하기 위해서는 부모의 내부 구현을 상세하게 알아야 하기 때문에 결합도가 높음 정적인 관계 합성 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해 부분 객체의 코드를 재사용한다. 객체 사이의 의존성은 런타임에 결정된다. has-a 관계 퍼블릭 인터페이스에 의존하기 때문에 내부 구현이 변경되더라
Java EcoJava programming

Java 메소드 오버라이딩과 가변인자

FundamentalOOP

오브젝트; 추상화에 의존하는 상속

부모 클래스의 변경에 의해 자식 클래스가 영향을 받는 현상을 취약한 기반 클래스 문제 라고 부른다. 이제 결합도의 개념을 상속에 적용해보자. 구현을 상속한 경우(extends) 파생 클래스는 기반 클래스에 강하게 결합되며, 이 둘 사이의 밀접한 연결은 바람직하지 않다. 설계자들은 이런 현상에 대해 "취약한 기반 클래스 문제"라는 명칭을 붙였다. 겉으로 보기에는 안전한 방식으로 클래스를 수정한 것 처럼 보이더라도 이 새로운 행동이 파생 클래스에게 상속될 경우 파생 클래스의 잘못된 동작을 초래할 수 있기 때문에 기반 클래스는 "취약하다
BlogBook Review

실무로 통하는 클린 코드 - 책 소개

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : Clean Code Cookbook 저자 : Maximiliano Contieri 출간 : O’Reilly Media, 2023 / 한빛미디어, 2024 백엔드 엔지니어를 위한 좋은 지침서들이 여럿 있다. 로버트 C 마틴의 클린 코드와 클린 아키텍처, 마틴 파울러의 리팩터링, 에릭에반스의 도메인 주도 설계를 비롯해 많은 책들이 있다. 나아가 백엔드에서 많이 사용되는 자바로 간다면 조슈아 블로크의 이펙티브 자바, 이일민의 토비 스프링같은 책들은 참
FundamentalOOP

오브젝트; 상속과 중복 코드

객체지향 프로그래밍의 장점 중 하나는 코드의 재사용이다. 객체지향은 코드를 재사용 하기 위해 새로운 코드를 추가한다. 객체지향에서 클래스를 재사용 하는 전통적인 방법은 클래스를 추가하는 것이다. 이 장에서는 클래스를 재사용하기 위해 클래스를 추가하는 대표적인 방법인 상속에 관한 내용이다. 상속 외에도 새로운 클래스의 인스턴스 내에 기존 클래스의 인스턴스를 포함시키는 합성이라는 방법도 있다. 중복 코드를 제거해야 하는 이유 중복 코드는 변경을 방해한다. 중복 코드는 코드를 수정하기 위해 어떤 코드가 중복인지 먼저 찾아야 하는 시간이
EngineeringLinux

HA 연결지점의 상태 가져오기 - HAProxy Data Plane API

HAProxy를 HA 기능 또는 리버스 프록시 용도의 gateway로 사용하고 있다면 하위의 master와 slave 노드들의 모든 상태를 REST API로 추출할 수 있다. 이것은 어플리케이션의 health check api 뿐만 아니라 TCP, SSH, HTTP 등 다양한 프로토콜에도 대응하기 때문에 특정 프로토콜에 의존적이지 않다. 또한 HAProxy에 하위 프로세스만 띄우는 형식이라 설정이 번잡하지 않고, 모든 노드를 알고 있는 HAProxy를 사용하면 health check 어플리케이션을 구축할 필요가 없으므로 비용도 절감
FundamentalOOP

오브젝트; 의존성 주입과 의존 역전

의존성 주입 Dependency Injection : 사용하는 객체가 아닌 외부의 독립적인 객체가 인스턴스를 생성한 후 이를 전달해서 의존성을 해결하는 방법 의존성 주입 기법 생성자 주입 Setter 주입 메서드 주입 SERVICE LOCATOR 패턴 서비스를 사용하는 코드로부터 서비스가 누구인지 (서비스를 구현한 구체 클래스의 타입이 무엇인지), 어디에 있는지(클래스 인스턴스를 어떻게 얻을지)를 몰라도 되게 해준다. 사용처에서 특정 인스터스에 의존하기 원한다면 아래와 같이 사용해야 한다. Movie 생성자 만으로 의존성이 해결되지
BlogBook Review

처음 시작하는 FastAPI - 책 소개

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : FastAPI: Modern Python Web Development 저자 : Bill Lubanovic 출간 : O'Reilly Media, 2023 / 한빛미디어, 2024 웹 서비스를 구성하는 요소 중에 비즈니스 요구사항을 처리하고, 데이터의 가공과 저장을 하고, 보안의 위협에서 적절한 조치를 해야하는 백엔드 어플리케이션은 없어서는 안되는 요소다. 웹 어플리케이션은 원래 정적 페이지로부터 시작되어 자바스크립트로 시작된 동적 처리에서 마침내 대