프로그래밍

[프로그래밍] 객체지향 프로그래밍(OOP)이란?

K.Seungmin 2024. 9. 26. 15:02

오늘은 객체지향 프로그래밍에 대해 알아보겠습니다. 최근 인텔리제이로 자바를 공부하면서 프로그래밍 공부를 처음부터 다시 시작하는 마음으로 공부를 하고 있습니다. 그래서 객체지향 프로그래밍에 대해서 다시 개념을 잡고자 이 글을 작성하며 정리해 보았습니다. 객체지향 프로그래밍은 소프트웨어 개발에서 매우 중요한 개념으로, 어떤 프로그램을 코딩하더라도 사용되는 중요한 개념입니다. 효율적이고 유지보수가 간편한 그런 코드를 작성하는 것이 객체지향 프로그래밍의 목표라고 생각합니다.

 

객체와 클래스

객체지향 프로그래밍에 대해 알아보기 전에 먼저 객체 대한 정보와 클래스에 관한 정보를 간단하게 설명해 보겠습니다.

먼저 클래스란 특정 유형의 객체를 정의하기 위한 설계도입니다. 클래스는 객체의 속성과 메서드를 정의합니다. 클래스의 구성요소로는 속성, 메서드, 생성자가 있습니다. 이를 통해서 객체를 사용하기 전에 클래스를 정의해야 합니다.

다음으로 객체란 클래스로부터 생성된 실체입니다. 객체는 클래스에서 정의한 속성과 메서드를 실제로 구현한 것입니다. 아까 클래스가 설계도라고 했는데 객체는 설계도로부터 나온 실체라고 생각하면 됩니다.

 

객체지향 프로그래밍의 특징

  1. 추상화 : 객체의 공통된 속성과 행위를 추출해서 단순화하는 과정입니다.
  2. 캡슐화 : 객체의 내부 상태를 숨기고, 외부에서 접근할 수 있는 방법을 제한하는 것입니다. 이를 통해 데이터의 무결성을 유지하고, 객체의 사용자가 내부 구현에 의존하지 않도록 합니다.
  3. 상속 : 기존의 객체의 속성과 메소드를 새로운 객체가 물려받는 기능입니다. 이를 통해 코드의 재사용성을 높이고 계층구조를 형성할 수 있습니다.
  4. 다형성 : 동일한 메소드가 서로 다른 객체에서 다르게 동작할 수 있는 능력입니다. 이를 통해 코드의 유연성을 높이고 다양한 객체를 동일한 방식으로 한 번에 처리할 수 있게 해 줍니다.

 

객체지향 프로그래밍의 장점

  1. 코드의 재사용성 : 객체를 만들고 사용함에 따라서 객체를 재사용하고 상속을 통해서 중복코드를 줄일 수 있습니다.
  2. 유지보수 : 캡슐화를 통해서 코드변경이 용이하고 잘못된 접근을 방지할 수 있습니다.
  3. 개발 속도 향상 : 캡슐화, 추상화를 통해서 복잡한 시스템을 단순화할 수 있고, 이를 통해 개발자들이 시스템을 쉽게 이해하고 수정하는 시간이 감소됩니다.

 

객체지향 프로그래밍 언어

객체지향 프로그래밍을 지원하는 언어로는 JAVA, C++, Python, C# 등이 있습니다.

 

후기

오늘은 객체지향 프로그래밍에 대해 간단하게 알아보았습니다. 공부를 진행하다 보면 가장 기초적인 개념을 잊어버릴 때가 있는데, 한번씩 개념을 되돌아보며 공부를 진행하는 것이 좋은 것 같습니다. 내 코드에 대해 생각하게 되는 굉장히 의미 있는 시간이었습니다.