[코드잇] 객체 지향 프로그래밍을 알고 계신가요?

코드잇

객체 지향 프로그래밍(OOP)을 들어보셨나요 ?!

*OOP(Object - Oriented Programming)

많은 개발자들이 들어는 봤지만 제대로 이해하지 못한 OOP

책이나 강의를 봐도 잘 이해가 되지않아 포기한 OOP

요즘 핫하다고 하는 데 어떻게 배워야할지 막막한 OOP

객체 지향 프로그래밍은 프로그램을 단순히 명령어의 집합으로만 보지 않고, 프로그램의 각 부분을 독립적인 단위의 객체로 보는 프로그래밍 관점입니다.

프로그래밍이 전문적인 분야에서만 사용되다가, 대중적인 프로그램들이 많이 생겨나면서 기존 절차 지향 프로그래밍 파라다임의 단점들을 극복하기 위해 생겨났습니다.

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

- 프로그램 생산성이 높다.

- 프로그램을 효율적으로 관리할 수 있다.

- 프로그램의 유지보수가 편하다.

객체지향 프로그래밍은, 프로그램 코드 간의 의존도가 낮아서 새로운 기능을 추가하거나 기존의 기능을 수정할 때 소요되는 리소스가 적게 듭니다.

객체 지향 프로그래밍의 특성은?

1. 추상화

추상화는 어떤 것을 사용하거나 이용할 때 몰라도 되는 정보는 감추고 꼭 알아야 할 부분만 드러내는 것을 의미합니다. 프로그래밍에서 추상화란 프로그래머들이 특정 코드를 사용할 때 필수적인 정보를 제외한 세부사항을 가리는 것입니다.

쉽게 이해하기 위해서 커피 머신을 예를 들어보겠습니다. 커피 머신은 굉장히 복잡한 과정을 거쳐서 커피가 추출되지만 실제로 사용자는 원두와 물을 넣고 버튼을 누르면 커피가 추출되는 것을 알고 있습니다. 커피 머신을 사용하기 위해서는 복잡한 추출 원리를 모두 이해할 필요 없이 꼭 알아야 하는 '물, 원두, 버튼 클릭'만 이해하면 됩니다.

2. 캡슐화

객체의 일부 구현 내용에 대한 외부로부터의 직접적인 액세스를 차단하는 것을 캡슐화라고 합니다. 캡슐화를 하지 않으면 데이터가 손실되거나 의도치 않게 변경되는 경우가 생깁니다. 이런 문제를 막기 위해서는 캡슐화를 해주세요.

객체의 속성과 그것을 사용하는 행동을 하나로 묶는 것인데요. 간단히 말하면 변수에 메소드로만 접근할 수 있도록 하는 것을 의미합니다. 이렇게 하면 코드를 수정할 때 발생할 수 있는 오류를 줄여줍니다.

3. 상속

클래스 사이에 부모-자식 관계를 설정해서 부모 클래스의 변수나 메소드를 자식 클래스에서 사용할 수 있는 것을 상속이라고 합니다. 상속을 활용하면 중복되는 코드를 작성하지 않아도 되기 때문에 코드의 재활용성이 올라갑니다.

4. 다형성

다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방식으로 동작하는 것을 의미합니다. 예를 들면 키보드의 키를 통해서 비유를 들 수 있어요. 모든 키는 누르면 어떤 입력을 컴퓨터에 준다는 공통점이 있습니다. 하지만 어떤 키가 눌렸느냐에 따라 실제 동작은 다릅니다. esc키를 누르면 작업 취소, enter 키를 누르면 작업 실행이 이루어지는 것처럼요. 이렇게 다형성이란 동일한 조작 방법으로 동작시키지만, 그 대상에 따라 이루어지는 실제 동작은 달라지는 것을 의미합니다.

이러한 객체 지향 프로그래밍이 왜 중요할까요?!

#1 구글, 넷플릭스, 인스타그램 등 요즘 핫한 기업들에서 모두 객체 지향 프로그래밍 언어를 사용하고 있습니다.

#2 파이썬, 자바스크립트, 자바, 루비, 스위프트 등 요즘 인기있는 언어들은 모두 객체 지향 프로그래밍 언어로 구성되어 있습니다.

#3 객체 지향 프로그래밍 잘 이해하고 있어야 실무에서 프로그램을 효율적으로 관리하고 유지/보수할 수 있습니다.

객체 지향 프로그래밍은 실력 있는 개발자가 되기 위해서 필수적으로 배워야하며 실제 기술 면접에서 빠지지 않고 나오는 영역 중에 하나입니다.

왜 파이썬으로 객체 지향 프로그래밍을 배워야할까요?

1. 파이썬의 수요가 빠르게 증가하고 있습니다.

파이썬은 순수 객체 지향 프로그래밍 언어 인데요.이 말은 그대로 파이썬의 모든 것이 객체라는 말입니다. 즉, 파이썬으로 프로그램을 만들면 무조건 객체 지향 프로그래밍 개념을 활용하고 있는 건데요. 따라서 파이썬을 잘 하기 위해서는 객체 지향 프로그래밍을 필수적으로 배워야합니다.

2.파이썬은 간결합니다.

파이썬은 다른 언어에 비해서 비교적 문법이 간단하기 때문에 파이썬으로 객체 지향 프로그래밍을 배우면 객체 지향 프로그래밍 개념 자체에 집중할 수 있습니다. 객체 지향 프로그래밍을 배울 때 자주 사용하는 자바는, 초심자에게는 비교적 문법이 복잡하고 어려울 수 있기 때문에 객체 지향 프로그래밍을 처음 접할 때는 파이썬이 비교적 수월합니다.

그리고 최근에는 S전자 등 대기업 입사 시험에 파이썬이 포함되는 케이스도 점점 늘어나고 있기 때문에 면접 단골 질문인 '객체 지향 프로그래밍'을 제대로 알고 있어야 합니다.

객체 지향 프로그래밍을 제대로 배워보고 싶으시다면?

기업문화 엿볼 때, 더팀스

로그인

/