solid

·개인공부
가능한 단순하게 유지하라, Keep It Short and Simple(KISS) KISS 에 대해 알아보기 전에, 다음 질문에 스스로 답을 해보는 것이 좋다. KISS 원칙에서 단순한 이라는 단어가 가지는 의미는 무엇일까? 어떤 종류의 코드를 단순한 코드라고 할 수 있을까? 복잡한 코드는 어떤 코드인가? 간단한 코드를 작성하려면 어떻게 하면 좋을까? YAGNI 원칙은 KISS 원칙과 어떤 점이 다른가? KISS 원칙 정의와 해석 KISS 원칙은 가능한 단순하게 유지하라 는 원칙이며, 많은 상황에 적용될 수 있는 포괄적인 설계 원칙이다. Keep It Simple and Stupid, Keep It Short and Simple, Keep it Simple and Straight forward 등 다양하..
·개인공부
의존성 역전원칙을 이야기 하기 전에, 다음의 질문에 답을 해보는 것이 좋다. 의존성 역전 이 뜻하는 것은 어떤 대상 사이의 역전인가? 그리고 어떤 의존이 역전되는 것인가? 그리고 여기서 말하는 역전은 무엇을 의미하는가? 제어 반전(Inversion of Control)과 의존성 주입(Dependency Injection) 의 두가지 다른 개념은 의존 역전과 같은 개념에 속하는가? 만약 그렇지 않다면 그 차이는 무엇인가? Spring 의 IoC 는 앞에서 언급한 세 가지 개념과 어떤 관련이 있는가? 의존성 역전 원칙 의존성 역전 원칙 의 정의는 다음과 같다. 상위 모듈은 하위 모듈에 의존하지 않아야 하며, 추상화에 의존해야 한다. 또한 추상화가 세부 사항에 의존하는 것이 아니라, 세부 사항이 추상화에 의존..
·개인공부
개방 폐쇄 원칙은 확장할 때는 개방, 수정할 때는 폐쇄 원칙으로 불린다. 이는 SOLID 원칙 중에서도 가장 이해하기 어렵고, 마스터하기 어려우면서도 가장 유용한 원칙이다. 개방 폐쇄 원칙을 이해하기 어려운 이유는 코드를 변경할 때 그 결과를 확장으로 보아야하는지, 수정으로 보아야하는지 명확하게 구분하기 어렵기 때문이다. 개방 폐쇄 원칙이 숙달하기 어려운 이유는 '확장할 때는 개방, 수정할 때는 폐쇄' 라는 개념을 어떻게 달성할 것인지, 높은 확장성을 추가하면서 코드의 가독성에 영향을 미치지 않도록 이 원칙을 프로젝트에 어떻게 유연하게 적용할 것인지와 같은 문제는 이해하기 어려운 문제에 속하기 때문이다. 하지만 개방 폐쇄 원칙(확장성)은 코드 품질의 중요한 척도 이기 때문에 가장 유용하다. 디자인 패턴 ..
·개인공부
단일 책임 원칙이란, 클래스와 모듈은 하나의 책임 또는 기능만을 가지고 있어야 한다는 설계원칙이다. 즉, 거대하고 포괄적인 클래스를 설계하는 대신, 작은 단위와 단일 기능을 가진 클래스를 설계해야 한다는 것이다. "변경해야 할 이유는 한가지이어야한다." 으로도 이야기 할 수 있다. 클래스에 비즈니스와 관련 없는 기능이 두 개 이상 포함되어 있으면 책임이 단일하지 않으므로, 단일 기능을 가진 여러개의 작은 클래스로 분할 되어야 한다. 하지만 단일 책임 원칙이 설명하는 대상에는 클래스와 모듈이 라는 것에 주의를 해야한다. 이는 다르게 해석이 될 수 있기 때문이다 해석1: 모듈을 클래스보다 더 추상적인 개념으로 간주하고 클래스를 일종의 모듈로 간주한다. 해석2: 모듈을 좀 더 포괄적인 대상으로 놓고, 여러 클..
KEEMSY
'solid' 태그의 글 목록