OOP, 설계 원칙, 디자인 패턴, 코딩 규칙, 리팩터링, 테스트 케이스(또는 TDD) 사이의 관계
객체지향 프로그래밍객체지향 프로그래밍 : 캡슐화(Capsulation), 추상화(Abstract), 상속(Inheritance), 다형성(polymorphism) 등으로 복잡한 설계 사상을 구현할 수 있으며, 구현(Implementation)과 구성(Composition) 등을 활용해 설계 원칙과 디자인 패턴 구현에 사용된다.설계원칙코드 설계의 품질을 높이는 몇 가지 경험의 요약이며, 코드 설계에서 고려해야 할 일반적인 원칙에 해당한다. 또한 디자인 패턴보다 더 추상적이다.단일 책임 원칙(Single Responsibility Principle) : 모듈, 클래스, 메서드는 하나의 책임 또는 기능만을 가지고 있어야 한다.거대하고 포괄적인클래스를 설계하는 대신, 작은 단위와 단일 기능을 가진 클래스를 설계..