codestates / codestates/ds-blog
[김태헌]_객체 지향 프로그래밍(OOP)
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
OOP는 Object-Oriented Programming의 약자로, 객체 지향 프로그래밍이라고 한다.
코드를 만지는 사람에게 있어 편리한 생활권을 보장하는 기능이지만, 이해하고 익숙해지기까지는 그리 편하지만은 않다.
함께 알아보고 공부하는 시간을 가져보고, 손가락 지문이 닳도록 연습해보도록 하자..
# 객체 - Object
갑자기 왜 객체가 나오냐? 할수도 있겠지만, 뭐든지 기초가 탄탄해야하는법이라 했다.
간단하게 객체가 무엇인지 짚어보고 가보자.
```
- 객체는 속성(attributes)이나 값(value), 함수(method)를 가진 데이터다.
- 객체는 모든 클래스의 베이스 클래스이다.
```
# 객체 지향 프로그래밍 - Object-Oriented Programming
이번엔 객체 지향 프로그래밍을 알아보자.
```
- 객체 지향 프로그래밍은 프로그램을 객체 단위로 프로그래밍한다.
- 각각의 객체는 서로 데이터나 정보를 주고받을수있다.
- 객체 지향 프로그래밍은 소프트웨어 개발과 보수에 용이하도록 한다.
- 코드를 직관적으로 짤수있다.
```
글로만 읽으면 그다지 와닿지 않을수도 있다.
요리를 예로 들어 얘기해보자면, 철수와 영희가 각자 자신이 먹을 비빔밥을 만드려한다고 하자.
철수는 당근, 버섯, 고기를 한번에 후라이펜에 볶아서 비빔밥 고명을 만들고,
영희는 당근, 버섯, 고기를 따로따로 하나씩 볶아서 고명을 만든다.
이때 코딩으로 따지면 철수는 OOP를 사용하지 않고 프로그램 하나를 한번에 찍어내는것이고,
영희는 OOP를 사용해서 객체단위로 프로그래밍을 하는것이다.
조금더 극단적으로 이야기를 해보자면, 철수와 영희 둘다 간장을 넣다가 쏟는 실수를 했다고 해보자.
철수는 3가지 재료를 한번에 조리했기때문에 돌아올수 없는 강을 건너버렸지만,
영희는 재료를 따로따로 조리했기때문에 어느 하나에 간장을 쏟아서 짜면, 나머지를 싱겁게 만들어 간을 맞출수 있다.
코딩에서도 프로그램을 한번에 만들경우에, 나중에 에러의 존재를 알게된다면..어디가 잘못되었고 어떻게 잘못되었는지, 그로인해 뒷부분에 어떤 영향을 끼쳤는지를 다시 돌아가야하는 불상사가 발생하게된다.
반면 OOP를 활용한다면 에러를 발견하고 수정하는 과정이 매우 쉬워진다.
예시와 코딩할때의 상황이 완벽히 겹치는것이 아닌 이해를 위한 예시이기 때문에 과몰입은 금지!
# 클래스(class)
객체 지향 프로그래밍을 설명할때 "프로그램을 객체 단위로 프로그래밍한다." 라고했는데, 여기서 사용하는것이 class이다.
그리고 객체를 설명할때 "모든 클래스의 베이스 클래스"라고 설명했는데, 이 내용들을 합치면 클래스가 완성된다.
객체들을 클래스를 사용하여 하나로 만들고 그렇게 만들어진 클래스들을 프로그래밍 할수있게 하는것이 객체지향프로그래밍인것이다.
그림으로 보면 이렇게 된다.
이렇게 만들어진 한 묶음을 객체, 또는 인스턴스(instance)라고한다.
#### 객체 지향 프로그래밍 방법.
1. 클래스 설계(속성, 값, 함수로 구성)
2. 객체 생성
3. 객체 내에 속성과 함수를 조작해가며 코드작성.
###객체 지향 프로그래밍(OOP)의 목적
##### - 기능과 동작 분리
##### - 같은 기능을 가진 코드 중복 방지
##### - 다른사람이 보았을때도 직관적인 설계
##### - 수정, 보수, 개발에 우수하다
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.