memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

객체 지향 프로그래밍, Object Oriented Programming (OOP)

- 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나

- 프로그램을 명령어의 목록으로 보지않고, 여러 개의 독립된 단위인 '객체(Object)'들의 모임으로 파악하고자 하는 것

- 각각의 객체는 메시지를 주고받고, 데이터 처리가 가능

- 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 함

OOP의 예시

 

 

객체 지향적 설계 원칙

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

- 클래스는 단 하나의 책임을 가져야 함.

- 클래스를 변경하는 이유는 단 하나의 이유이어야 함

 

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

- 확장에는 열려있고, 변경에는 닫혀있어야 함

 

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

- 상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 함

 

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

- 고수준 모듈은 저수준 모듈의 구현에 의존하면 안됨

 

 

OOP의 특징

1. 캡슐화 (Encapsulation)

객체의 데이터를 외부에서 변경하지 못하도록 막고, 접근 제어 메소드(Access Method)로만 변경할 수 있도록 함

 

2. 추상화 (Abstraction)

- 불필요한 정보는 캡슐화하여 숨기고 중요한 정보만을 표현함.

- 객체가 가진 동작을 기준으로 추상화하여, 프로그래머는 보다 쉽게 객체를 사용할 수 있음

 

2. 상속 (Inheritance)

- 상속은 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능

- 또한, 하위 클래스에서 기능을 더 확장할 수 있음

 

3. 다형성 (Polymorphism)

- 다형성은 어떤 한 요소에 여러 개념을 넣어 놓는 것으로, 보통 '오버라이딩'(Overriding) 또는 '오버로딩'(Overloading)을 의미

 

 

Reference

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!