객체지향 프로그래밍의 원칙
- 단일 책임의 원칙(SRP) : 객체는 오직 하나의 책임을 가져야한다.
- 개방-폐쇄의 원칙(OCP) : 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야
한다는 원칙. 즉, 객체 기능의 확장을 허용하고 스스로의 변경은 피해야 한다.
- 리스코프 치환 원칙(LSP) : 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다.
- 인터페이스 분리 원칙(ISP) : 클라이언트는 사용하지 않는 인터페이스에 의존해서는 안 된다.
- 의존성 역전의 원칙(DIP) : 추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 된다.
디자인 패턴

싱글톤 패턴
- 객체를 강제적으로 하나만 생성하려는 목적(e.g. DB 커넥션을 위한 인터페이스)
- 방법
- 클래스 자체를 정적(static) 변수로 설정
- 생성자는 private으로 설정
- 유일한 객체를 접근하는 정적 메소드