본문 바로가기

AI School111

[DAY 10] getter, setter, name mangling getter, setter : 객체의 내부 변수에 접근할 때 특정 메소드를 거쳐서 접근할 수 있도록 하는 방법 이름과 패스워드를 갖는 유저 객체를 생성해보자. class User: def __init__(self, name, pw): self.name = name self.pw = pw user = User('peter', 'abcd123') # 유저 객체를 생성 이름이 peter이며 패스워드를 abcd123로 사용하는 유저 객체 user를 생성했다. 유저의 패스워드를 출력 시도한다면? print(user.pw) # 실행 결과 abcd123 패스워드는 쉽게 공개되지 않아야 하는데 그대로 노출되었다. 문제점을 해결하기 위해 패스워드 변수에 대해 제한 사항을 설정한다. 먼저 패스워드를 출력하는 경우 앞 2글.. 2023. 1. 6.
[DAY 9] 클래스, 객체, 메소드 객체 지향 : 실제 세계를 모델링하여 프로그램을 개발하는 개발 방법론 Class - 변수와 함수를 묶어서 코드를 작성하는 방법 - 객체 지향을 구현하는 문법 - 사용법 : 클래스 선언(코드 작성) -> 객체 생성(메모리 사용) -> 메소드 실행(코드 실행) - 실제 세계에 비유 : 설계도 작성 -> 제품 생산 -> 기능 사용 - 통상 클래스는 pascal case(upper camel case), 변수와 함수는 snake case로 작성 관련용어 : class, self, special method, 상속, super, getter-setter, mangling 등 코드를 통해 알아보자. 1. 클래스 선언 : 코드 작성 - 계산기 클래스 # 계산기 설계 : number1, number2를 이용해서 덧셈,.. 2023. 1. 5.
[DAY 8] parameter와 argument, lambda, list comprehension 함수 - 반복적으로 사용되는 코드를 묶어서 사용 - 관련 용어 : def, return, parameter, argument, docstring, scope, lambda - 코드가 간결해지고 유지보수가 쉬워진다는 장점 - 사용법 : 함수 선언(코드 작성) -> 함수 호출(코드 실행) return - 함수 호출을 통해 결과 데이터를 변수에 저장 - 함수 실행을 중단 - 함수에서 return은 필수는 아니다 # return 없는 함수 def plus1(n1, n2): print(n1 + n2) # 덧셈 결과를 출력 # return 있는 함수 def plus2(n1, n2): return n1 + n2 # 덧셈 결과를 반환 # 리턴이 있는 함수 예시: str.upper() data = 'python' res.. 2023. 1. 5.
[DAY 7] 데이터 핸들링 스킬, 파이썬 연산자와 함수 데이터 규모에 따른 스킬들 - 엑셀 : 사용이 간편, 최대 데이터 약 100만 rows, 만들어진 기능만 사용 가능, 저속 - 파이썬 : 데이터를 RAM 용량만큼 핸들링, 기능을 만들어서 사용 가능, 엑셀에 비해 고속 - DASK : 가상 메모리 이용 방식, DB 구축을 하지 않더라도 RAM 용량보다 큰 데이터 핸들링 가능, 파이썬에 비해 저속 - 데이터베이스 : SQL 사용, 데이터를 SSD(HDD) 용량만큼 핸들링, 고속 - Spark : Scala 언어를 사용하여 빅데이터 핸들링 가능, 인메모리 기반의 대용량 데이터 고속 처리 엔진으로 범용 분산 클러스터 컴퓨팅 프레임워크. Python도 사용 가능하지만 성능을 위해 통상 Scala 사용 연산자 - 산술 : 데이터와 데이터의 연산으로 데이터 결괏값이.. 2023. 1. 5.
[DAY 6] 코랩, 리스트와 튜플, 깊은 복사 CS 관련 실습을 통한 강의 전 컴퓨터공학적인 강의가 가볍게 선행됐다. CPU, RAM, SSD(HDD), OS의 개념, 컴파일러 언어와 인터프리터 언어, 현재 컴퓨터의 구조는 폰 노이만 구조..등등 기존에 알고 있던 내용에 이어 흥미로운 내용이 있었다. 속도가 느린 인터프리터 언어인 파이썬이 어떻게 빠른 연산 속도를 요구하는 데이터분석, 머신러닝, 딥러닝에 활용되는가? 내부적으로 컴파일러 언어인 Numpy가 느린 속도를 보완해주기 때문에 가능하다고 한다. PEP(Python Enhancement Proposal) - PEP 20 : The Zen of Python (파이썬의 선) - PEP 8 : The Style Guide of Python Code PEP를 읽고 나니 좀 더 Pythonic한 코딩을.. 2023. 1. 5.
반응형