1. SRP: 단일 책임 원칙 (Single Responsibility Principle)

"한 클래스(또는 모듈/함수)는 하나의 책임만 가져야 한다."

2. OCP: 개방-폐쇄 원칙 (Open/Closed Principle)

"확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다."

3. LSP: 리스코프 치환 원칙 (Liskov Substitution Principle)

"자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다."

4. ISP: 인터페이스 분리 원칙 (Interface Segregation Principle)

"사용하지 않는 메서드에 의존하도록 강제해서는 안 된다."

5. DIP: 의존역전 원칙 (Dependency Inversion Principle)

"고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 한다."