이동준1
아웃풋 공부
이동준1
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • airflow (8)
    • sql (23)
    • aws (12)
    • python (3)
    • 네트워크 (12)
    • 알고리즘 (2)
    • 짧은서평 (24)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Network
  • 고통의 비밀
  • 고통의비밀
  • 네트워크
  • 유연함의힘
  • 퓨처셀프
  • 서평
  • regexp
  • AWS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이동준1
python

[python] OOP

[python] OOP
python

[python] OOP

2024. 1. 20. 23:26

코드를 작성하다보면 자신의 코드가 어떻게 구성되어가는지 파악하기 어려울 때가 있다. 코드를 작성하다보면 그 길이가 점점 길어지고 의존관계가 복잡하게 얽히게 되는 경우가 존재하기 때문이다. 이런 상황이 누적된다면 코드 관리가 심히 어렵다.

 

복잡한 프로젝트를 코딩할때도 단순한 관계를 위지하기 위해서 우리는 OOP (Object Oriented Promramming) , 즉 객체지향 프로그래밍이 필요하다. 나무위키에서는 OOP를 아래처럼 설명한다.

 

프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 '메소드와 변수'를 가지며, 특정 역할을 수행하도록 인간이 정의한, 추상적인 개념이다.

 

이해가 어려우니 예시를 들어보자. 우리가 자율자동차를 하나 만든다고 가정해보자. 자율자동차를 구성하기 위해서는 사물을 파악하기 위한 카메라, 차선 탐지기, navigating 시스템, 그리고 연료관리 시스템 등이 필요할 것이다. 이렇게 '자율자동차 제작' 이라는 크고 복잡한 과업을 별개의 모듈로 나누게되면, 작업자들은 '동시에' 각각의 작업을 진행할 수 있다. 이렇게 작업 생산성이 향상되며, 빠른 소프트웨어 개발이 가능해진다.

 

뿐만아니라, 모듈 재사용이라는 이점도 생긴다. 자율자동차를 만들때 제작했었던 카메라, navigating 시스템, 그리고 연료관리 시스템은 모듈화해뒀기 때문에 드론을 만들때도 다시 사용할수 있다. 만약 자율자동차가 객체지향이아닌, 절차지향으로 만들어졌더면 드론을 제작할때도 처음부터 다시 코딩을 했어야 할것이다. 재사용할수 있는 모듈이 없기 때문이다.

 

정리하자면 OOP는 큰 프로젝트를 좀 더 작은 부분으로 나누어서 각 부분들을 각각의 팀들, 그리고 서로 다른 사람이 담당해서 만들수 있도록 해준다. 추가적으로 각 요소들은 재사용할수있다는 큰 이점도 있다.

'python' 카테고리의 다른 글

[python] session과 cursor  (0) 2024.01.09
[python] decorator  (0) 2023.12.16
    'python' 카테고리의 다른 글
    • [python] session과 cursor
    • [python] decorator
    이동준1
    이동준1

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.