ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 78 - (파이썬) 객체 지향 프로그래밍
    study with Q - 파이썬 2024. 8. 26. 19:04

    # 1. 프로그래밍 이념

    : 더 좋은 프로그램을 향해서 다가가는 접근 방법

    : 어떻게 하면 프로그램을 더 좋게 만들 수 있을 것인가

     

    강의에서는 종교라고도 했는데 날으는 스파게티 괴물교도 아니고... 그냥 열정 넘치는 신념 정도로 생각하면 되지 않을까

    약간... 부먹파 찍먹파.. 막먹파 정도나 붕당정치 정도...

     

     

    ## 1-1. 객체 지향 프로그래밍

    - 변수와 함수를 묶어서 하나의 묶음으로 만들면 더 좋은 프로그램(aka 규모가 큰 프로그램)을 만들 수 있을 것이다. 

     

    ## 1-2. 절차적 프로그래밍

    : 서브루틴, 프로시저, 함수

    - 같은 코드를 여러 번 작성하지 말고 함수를 만들어서 사용하자!

    - GOTO 구문, JUMP 구문을 사용하지 말고 함수를 사용하자! (파이썬 라잌댓)

     

    ## 1-3. 함수형 프로그래밍

    - 함수는 수학적 개념

    - 순수 함수❤️를 사용해야 한다!

    +) 파이썬의 map, filter, 람다, 리스트 내포, 제너레이터 표현식 등등은 함수형 프로그래밍에 영향을 받는 문법들

     

    ## 1-4. 명령형 프로그래밍

    : 명령문을 사용해서 프로그램이 어떠한 동작을 할지 순서대로 나열해서 프로그램을 만들자.

    (영어로 예를 들자면, 주어+동사+목적어에서 주어를 빼는 것. eg) I print paper. > Print paper.)

    어디서 많이 본 것 같다면 그게 맞음

    print("Hello world")
    input("정수를 입력하시오.> ")

     

    여담) 근데 다 그런거 아녀...?

    더보기

    > 아녀...!

     

    ## 선언형 프로그래밍

    : 함수형 프로그래밍도 선언형 프로그래밍의 분파

    : 명령형 프로그래밍과 반대되는 개념


    파이썬은 위의 네가지의 신념의 집합체 (aka 다신교, 회색분자)

    객체 지향 프로그래밍이 나오기 전까지는 절차적, 함수형, 명령형 프로그래밍이 주류였답니다.


     

    > 이러한 이념을 기반으로 함수를 만들어서 쓰는 것이 개발의 거대한 흐름이 됨. 이러한 흐름을 만들 때 사람들이 함수를 마구마구 만들어냄.

     

    >> 함수가 너무 많아서 발생한 폐혜가 발생!

    - 너 뭐하는 애니?

    : 무엇이 무엇을 하는 함수인지 알 수 없음

    - 이런 작동을 하는 함수가 있기는 하니?

    : 어떤 함수가 존재하는지 찾기도 힘듦

    - 너의 영향력은 어디까지니?

    : 함수를 변경하려는데, 영향 범위를 추적하는 것이 힘듦.

     

    → 대규모의 프로그램을 만드는 것이 힘들어졌기 때문에 아주 기본적인 해결방법을 생각해낸다.

     

    해결방법 : 2. 함수를 카테고리로 묶자! 

    .... 무슨 기준으로?

     

    ## 2-1. 관심사 기준 

    수학 Math❤️

    Math.PI()

    Math.abs()

    Math.sin()

    Math.cos()

     

    ## 2-2. 주어(객체)를 기반으로 변수/함수 모으기

    > 우리는 이걸 객체 지향 프로그래밍이라고 부르기로 했어요.

     


    정리하자면-

     

    파이썬은 

    ## 명령형 프로그래밍

    ## 절차형 프로그래밍

    ## 함수형 프로그래밍

    ## 관심사로 카테고리 구분

    ## 객체 지향 프로그래밍

    위의 모든 것을 섞어섞어 만들었구요,

     

    그중

    ## 관심사로 카테고리는 [모듈]로

    ##객체 지향 프로그래밍은 [클래스]로 구분됩니당

     

Designed by Tistory.