목록객체지향 (3)
거누의 개발노트
면접에서 꼭 질문하는 꼬리에 꼬리를 무는 객체지향에대해서 공부해 보려고 한다. 객체 지향 프로그래밍(Object Oriented Programming) 먼저 객체란 우리가 실생활에서 쓰는 모든 것을 객체라고 한다. 간단한 예로 선풍기, 노트북 주변에 있는 모든것들이 객체가 될 수 있다. 사물뿐만 아니라 동물, 사람도 마찬가지로 객체가 될 수 있는 것이다. 그래서 객체 지향 프로그래밍은 먼저 객체를 파악하고, 이 객체들이 무슨 역할을 하는지 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 결론, 필요한 데이터를 추상화 시켜서 상태와 행위를 가진 객체를 만들고 그 객체들간의 상호작용을 통해 로직을 구성하는 방법론인거다. 추상화 그럼 추상화시킨다는 말은 어떤 의미일까? 공통의 속성이나 기..
단일 책임 원칙(Single responsibility priciple, SRP) 하나의 클래스는 하나의 책임만 가져야한다. 책임이란 기준이 모호하기 때문에 변경 을 책임의 기준으로 삼으면 설계에 용이할 수 있다. 어떠한 역할에 대해 변경사항이 발생했을때, 영향을 받는 기능만 모아둔 클래스라면 동일한 책임을 지닌 기능이 모인 집합으로써 SRP 원칙이 적용된 설계로 볼 수 있을것 같다. 이처럼 변경사항이 있을때, 애플리케이션의 파급 효과가 적으면 SRP 원칙을 잘 따른것으로 볼 수 있다. 개방/폐쇄 원칙(Open/Closed Principle, OCP) 방폐쇄 원칙은 클래스, 모듈 함수 등의 소프트웨어 개체는 확장에 대해 열려있어야 하고, 수정에 대해서는 닫혀 있어야 한다는 프로그래밍 원칙이다. 수정이 일..
객체 지향 프로그래밍 하는 이유? 유지보수성! + 재사용성! OOP의 4대 기본원칙 1. 추상화(Abstraction) 객체들의 공통적인 특징(속성, 기능)을 뽑아 이름을 붙이는 것 클래스 VS 객체 클래스 : 분류에 대한 개념 -> 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념 (ex.사람) 객체 : 실체 -> 유일무이한 사물 (ex. 모모) 추상화 : 구체적인 것을 분해해서 관심 영역 (애플리케이션 경계) 에 있는 특성만 가지고 재조합하는 것 (= 모델링 2. 캡슐화(Encapsulation) 특정 객체가 독립적으로 역할을 제대로 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것 (모듈화의 의미) 정보를 객체 안에 포함시키고, 그 정보에 대한 직접 접근은 허용하지 않는 대신, 필요에 따라 확..