모듈과 클래스의 차이

클래스

클래스는 사용자가 직접 객체를 선언하고, 객체 멤버를 구성하여 사용 할 수 있다
이 때 클래스의 범위와 용도를 정해 줄 수 있다.
클래스는 그 용도와 목적에 맞게 상속을 통한 인스턴스화, 인터페이스 구현이 가능하다.
다른 객체에서 해당클래스의 내부 멤버를 세부용도에 맞게 변경하여 사용할 수 있다.
외부 객체에서 접근가능한 클래스 명을 import하여 사용 할 수 있다.
외부 객체에서 끌어다 쓰는 이 클래스 내부 멤버들은 클래스를 구현하는 동안에만 수명이 지속된다.

모듈

모듈은 어느 개인이나 단체에 의해 이미 완성되어 있는 것을 사용자가 가지고온 후 그 모듈 객체와 객체 멤버를 끌어와서 사용한다.
이러한 모듈은 클래스와 다르게 상속을 통한 인스턴스화, 인터페이스 구현이 불가능하다.
즉 다른 객체에서 해당 모듈의 내부 멤버를 변경하여 사용하지 못한다는 것이다.
모듈의 내부 멤버에 프로그램 수명동안 기본적으로 접근이 가능하다.

이처럼 모듈과 클래스 모듈은 용도에 맞도록 구성한 객체 멤버들을 캡슐화 시킨 후 가져다 사용한다는 부분에서는 동일하지만, 그 사용성에 가장 큰 차이가 존재한다.
모듈은 보통 다운받은 파일을 프로그램에 포함시켜 놓고 자유롭게 사용하는 반면 클래스는 그 목적에 맞게 각 프로세스에서 상속하여 사용한다.
모듈은 내부 멤버를 변경하여 사용할 수 없지만 상속받은 클래스는 멤버를 자유롭게 변경할 수 있다.