IT일반

파이썬 프로그래밍, 클래스, 클래스를 이용할 때 좋은 점, 클래스 사용하는 법

IT하는 으노 2024. 12. 13. 17:00
반응형

클래스를 이용할 때 좋은 점

학생 관리 프로그램이 있다고 하자. 한 명의 학생에 대한 정보를 표현하고자 한다면 아래와 같이 작성할 수 있다.

<코드1>

stu는 딕셔너리 자료형이다. 딕셔너리의 요소로 name과 age가 있고, 각각 철수, 20이라는 값을 할당했다. study함수는 학생에 대한 정보와 과목명을 넘겨받아 출력을 하는 함수이다. 그렇다면 복수의 학생을 관리하려면 어떻게 해야 할까? 다음과 같이 코드를 작성해 보자.

<코드2>

코드도 명료하고 큰 문제가 있어보이지는 않는다. 그러나 훨씬 다양한 함수와 변수가 생성되고 프로그램이 복잡해진다면, study와 stu1, stu2 사이의 밀접한 관계를 알아보기 어려워질 수도 있다. 클래스를 사용하면 이 관계를 밀접하게 정의할 수 있다.

<코드3>

어떻게 보면 더 복잡한 코드를 작성하는 것처럼 보인다. 그러나, 하나의 클래스 안에 데이터의 속성과 함수를 함께 선언해 줌으로써 밀접한 관계를 표현하기 때문에 여러 가지 장점이 생기게 된다.

  • 가독성이 높아진다.
    데이터와 함수 사이 관계를 이해하기 좋아진다. 클래스 내부의 내용을 통해서도 그렇지만, 메서드의 호출부에서 student1.study()라고 작성하기 때문에 student데이터와 study함수가 서로 관련이 있음을 알기 쉽다.
  • 코드의 중복을 줄여준다.
    데이터가 새로 생성될 때마다, 함수가 필요할 때마다, 새로 작성되어야 했던 코드를, 선언된 클래스와 메서드를 호출하는 것으로 단순화할 수 있다. 클래스를 사용하지 않을 때 여러 차례 딕셔너리를 작성해야 했지만, 그 과정이 줄어들었다.
  • 유지 보수에 용이하다.
    데이터 또는 함수의 양식이 변경된다면, 매번 새롭게 작성된 내용의 양식을 모두 변경해야 하지만, 클래스를 사용하면 클래스 내부 구조만 변경하면 되기 때문에 유지 보수에 용이하다. 속성 데이터인 age가 필요 없어서 삭제한다고 가정하자. 클래스를 쓰지 않을 때는 딕셔너리로 선언된 모든 데이터를 지워야 하지만, 클래스를 사용하면 클래스 내부에서 age 속성을 지우기만 하면 된다.
반응형