OOP (Object Oriented Programming)

객체 지향 프로그래밍
객체를 바탕으로한 프로그래밍 패러다임 이다.
프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

 

OOP 특징

  • 캡슐화
    • 접근 제어자를 통해 정보은닉
    • 기능과 특성의 모음을 '클래스' 라는 '캡슐' 에 분류해서 넣는 것
  • 상속
    • 상위클래스의 특징을 상속 받아, 속성과 기능을 이어받아 사용 가능
    • 코드의 중복제거, 재사용성 증대
    • 다중 상속은 불가 (상속은 반드시 하나만 가능, 필요에 따라 인터페이스 사용)
  • 추상화
    • 모델링 개념, '공통의' 속성이나 기능을 묶어서 클래스를 설계
    • 다형성으로 확장할 수 있도록 설계
  • 다형성
    • OOP 답게 해주는 가장 큰 특징
    • 하나의 변수명, 메소드명 등이 상황에 따라 다른 의미로 해석될 수 있는 것
    • 역할과 구현을 분리, 오버라이딩을 통해 서비스의 기능을 유연하게 변경, 확장 가능
  • 클래스와 인스턴스(객체)
    • 클래스 : 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메소드로 정의한 것
    • 인스턴스 : 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것

 

OOP 장단점

장점

  • 코드 재사용 용이
  • 유지보수 쉬움
  • 대형 프로젝트에 어울림

단점

  • 처리속도가 상대적으로 느림
  • 객체가 많아지면 용량도 커짐
  • 설계시 많은 노력과 시간 필요
복사했습니다!