[부스트캠프 AI Tech 3기 Pre-Course] 꼭 알아야 하는 파이썬 기초 지식

[부스트캠프 AI Tech 3기 Pre-Course] 꼭 알아야 하는 파이썬 기초 지식

모든 게시물은 macOS Monterey 12.0.1 버전을 기준으로 작성하였습니다.

부스트캠프 AI Tech 3기 예비 캠퍼를 위한 Pre-Course 강좌를 바탕으로 작성하였습니다.

https://www.boostcourse.org/

Python Object Oriented Programming

파이썬뿐만 아니라 자바와 C ++ 역시 OOP 기반의 언어들이다.

데이터 흐름에 기반한 절차지향적 프로그래밍 방법이 하드웨어의 엄청난 성장과 함께 한계점을 보였고,

큰 문제를 작게 쪼개는 것이 아니라 작은 문제들을 해결할 수 있는 객체들을 만든 뒤에 이 객체들을 조합하여

큰 문제를 해결하는 Bottom-Up 방식이 등장한다.

따라서 객체간 독립성이 높아 코드 수정이 필요할 때도 적은 범위의 코드 수정으로 문제 해결이 가능하고

이는 유지 관리 비용을 낮출 수 있다는 장점을 만들어 준다.

객체는 속성(Attribute)과 행동(Action)을 가진 일종의 물건이다. 그렇다면 '객체 지향'이란 무엇일까?

OOP에 대해 이야기할 때면 Class와 Instance에 대한 이야기를 많이 한다.

Class는 어떤 객체의 설계도이고, 그 실제 구현체가 Instance = 객체이다.

붕어빵 틀과 붕어빵이라고 비유한단다. 틀은 하나인데 팥, 말차, 고구마, 슈크림 붕어빵을 만들 수 있다.

개념이 확 이해되고 와닿진 않는다. 역시 이해는 구현이다.

self를 강조하여 주셨는데 class 내에서는 생성된 instance를 self라고 표현하고

class 밖에서는 생성된 instance를 객체명(사용자가 정의한 변수)을 통해 표현한다.

지금까지 변수명은 끌리는대로 snake_case와 CamelCase를 혼용하여 사용하고 있었는데

함수/변수명에는 snake_case, Class 이름에는 CamelCase를 사용한다는 규칙이 있었다..

그리고 오늘 배웠던 부분에서 가장 놀랐던 부분. 전공과목에서 매번 나오는 과제를 해결하기 위한 목적으로만

공부하였다는 사실이 여실히 드러나는 부분이었다. class를 정의하고 나서 객체를 프린트하면 알 수 없는 문자들만

바라보곤 했었는데 언더바 2개에 비밀이 숨겨져 있었다.

__는 특수한 예약 함수나 변수와 함수명 변경(맹글링)에 사용된다.

그 예로 __main__, __add__, __str__, __eq__ 등이 있다.

소스코드와 결과로 사용되는 예시를 확인하자.

__str__ 을 이용하여 생성한 객체를 print 하면 원하는 문구가 출력될 수 있게 설정할 수 있다.

또 다른 예로 __add__ 를 사용한 것이다.

아래 잘 정리되어 있으니 확인하여 공부하면 좋겠다.

https://corikachu.github.io/articles/python/python-magic-method

한 줄 띄어서 나눔 고딕을 이용하다.

from http://hae-koos.tistory.com/21 by ccl(A) rewrite - 2021-12-04 00:02:28