코드설계원칙

·개인공부
데메테르의 법칙, LoD LoD 는 일반적인 설계원칙(SOLID, KISS, DRY) 만큼 잘 알려진 원칙은 아니지만, 이 원칙을 준수할 경우 코드에서 높은 응집도 와 낮은 겹합도 를 달성 해낼 수 있게 된다. 높은 응집도와 낮은 결합도 는 코드의 가독성과 유지 보수성을 효과적으로 향상시키고 기능 변경으로 인한 코드 변경 범위 를 줄일 수 있는 매우 중요한 설계 사상이다. 단일 책임 원칙, 구현이 아닌 인터페이스기반 개발 등 많은 설계 원칙 또한 높은 응집도와 낮은 결합도를 달성하는 것을 목표로 하고 있다. 시스템, 모듈, 클래스, 함수의 설계와 개발 뿐만 아니라 마이크로서비스, 프레임워크, 구성요소 클래스 라이브러리의 설계와 개발에도 적용될 수 있다. 높은 응집도 높은 응집도는 클래스 자체의 설계에 사..
·개인공부
가능한 단순하게 유지하라, 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 등 다양하..
·개인공부
중복 코드를 작성하지 말라, Don't Repeat Yourself(DRY) DRY(Don't Repeat Yourself) 원칙은 흔히 중복 코드를 작성하지 말라 는 의미로 사용된다. 하지만 DRY 원칙에서 말하는 중복은 프로젝트에 여러개의 중복된 코드가 DRY 원칙에 위배한다 말하는 것은 아니다. 코드 자체는 DRY 원칙의 위배 대상에 포함되지 않는다. 개발에서 이야기 할 수있는 중복 코드 논리의 중복 기능적(의미론적) 중복 코드 실행의 중복 코드 논리의 중복 public void authenticate(String username, String password) { if (!isValidUserName(username)) { // InvalidUsernameException 발생 } if (!isV..
·개인공부
개방 폐쇄 원칙은 확장할 때는 개방, 수정할 때는 폐쇄 원칙으로 불린다. 이는 SOLID 원칙 중에서도 가장 이해하기 어렵고, 마스터하기 어려우면서도 가장 유용한 원칙이다. 개방 폐쇄 원칙을 이해하기 어려운 이유는 코드를 변경할 때 그 결과를 확장으로 보아야하는지, 수정으로 보아야하는지 명확하게 구분하기 어렵기 때문이다. 개방 폐쇄 원칙이 숙달하기 어려운 이유는 '확장할 때는 개방, 수정할 때는 폐쇄' 라는 개념을 어떻게 달성할 것인지, 높은 확장성을 추가하면서 코드의 가독성에 영향을 미치지 않도록 이 원칙을 프로젝트에 어떻게 유연하게 적용할 것인지와 같은 문제는 이해하기 어려운 문제에 속하기 때문이다. 하지만 개방 폐쇄 원칙(확장성)은 코드 품질의 중요한 척도 이기 때문에 가장 유용하다. 디자인 패턴 ..
KEEMSY
'코드설계원칙' 태그의 글 목록