개발자가 내팔자

[PyLadies X 한빛미디어] Fluent Python Study 4주차 본문

STUDY

[PyLadies X 한빛미디어] Fluent Python Study 4주차

야생의 개발자 2025. 2. 10. 09:49

PyLadies Seoul에서 진행하는 Fluent Python Study

 

오늘도 어김없이 일요일 오전 11시에 스터디가 진행되었습니다.

벌써 4주차라는 사실이 믿기지 않을 만큼 시간이 빠르게 흘러가는 것 같습니다.

 

이번 장은 'Chapter 13 인터페이스, 프로토콜, 추상 베이스 클래스', 'Chapter 14 상속: 득과 실' 이었습니다.

 

저는 C, C++, C#(유니티로 게임개발), Node 풀스택, Java를 적게나마 경험해 보았습니다. JS를 제외하면 대부분 정적 언어이고, JS도 프로토타입 기반 객체지향 언어이지만 결국 TypeScript가 도입되면서 기존 정적 언어들의 장점을 흡수하였습니다. 객체지향을 공부하면 공부할 수록 대부분의 언어들이 하나의 객체지향 설계 원칙을 따르는 것을 보면서, 왜 Python은 유독 다를까? 라는 생각이 들었습니다.

 

Python 웹 개발자의 파이가 한국에서 그렇게까지 크지 않고, 객체지향 원칙 등의 주요 흐름을 따라가기 위해서는 결국 Java를 따로 공부해야 하는 걸까? 라는 고민을 많이 해왔습니다. 파이썬에는 다른 객체지향 언어에서 지원하는  private, public, protected 등의 접근 제어자들도 없고, 인터페이스를 정의하거나 구현할 때 interface나 implements라고 따로 명시하지도 않습니다. 시중에 있는 대부분의 객체지향 책들이 Java로 되어있고, 그러한 책들을 보면서 파이썬과는 간극이 있는 설명이 나올 때마다 파이썬에서는 왜 이런 게 없을까? 파이써닉하면서도 객체지향적인 코드는 어떤 걸까? 너무 궁금했었습니다.

 

하지만 전문가를 위한 파이썬 (Fluent Python)의 이 챕터를 읽고 나서는 파이써닉하면서도 객체지향적인 코드가 이런 걸 말하는구나, 라는 감을 잡을 수 있게 되었습니다. 파이썬에는 저러한 키워드가 부족한 게 아니라, 필요조차 없었다는 것을 비로소 알게 되었습니다. 바로 덕 타이핑, 나아가 구스 타이핑이 있기 때문이죠. 상속을 받아야만, 인터페이스를 정의하고 그것을 명시적으로 구현해야만 하는 게 아닌 더 많은 자유와 편의가 주어지는 것입니다.

 

스터디에서 실무에서 파이썬을 오래 쓰신 분들은 오히려 mypy를 싫어하기도 한다고 이야기를 들었습니다. 타입에서 자유로웠던 파이썬이 이제는 타입을 지원하게 되면서 예전의 파이써닉함을 잃었다고 여기는 사람들이 있는 것 같습니다. 저도 실무에서 mypy를 사용하고 있지만, 타입힌트가 주는 편리함과 제약으로부터 오는 불편함이 공존하는 것 같아요.

 

이번 챕터들은 파이썬 자체에 대한 내용도 있지만, 객체지향에 대한 내용이 있었어서 평소에 객체지향에 대해 알고 있는 사람이라면 조금 더 읽기가 수월했을 것 같습니다. 다음 스터디도 기대가 되네요!

 

https://another-pro.notion.site/Chapter-13-b8fad231b4f04abda54050b6847ef817?pvs=4

 

Chapter 13 인터페이스, 프로토콜, 추상 베이스 클래스 | Notion

ToC

another-pro.notion.site

 

https://another-pro.notion.site/Chapter-14-0ad5a3bc79124496b0e60aedc6c242ec?pvs=4

 

Chapter 14 상속: 득과 실 | Notion

14.2 super() 함수

another-pro.notion.site

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments