Home 객체 지향 설계 (OOP, Object Oriented Programming)
Post
Cancel

객체 지향 설계 (OOP, Object Oriented Programming)

객체 지향 설계란?

기술 면접 단골 질문이지만 의외로 바로 대답이 나오지는 않는 질문이다 이참에 확실히 정리하고 포스팅을 작성한다

“객체들을 통해 로직을 구성하는 프로그래밍 방법론, 여기서 객체는 추상화된 설계도를 통해 생성되고 상태와 행위를 가진다”

객체 지향 설계의 장점

###1. 코드 재사용이 용이하다 이미 작성된 클래스를 가져와 이용할 수 있고, 상속을 통해 확장할 수 있다 ###2. 유지보수가 쉽다 절차지향 프로그래밍에서는 코드를 수정할 때 로직을 따라가면서 수정해야 하는 반면, 객체지향 프로그래밍에서는 수정할 멤버 변수나 메서드만 수정하면 된다 ###3. 대형 프로젝트에 적합하다 클래스단위로 모듈화하여 개발할 수 있으므로 개발 과정에서 업무 분담이 쉽다

객체 지향 설계의 단점

###1. 처리 속도가 상대적으로 느리다 ###2. 객체가 많아지면 메모리 사용량이 커진다 ###3. 설계시 많은 시간과 노력이 필요하다

객체 지향 설계 방법론 (SOLID)

###1. 단일 책임 원칙 (Single Responsibility Principle) 클래스는 하나의 책임만 가져야 한다 ###2. 개방-폐쇄 원칙 (Open-Closed Principle) 확장에는 열려있고 수정에는 닫혀 있어야 한다 ###3. 리스코프 치환 원칙 (Liskov Substitution Principle) 자식 클래스는 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행해야 한다 ###4. 인터페이스 분리 원칙 (Interface Segregation Principle) 인터페이스는 하나의 책임을 가져야 한다 ###5. 의존관계 역전 원칙 (Dependency Inversion Principle) 구체화가 아닌 추상화에 의존해야 한다 구체화에 의존할수록 유지보수성이 떨어진다

This post is licensed under CC BY 4.0 by the author.

좋은 코드란 무엇일까?

객체 지향 설계의 5가지 원칙(OOP, Object Oriented Programming)