코딩마을방범대

파이썬 (1) - OOP의 개념과 파이썬 설치 본문

💡 백엔드/파이썬

파이썬 (1) - OOP의 개념과 파이썬 설치

신짱구 5세 2025. 9. 8. 10:44
728x90

 

 

 

객체 지향 프로그래밍(OOP)의 핵심 개념과 왜 필요한가?

문제점: 함수 중심 프로그래밍의 한계

과거의 프로그래밍은 주로 함수 중심이었다. 

  • 데이터와 함수가 따로 논다.
  • 복잡성이 증가한다.
함수 중심 프로그래밍의 문제점: 비유로 이해하기

1. 문제 상황: 모든 것을 분리해서 관리할 때
만약 아파트 한 동에 100가구가 살고 있다고 가정해 봅시다. 그리고 각 세대(캐릭터)의 정보를 다음과 같이 따로따로 관리한다고 생각해 보세요.
* 데이터 목록:
     - 101호_전기요금 = 5만원
     - 102호_전기요금 = 7만원
     - ...
     - 201호_수도요금 = 2만원
     - 202호_수도요금 = 3만원
     - ...
* 기능(함수) 목록:
     - 청소_하기()
     - 전기요금_계산_하기()
     - 수도요금_계산_하기()
     - ...
여기서 "101호의 전기요금을 1만원 인상하세요." 라는 요청이 들어왔다고 해 봅시다.
전기요금_계산_하기() 함수를 호출해야 하는데, 이 함수는 어떤 호실의 전기요금을 계산하는지 알 수 없습니다.함수에 101호라는 정보를 따로 전달해야 하고, 함수가 101호_전기요금이라는 데이터와 연결되는 과정을 개발자가 직접 코드로 짜야 합니다.

만약 203호에 사는 사람이 이사를 갔는데, 관련된 203호_전기요금, 203호_수도요금 같은 데이터와 203호와 관련된 모든 함수들을 일일이 찾아다니면서 삭제해야 합니다. 데이터와 기능이 서로 따로 놀기 때문에, 하나만 잘못 건드려도 꼬이기 시작합니다.
이게 바로 "데이터와 함수가 따로 논다" 는 의미입니다.

2. 해결책: 객체 지향 프로그래밍으로 관리할 때
이제 객체 지향 방식으로 아파트를 관리해 봅시다.
여기서는 각 "가구(객체)" 를 하나의 관리 단위로 만듭니다.
* 가구라는 설계도(클래스)를 만듭니다:
     - 
속성(데이터): 전기요금, 수도요금, 면적, 거주자 수 등
     - 기능(함수): 청소하기, 요금_납부하기, 이사하기 등
* 실제 가구(객체)를 만듭니다:
     - 101호_가구_객체
     - 102호_가구_객체
     - ...
이 방식에서는 "101호의 전기요금을 1만원 인상하세요." 라는 요청을 받으면, 101호_가구_객체를 찾아가서 그 객체 안에 있는 전기요금이라는 속성만 수정하면 됩니다. 전기요금_계산_하기() 함수는 객체 안에 포함되어 있으므로, 굳이 어떤 호실인지 따로 알려줄 필요가 없습니다.
데이터와 함수가 객체라는 울타리 안에 함께 묶여있기 때문에 가능한 일이죠.

마찬가지로 203호가 이사를 가면, 그냥 203호_가구_객체 전체를 삭제해 버리면 끝입니다. 관련된 데이터와 기능들이 객체 하나에 모두 포함되어 있어서 일일이 찾아다닐 필요가 없습니다. 이처럼 OOP는 복잡한 문제를 객체라는 단위로 쪼개서 관리하기 때문에 복잡성이 크게 줄어들고 유지보수가 훨씬 쉬워집니다.

 

 


 

 

해결책: 객체 지향 프로그래밍(OOP)의 등장

OOP는 "데이터와 데이터를 처리하는 함수를 하나의 객체로 관리하자"는 개념이다.

 


 

OOP의 장점

코드 재사용

객체 지향 프로그래밍은 '클래스'라는 설계도를 이용해 코드를 만듭니다. 이 설계도만 한 번 잘 만들어두면, 필요할 때마다 새로운 객체를 무한히 생성하여 재사용할 수 있습니다. 이미 만들어진 코드를 반복해서 가져다 쓰는 것이므로, 개발 시간을 크게 줄일 수 있습니다.

 

코드 중복 방지

여러 곳에서 반복적으로 사용되는 기능은 클래스 안에 한 번만 정의하면 됩니다. 덕분에 동일한 코드를 여러 번 작성할 필요가 없습니다. 이는 코드의 양을 줄여주고, 유지보수 시에도 한 곳만 수정하면 되기 때문에 효율적입니다.

 

유지보수 용이성

모든 데이터와 기능은 '객체'라는 독립적인 단위로 묶여 관리됩니다. 만약 특정 객체에 문제가 생겨도 해당 객체만 수정하면 되므로, 전체 시스템에 영향을 줄 위험이 적습니다. 덕분에 코드를 안전하게 수정하고 관리하기가 훨씬 수월해집니다.

 

대형 프로젝트에 적합

객체 지향 프로그래밍은 복잡한 현실 세계를 객체라는 모듈화된 단위로 나누어 관리합니다. 각 개발자는 자신이 맡은 객체에만 집중할 수 있어 협업이 용이하며, 전체 코드의 복잡도를 낮춰 대규모 프로젝트를 체계적으로 진행할 수 있게 해줍니다.

 

 

 

 

 

 


 

 

 

 

파이썬 설치

 

1. 프롬프트 실행

Mac: 터미널 / Win: cmd

 

아래 명령어 실행 시 현재 설치되어있는 버전 확인이 가능하다.

(Mac은 기본적으로 2.x 버전이 설치되어 있다고 하는데 나는 버전 3 설치 이후 삭제했었는지 설치가 되어있지 않았다)

python --version

 

python에 3을 붙여야 버전 확인이 되는 경우 python만 입력하여 확인할 수 있도록 설정하는 방법은 아래에서 알아볼 것이다.

 

 

2. 파이썬 설치

 

아래 링크에 접속하면 알아서 해당 OS에 맞는 다운로드 링크가 제공된다.

 

 

Download Python

The official home of the Python Programming Language

www.python.org

 

 

3. 파이썬 별칭 등록

 

위에서 말했듯이 꼭 3을 붙이지 않고 python 이라는 글자만으로 실행시킬 수 있는 방법이다.

 

나 같은 경우는 Mac OS 최근 버전이라 '.bash_profile' 이 보이지 않아서 '.zshrc' 를 사용했다.

vim .bash_profile
vim .zshrc
최근 macOS 버전(Catalina 이상)에서는 기본 쉘이 zsh로 바뀌면서 .bash_profile 대신 .zshrc 파일을 사용하는 것이 일반적이다.
따라서, zsh 쉘을 사용하고 있다면 .zshrc 파일을 사용하면 된다.

 

해당 파일 맨 위에 아래 문장을 추가한 뒤 'ESC'->':wq!' 를 입력해서 저장한 후 종료해준다.

alias python='python3'

 

그럼 3 없이 확인해도 이상 무!

 

 

 

 

 

 

728x90