개발/개발서적
-
클린코드 리뷰개발/개발서적 2022. 5. 22. 22:31
ch 06. 객체와 자료 구조 읽고 정리한 글입니다. private variable를 사용하는 이유 A 클래스의 public member 변수 m이 있다고 가정해보자. 변수 m은 public이므로 B 클래스에서 접근할 수 있다. B 클래스에서 변수 m을 사용하고 있는 상황에서 A 클래스의 변수 m의 타입이나 이름 등을 변경하면 어떻게 될까? 우리는 B 클래스 내에서 변수 m을 사용하고 있는 부분을 수정해야한다. 또한, 변수 m을 사용하고 있을지도 모르는 다른 클래스들도 찾아봐야 한다. 만약 member 변수 m이 private 변수라면 어떨까? 변경의 여파를 신경쓸 필요 없이 변수 m의 타입과 이름을 맘대로 바꿀 수 있다. 만약 버그가 생긴다고 해도 우리는 A 클래스의 구현 위주로 살펴보면 된다. 그렇다..
-
SOLID 원칙 - LSP, ISP, DIP개발/개발서적 2021. 10. 21. 00:24
클린 아키텍쳐 3부 LSP 리스코프 치환 원칙 치환 원칙과 하위타입 S 타입의 객체 o1에 대응하는 T 타입의 객체 o2가 있다. T 타입을 이용한 프로그램 P에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위타입이다. LSP를 준수하는 설계(상속) Billing Application ---> License - caleFee() Rectangle - setH(), setW() Framework F ---> Database D, 프레임워크가 반드시 D 데이터베이스를 사용해야된다면 S는 F를 의존하고 F는 D를 의존한다. S와는 전혀 관계 없는 기능이 D에 포함되어있다고 가정해보면, 그 기능이 변경되면 D가 바뀌어 F를 심지어는 S를 재배포해야하는 경우가 생길 수 있다. D..
-
SOLID 원칙 - SRP, OCP개발/개발서적 2021. 10. 18. 23:53
클린 아키텍쳐 3부 SOLID 원칙을 정리하였다. SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법과 이들 클래스를 서로 결합하는 방법을 설명한다. 중간 수준의 소프트웨어 구조를 [변경에 유연하고, 이해하기 쉽고, 컴포넌트 기반이 되도록] 만드는 것이 SOLID의 목적이다. 여기서 중간 수준이란 모듈 수준으로 즉, SOLID 원칙은 모듈과 컴포넌트 내부에서 사용되는 소프트웨어 구조를 정의하는 데 적용할 수 있다. SRP: 단일 책임 원칙, 소프트웨어 모듈은 변경의 이유가 단 하나여야한다. OCP: 개방-폐쇄 원칙, 기존 코드를 변경하기 보다는 반드시 새로운 코드를 추가하는 방식이여야 한다. LSP: 리스코프 치환 원칙, 상호대체 가능한 구성요소를 이용해 시스템을 만들 수 있으려면 구성 요소는..