printf("ho_tari\n");

ep.12 객체 지향 프로그래밍 본문

두산 로보틱스 부트캠프 ROKEY/Python 교육

ep.12 객체 지향 프로그래밍

호타리 2024. 7. 23. 15:29

2024.7.23

오늘 이론 교육 시간에 배운 내용은 객체 지향 프로그래밍이다.

오늘은 코딩적인 내용보다 이론적인 내용에 대해서 다루었다.

 

객체 지향 프로그래밍의 방법으로는

먼저, 데이터와 코드를 객체로 함께 구성해서 한 개 자료형으로 취급하고 많은 객체 지향 언어들이 클래스(class)라는 이름으로 데이터와 코드를 묶을 수 잆는 기능을 제공한다.

객체(object)는 프로그램이 실행될 때 클래스로부터 생성되는 실체이고

클래스(class는 객체의 속석(변수)과 속성들을 사용하고 처리하는 기능(함수 또는 메서드)를 포함하는 코드이다.

 

클래스 = 속성(변수) + 기능(함수) + 인터페이스

클래스는 객체를 생성하기 위한 설계도 또는 설명서이다.

속성을 나타내는 변수들과 이를 사용하는 함수들로 구성된다. 또, 자료형이르모 직접 실행될 수 없고 프로그래밍 일반적으로 인터페이스는 함수 형태로 제공된다.

객체는 클래스로부터 생성되고, 인터페이스로 제공되는 함수들을 호출해서 사용한다.

 

객체 지향 프로그래밍의 특성은 다음과 같다.

1. 추상화

2. 캡슐화

3. 재상용성

4. 상속

5. 다향성

 

추상화: 실존하는 사물 또는 개념을 컴퓨터에서 처리할 수 있을 정도로 축약하고 핵심을 뽑아내는 것

캡슐화: 필요한 정보와 인터페이스만 공개하고 나머지 자세한 구현 내용을 감추는 것 (은닉성이라고도 부름), 클래스의 인터페이스가 변경되지 않으면 사용자 코드를 변경할 필요가 없음

재사용성: 클래스는 절차적 프로그래밍의 함수에 비해 재사용성이 높음, 클래스는 필요로 하는 모든 기능들을 포함시켜 독립적으로 만들 수 있음, 클래스가 다른 클래스에 의존적이지 않으면, 재사용성이 높아짐

상속: 객체 지향 프로그래밍의 상속과 다향성을 활용하면 기존 클래스 코드를 수정하지 않고 클래스의 기능을 확장하거나 다르게 만들 수 있음, 자식 클래스가 부모 클래스로부터 상속을 받는다면, 부모의 모든 속성과 함수들을 포함하게 됨

다향성: 동일한 함수가 다르게 작동한다는 의미, 상속 관계의 여러 클래스들에서 동일한 명칭으로 구현된 함수들이 각각 다르게 동작하는 것, 부모 클래스에 있는 함수가 자식 클래스들에서 오버라이딩 되면, 실행 시점에 자신의 객체에 연결되어 오버라이딩 된 함수들이 호출됨

 

오후 실습 시간에는 이런 클래스를 선언하고 사용하는 문제들을 풀며 연습을 하였다.

클래스 선언과 멤버함수 구현은 어려운 것 같으면서도 쉬운 것 같으면서도 먼가 애매하다. 좀 더 개념을 공부하고 반복 숙달을 하면 손에 익을 것 같긴하다.

오늘 담당조교님께서 해주신 말씀은 다음과 같다.

사실 파이썬이 객체지향인 걸 모르는 개발자도 종종 있다
Jupyter Notebook 같은 툴을 쓰거나 데이터 분석, 머신러닝/딥러닝은 클래쓰를 안 써서

아예 첨부터 상속 구조를 만드는 하드코딩은 실무도 피한다
주어진 프레임워크를 이용하는 방법을 선호
프레임워크=템플릿 (완전히 같진 않아도 비슷하다고 이해 가능)

프레임워크의 상속 구조를 이해하는게 중요
대충 내가 어딜 고쳐야 하는지 알아햐 한다 정도

프로그램의 완결성을 요구할수록 결점 투성이 된다
초기 프레임워크에서 없던 오류가 유발되기도 함

DR-01408_박성호_파이썬_연습문제_12차시.pdf
0.22MB
DR01408_박성호_파이썬_연습문제_12차시_추가문제.pdf
0.63MB

'두산 로보틱스 부트캠프 ROKEY > Python 교육' 카테고리의 다른 글

ep.14 자료구조3(시퀀스)  (0) 2024.07.25
ep.13 모듈  (0) 2024.07.24
ep.11 자료구조2(딕셔너리, 집합)  (0) 2024.07.22
ep.10 예외 처리  (0) 2024.07.19
ep.9 파일  (0) 2024.07.18