KPMG Future Academy AI 활용 데이터 분석가 3기 10일차 수업을 2024년 11월 29일에 참석했다.
오전에는 클래스, 모듈, 패키지 수업이 진행됐다.
C언어에는 클래스가 없음.
절차 지향 프로그래밍 : 코드 재사용성이 낮고 유지보수가 어려움.
객체 지향 프로그래밍 : 코드 재사용성이 높지만 실행속도가 느림. 상대적으로 큰 프로젝트에 많이 쓰임.
[클래스]
꼭 필요하지는 않음.
class명은 주로 첫글자는 대문자로 시작.
생성 후 변수=클래스()로 새로운 객체 생성 가능.
class 내의 함수(메소드)의 매개변수 첫 번째 값은 self를 지정. self는 객체를 지칭.
객체에서 함수를 호출 시, 객체.함수명으로 호출. 이때 self는 생략.
재사용성, 캡슐화, 추상화, 상속과 다양성.
car1 = Car()와 같은 방식으로 객체 생성 가능.
클래스 안에서 쓰이는 함수를 메소드라고 칭함.
변수와 함수로 이루어짐.
생성 구조
class 클래스명:
def 메소드명1(self, 인자1, 인자2):
실행할 명령1
실행할 명령2
def 메소드명2(self, 인자1, 인자2):
실행할 명령1
실행할 명령2
계산기 2개 클래스로 만들기
클래스로 객체 정의
[생성자]
생성자는 객체가 생성될 때 자동으로 호출되는 특별한 메소드.
객체 생성될 때 초기값 생성 혹은 초기화를 수행.
init 으로 지정
[생성자 및 활용 예시]
생성자를 통해 초기값에 그룹화된 데이터를 모두 호출할 수 있음.
매개변수를 사용한 생성자 예시
클래스 변수 : 클래스에 속한 변수
객체 변수 : 객체에 속한 변수. 개별 객체마다 독립적.
클래스 상속
메소드 오버라이딩
: 자식 클래스에서 부모 클래스의 메소드를 재정의할 수 있다.
다중 상속
여러 부모 클래스를 동시에 상속받을 수 있다. 선형화 알고리즘과 관련.
연습 문제
모듈 : 함수, 모듈, 클래스
패키지 : 모듈 여러개 조합
[베스킨라빈스 숫자 세기 게임]
여기서 출력값을 상대방에게 보여주는 것을 먼저 개발해보고 싶었으나 아직 서버를 덜 배워서 보류하였다. 아마 입력값을 받는 것은 좀 더 어려울 듯하다.
[가위바위보 게임]
1.4. 이메일 데이터 전송
지메일에서 IMAP 사용 활성화.
2단계 인증 설정.
앱 비밀번호 지정.