본문 바로가기
백수/java

1. OOP가 뭐죠?

728x90
반응형

객체 지향 프로그래밍입니다.

인간 중심적인 프로그래밍 패러다임(견해, 사고법)이라 할 수 있습니다.

프로그래밍에서 필요한 데이터를 추상화시켜서 상태(속성, 어트리뷰트), 행위(메서드)를 가진 객체로 만들고 그 객체 간의 상호 작용을 통해 로직을 구성하는 방법을 의미합니다.

 

장점

  • 다른 클래스를 가져와 사용 가능하고 상속을 받아 코드의 재사용성 증가
  • 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용 가능하며 신뢰성 확보 가능
  • 클래스 단위로 모듈화가 가능하며 대현 프로젝트의 적합
  • 객체 단위로 코드를 나누어 작성되기 때문에 디버깅이 쉽고 유지보수가 용이함

 

단점

  • 처리 속도가 상대적으로 느림
  • 객체가 많으면 용량이 커짐
  • 설계 시 많은 노력, 시간이 필요

 

객체 지향의 특성

  • 캡슐화
    • 코드를 수정 없이 재활용하는 것을 목적으로 함
    • 클래스라는 캡슐에 기능, 특성을 담아 묶는다(목적 기준으로 묶음)

 

  • 상속
    • 클래스로부터 속성, 메서드를 물려받는 것을 말함
    • 다른 클래스를 가져와서 수정할 일이 있다면 그 클래스를 직접 수정하는 대신 상속을 받아 변경하고자 하는 부분만 변경

 

  • 추상화
    • 객체 지향 관점에서 클래스를 정의하는 것
    • 불필요한 정보 외 중요한 정보만 표현함으로써 공통의 속성, 기능을 묶어 이름을 붙이는 것

 

  • 다형성
    • 하나의 변수명, 함수명이 상황에 따라 다르게 해석 가능
    • 대표적으로 오버라이딩, 오버로딩이 존재다형성

 

OOP의 5가지 설계 원칙 (SOLID)

  1. SRP : 단일 책임 원칙
    • 클래스는 단 하나의 책임(목적)을 가지고, 그에 대한 책임을 져야 한다.
  2. OCP : 개발-폐쇄 원칙
    • 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.
    • 클래스를 수정해야 한다면 그 클래스를 상속(확장)하여 수정한다.
  3. LSP : 리스 코프 치환 원칙
    • 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
    • 자식 클래스를 사용 중일 때, 거기에 부모 클래스로 치환하여도 문제가 없어야 한다.
  4. ISP : 인터페이스 분리 원칙
    • 각 행위에 대한 인터페이스는 서로 분리되어야 한다.
  5. DIP : 의존 역전 원칙
    • 상위 클래스가 하위 클래스에 의존하면 안 된다는 법칙
    • 기본적인 공통되는 속성을 하위 클래스에 의존하면 안 된다.
728x90
반응형

'백수 > java' 카테고리의 다른 글

버블 정렬  (0) 2023.07.13
싱글톤 패턴  (0) 2023.07.13
동기, 비동기  (0) 2023.07.05
DTO, VO  (0) 2023.07.03
알고리즘  (0) 2023.06.26