TIL 웹 개발 - class 이해하기 init, instance, method
팀프로젝트로 class를 사용하게 되었다. 하지만 class가 대략 미리 만들어놓고 나중에 또 쓰기 위한 거다 정도로 이해하고 있어서 이번 포스팅을 통해 이해해보기로 하자. init 일단, class 코드에 대해 찾아보면 항상 첫번째 함수는 __init__이 나온다. init은 아마 initiail, initiative, initiation 등의 약자로 우선적인 느낌을 가진 함수일 것이다. class 함수에서 init은 생성자(conductor)로 불리며 객체가 생성될 때, 자동으로 호출되는 특별한 메소드다. 좀 더 쉽게 이해하기 위해 역할에 대해 설명하면, 객체 초기화 : 객체가 생성될 때 필요한 초기 설정이나 값들을 초기화하기 위해 사용된다. 위 코드에서 이름과 나이에 대한 정보를 받는 프로그램을 만든다면 처음 데이터를 생성하는 역할을 한다는 것이다. 유연한 객체 생성 : 매개변수를 받아 객체 생성시 다양한 초기값을 설정할 수 있게 해줍니다. 그냥 새로운 객체를 생성할 때 이걸 사용해 쉽게 한다는 것이다. 위 코드 #객체생성 부분에서 보듯 person1 = class(데이터1, 데이터2) 를 넣어주면 바로 생성할 수 있다. 명확한 코드 구조 : class 함수의 기준이 되다보니 코드 구조가 한눈에 보기 쉽게 해준다. 추후 유지보수에도 도움이 된다. instance 인스턴스는 클래스에서 생성된 객체를 말한다. 위 코드에서 보면 person1, person2가 인스턴스에 해당한다. method 메소드는 클래스나 인스턴스에서 호출할 수 있는 함수를 말한다. 인스턴스 메소드 특정 인스턴스와 연관된 메소드로 self 매개변수를 통해 접근하고 조작한다. 위 코드에서 보면 def intoruduce(self): 가 인스턴스 메소드이다. 클래스 메소드 클래스 자체에 연관된 메소드로 데코레이터로 사용된다. 데코레이터는 다음 기회에 알아보자.