객체지향 4가지 특징
- 추상화(Abstraction) : 핵심적인 개념 또는 기능을 간추려 내는 것
- 다형성(Polymorphism) : 하나의 객체가 여러 가지 타입을 가질 수 있는 것
- 캡슐화(Encapsulation) : 객체의 속성과 행위를 하나로 묶고, 구현 내용 일부를 내부에 감추어 은닉하는 것
- 상속(Inheritance) : 부모로부터 요소를 물려받는 것
객체지향의 5가지 설계 원칙(SOLID)
- SRP : Single Responsibilty Principle (단일 책임 원칙) : 하나의 책임만을 가진다.
- OCP : Open/Closed Principle (개방 폐쇄 원칙) : 확장에는 열려있고, 변경에는 닫혀있다. 기존 코드를 변경하지 않고 새로운 기능을 추가할 수 있어야 한다.
- LSP : Liskov’s Subsitution Principle (리스코프 치환 원칙) : 하위타입 객체를 상위타입 객체로 치환해도 동작에 문제가 있으면 안된다.
- ISP : Interface Segregation Principle (인터페이스 분리 원칙) : 많은 기능을 가진 인터페이스를 작은 단위의 인터페이스로 분리시킴으로써 클라이언트가 필요한 기능만 구현할 수 있도록 해야 한다. 필요하지 않은 기능에 의존하게 되면 예상하지 못한 문제가 발생할 수 도 있어 이를 예방한다.
- DIP : Dependency Inversion Principle (의존성 역전의 원칙) : 변경이 거의 일어나지 않는 쪽을 의존해라, 변경이 자주 일어나는 곳에 의존하게 되면 변화의 영향을 많이 받는다.
객체지향
- 적절한 객체에게 적절한 책임을 할당하여 서로 메시지를 주고 받으며 협력하도록 하는 것
- 점점 증가하는 SW 복잡도를 낮추기 위해 객체지향 패러다임 대두
- 클래스 보다 객체에 초첨을 맞춘다.
- 객체들에게 얼마나 적절한 역할과 책임을 할당하는 지
'Back-end' 카테고리의 다른 글
[Heroku] 배포 h10 "app clush" 에러 (0) | 2022.08.30 |
---|---|
HTTP (0) | 2022.08.24 |
TDD(Test-Driven-Development) : 테스트 주도 개발 (0) | 2022.08.21 |
쿠키(Cookie) (0) | 2022.05.18 |
캐시(Caching) (0) | 2022.05.18 |