SOLID - 소프트웨어 설계를 이해하기 쉽고, 유연하고, 유지보수가 쉽게 만들기 위해 나온 원칙
SRP - Single Responsibility Principle, 단일 책임 원칙, 클래스의 존재 이유가 하나여야만 함, 클래스의 책임을 정확히, 오류 확인 쉬움
OCP - Open / Closed Priciple, 개방-폐쇄 원칙, 클래스 내부 수정 없이 동작을 확장할 수 있어야 함
LSP - Liskov Substitution Priciple, 리스코프 치환 원칙, 부모 클래스의 동작은 자식 클래스에서 모두 할 수 있어야 함
ISP - Interface Segregation Principle, 인터페이스 분리 원칙, 큰 인터페이스 몇 개보다 작은 인터페이스 많은 것이 나음
DIP - Dependency Inversion Priciple, 의존 역전 원칙, 구체적인 것이 아닌 추상적은 것에 의존하는게 나음
초창기 OO를 바라보는 관점 2가지
- ADT (Abstract Data Types)
- PDA (Procedural Data Abstration) : 개체 간 상호작용을 메시지로만
XP - eXtreme Programming
- Pair Programming, 2명이 같이 하는 프로그래밍, 효율적이지 않음
- Continuous Integration, 각자의 브랜치에서 너무 오래 작업하는 것은 좋지 않음, 중간 중간에 합치는 방식이 좋음, 하루에 여러번 X, git
- Test-Driven Development, 테스트 주도 개발, 처음 테스트 하는 사람은 개발자, 기능 개발 전 테스트 코드 개발, 코드 품질은 높아짐, but 테스트는 전문가에게