-
취약한 기반 클래스 문제 이제 결합도의 개념을 상속에 적용해보자. 구현을 상속한 경우(extends) 파생 클래스는 기반 클래스에 강하게 결합되며, 이 둘 사이의 밀접한 연결은 바람직하지 않다. 설계자들은 이런 현상에 대해 “취약한 기반 클래스 문제”라는 명칭을 붙였다. 겉으로 보기에는 안전한 방식으로 클래스를 수정한…
🗂️
🗓️
-
깊이를 더하는 지름길 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 백엔드 엔지니어를 위한 좋은 지침서들이 여럿 있다. 로버트 C 마틴의 클린 코드와 클린 아키텍처, 마틴 파울러의 리팩터링, 에릭에반스의 도메인 주도 설계를 비롯해 많은 책들이 있다. 나아가 백엔드에서 많이 사용되는…
🗂️
🗓️
-
객체지향 프로그래밍의 장점 중 하나는 코드의 재사용이다. 객체지향은 코드를 재사용 하기 위해 새로운 코드를 추가한다. 객체지향에서 클래스를 재사용 하는 전통적인 방법은 클래스를 추가하는 것이다. 이 장에서는 클래스를 재사용하기 위해 클래스를 추가하는 대표적인 방법인 상속에 관한 내용이다. 상속 외에도 새로운 클래스의 인스턴스…
🗂️
🗓️
-
개요 HAProxy를 HA 기능 또는 리버스 프록시 용도의 gateway로 사용하고 있다면 하위의 master와 slave 노드들의 모든 상태를 REST API로 추출할 수 있다. 이것은 어플리케이션의 health check api 뿐만 아니라 TCP, SSH, HTTP 등 다양한 프로토콜에도 대응하기 때문에 특정 프로토콜에 의존적이지 않다.…
🗂️
🗓️
-
의존성 주입 의존성 주입 기법 숨겨진 의존성은 나쁘다 SERVICE LOCATOR 패턴 서비스를 사용하는 코드로부터 서비스가 누구인지 (서비스를 구현한 구체 클래스의 타입이 무엇인지), 어디에 있는지(클래스 인스턴스를 어떻게 얻을지)를 몰라도 되게 해준다. 접근해야 할 객체가 있다면 전역 메커니즘 대신, 필요한 객체를 인수로 넘겨줄…
🗂️
🗓️
-
빠르게 시작하는 웹 프레임워크 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 웹 서비스를 구성하는 요소 중에 비즈니스 요구사항을 처리하고, 데이터의 가공과 저장을 하고, 보안의 위협에서 적절한 조치를 해야하는 백엔드 어플리케이션은 없어서는 안되는 요소다. 웹 어플리케이션은 원래 정적 페이지로부터 시작되어…
🗂️
🗓️
-
개방-폐쇄 원칙 개방 폐쇄 원칙 Open-Closed Principle : 소프트웨어 개체 (클래스, 모듈, 함수) 는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 이는 다음의 관점을 반영한다. 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라 추상화가 핵심이다 추상화란 추상화가 개방-폐쇄원칙을 가능하게 만드는…
🗂️
🗓️
-