본문 바로가기
카테고리 없음

2024.01.12 빅데이터 분석가 양성과정 10일차 노트

by Choose Me 2024. 1. 12.
SMALL

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 

https://bit.ly/41x8FOX

 

[기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가?

안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅데이터 분석 양성과정을 시작합니다! [취업과 창업]고용노동부와 한국품질재단 & 안동대학교가 함께하는 2024년 K-Digital Training(1,000

crosefrog.tistory.com

https://bit.ly/3NIinbu

 

[취업과 창업]고용노동부와 한국품질재단 & 안동대학교가 함께하는 2024년 K-Digital Training(1,000만원

안녕하세요. 저는 졸업을 1년 남기고 이력서, 자소서, 포트폴리오 및 미니프로젝트와 최종프로젝트를 수행하는 한국품질재단의 빅데이터 분석가 양성과정에 참가하게 되었습니다. 오늘날 세상

crosefrog.tistory.com

 

2. 기업맞춤형 빅데이터 분석가 양성과정 노트목록

 https://crosefrog.tistory.com/entry/20231228-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-1%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2023.12.28 빅데이터 분석가 양성과정 1일차 노트

오늘은 기업맞춤형 빅데이터 분석가 오리엔테이션이 있었습니다. 1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240102-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-2%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.02 빅데이터 분석가 양성과정 2일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240103-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-3%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.03 빅데이터 분석가 양성과정 3일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20210104-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-4%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.04 빅데이터 분석가 양성과정 4일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240105-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-5%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.05 빅데이터 분석가 양성과정 5일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240108-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-6%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.08 빅데이터 분석가 양성과정 6일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240109-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-7%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.09 빅데이터 분석가 양성과정 7일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240110-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-8%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.10 빅데이터 분석가 양성과정 8일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

https://crosefrog.tistory.com/entry/20240111-%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B0%80-%EC%96%91%EC%84%B1%EA%B3%BC%EC%A0%95-9%EC%9D%BC%EC%B0%A8-%EB%85%B8%ED%8A%B8

 

2024.01.11 빅데이터 분석가 양성과정 9일차 노트

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 https://bit.ly/41x8FOX [기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가? 안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅

crosefrog.tistory.com

3. COS Pro 1차 2급.ipynb / Ch08 클래스 연습 문제 배포용.ipynb

COS Pro 1차 2급.ipynb
0.11MB
Ch08 클래스 연습 문제 Part I 배포용.ipynb
0.01MB

4. Notion 빅데이터 분석가 양성과정 대시보드

https://shaded-chair-f39.notion.site/d1191ac35d7c4f09b2fd0bdc9a91debc?pvs=4

 

빅데이터 분석가 양성과정 대시보드 | Built with Notion

템플릿의 아이콘들은 https://notionicons.website 사이트를 참조했습니다

shaded-chair-f39.notion.site

5. Naver 블로그 포스팅

https://blog.naver.com/moment_by_moment/223320849121

 

이렇게까지 했으면

목표가 있기 전까진, 문제가 발생하지 않더라. 지금 영어를 모른다고 어떤 문제가 발생하는 건 아니다. 어...

blog.naver.com

6. Google Colaboratory Notebook

https://colab.research.google.com/drive/1LTa7wNu0RT68MFxH2Dzx-2EIFWbX7VV2#scrollTo=RFy_-hmrQMtl

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

https://colab.research.google.com/drive/189WWQDc_mEm4xQ7FbCvMK8KrPavJ82-i

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

7. 필기노트

집주인 할머니가 단칸방에 살고, 여자만 사는 방이 있고, 가족이 머무는 방이 있었다.

내가 다루고자 하는 모든 대상: 객체

사람을 표현할 때, 어떻게 나타내는가?

속성: 대상을 표현하는 방법

  • 데이터를 객체로 표현

객체 지향 프로그래밍: 객체를 만들고 객체들의 상호 작용을 중심으로 프로그래밍하는 방법론

→ 클래스를 나눠서 분류할 수 있다.

객체(Object)

  • 속성: 속성(값) → 변수
  • 메서드(method): 기능 → 함수

클래스는 구상도(설계도)다.

클래스(Class)

  • 클래스는 객체(object)를 만들기 위한 구상, 설계도

코드 문법에 맞도록, 파이썬 언어로 작성한다.

함수를 파이썬 언어로 표현할 때

속성 = 변수

기능 = 함수

  • 함수와 변수들로 이루어지는 구조를 갖는다.

클래스(Class) 정의

  • 초기화 작업: 초기 값을 설정하는 것
class Tiguan():
def __init__(self, name):  # 초기화 함수: 객체 생성 시 자동 호출
  self.name = name

tiguan = Tiguan('쫑')

print(tiguan.name)

name이라는 변수가 가지고 있는,

변수 name이 가지고 있는 ‘쫑’ 이라는 변수를

[,parameter,…]

run이라는 method를 추가하였다.

tiguan = Tiguan(’쫑’)

→ 클래스명이 함수인 경우

  • 클래스명(변수) = 생성자 or 생성자 함수라 한다.

#모든 영어식 표현을 한국식으로 표현하면 어색하다.

객체의 메서드

class Tiguan():
  def __init__(self, name):
  self.hello()      # look at me

def run(self):
  print('꼼지란~꼼지락~')
def hello(self):
  print('안녕하세요')

tiguan = Tiguan('메리')

클래스(Class)의 상속(Inheritance), 설계도 복사?

  • 클래스 상속

(부모 클래스로부터 속성, 메서드를 상속 받음)

class Tiguan():
  def __init__(self, name):
  seif.name = name
  self.hello()

  def run(self):
    print('꼼지란~꼼지락~')
  def hello(self):
    print('안녕하세요')

class SonOfTiguan(Tiguan):
  pass

son_of_tiguan = SonOfTiguan('해피')
print(son_of_tiguan.name)

상속의 개념: 설계도 복사와 다른 점이 무엇인가?

method override

강화도로 자주 놀러갔었다.

아들이 초등학생이든, 중학생이든, 고등학생이든 똑같은 숙소에 머물렀다.

  • 숙박시설에 식사장소가 있으면 호텔이다.

아들이 어릴때부터 수영을 배워서 잘한다.

그러나 아버지는 수영을 할 줄 모른다.

→ 부모로부터 물려받은 기능말고도 추가된다.

내가 윈도우 프로그램을 만든다고 해보자.

공부를 하다보니, 누군가가 만든 윈도우가 보인다.

프로그램을, 완전 밑바닥부터 시작하는 사람은 없다.

  1. 가져다 쓰는 것이 우선이다.
  2. 어느정도 실력이 향상되면 (오랜 시간이 걸림) 직접 만들어본다.

메서드 오버라이드(override)

  • 부모 클래스에서 물려 받은 메서드를 재정의

부모 클래스의 기능, 메서드 호출

class Tiguan():
  def __init__(self, name):
    self.name = name

  def run(self):
    print('꼼지란~꼼지락~')

  def hello(self):
    print('안녕하세요')

부모 초기화 함수

클래스 속성에 객체 할당

  • 클래스 Wing 설계
class Wing():
  def fly(self):
    print('푸드덕~푸드덕~')
class FlyingTiguan(Tiguan):
  def __init__(self, name, color):
    super().__init__(name)
    self.color = color
    self.hello()

  def shout(self):
    print('하나 둘~ 하나 둘~')
  def hello(self):
    print('저는 날 수 있어요~')
  def self_fly(self):
    print('둥실 둥실 떠오른다')

교재내용

객체(Object)

  • 학생 성적 관리 프로그램을 만든다면 무엇이 필요할까?

(학생 이름, 학번, 과목 별 성적 등)

  • 학생 이름, 과목(국어, 수학, 영어, 과학) 이름을 키로 하는 딕셔너리

학생 정보를 하나씩 입력!

(버거로운 일 ~ 오타 가능성)


지금 영어를 모른다고 어떤 문제가 발생하는 건 아니다.

어쩌면 평생 필요하지 않을지도 모른다.

학생 개인을 리스트로 표현하려면

이름, 학번, 총점, 평균 등을 딕셔너리로 나타내야 한다.

→ 각 학생에 대한 정보를 딕셔너리형태로 변환하는 함수를 선언한다.

def create_student(name, korean, math, english, science):
  return {
          'name':name,
          'korean':korean,
          'math':math,
          'english':english,
          'science':science
          }
  • 객체(Object)

‘총점’과 ‘평균’을 구하는 일은 한 학생을 대상(하나의 객체)으로만 이루어짐

→ 따라서 이를 고려해서 함수 생성

(총점, 평균을 구하는 기능은 한 학생이 대상이다.)

즉, 이런 연산은 한 객체에 국한되는 계산이다.

class member 함수와 연관된 기능이다.

print라는 기능이 있을 때,

PC에서 해야되는 기능이 다르고,

프린트기기에서 해야되는 기능이 다르다.

  • 전체 코드 수정 정리

학생 데이터 생성 방법 변경 그리고 ‘총점’과 ‘평균’을 구하는 일은 한 학생을 대상으로만 이루어짐을 고려

(대상을 전달해주면, 그 학생에 대한 정보가 빠져나올 수 있도록)

이름과 함수 호출로 총점 및 평균을 보여주는 것이 get_info_student의 역할

속성: 이름, 과목

함수: 평균, 총점

옛날 아버지와 사이가 불편했던 시절, ‘천천히 얘기해라’라는 말을 했었다.

→ 말을 하면서, 내가 무슨 생각으로 말하는지 생각해야 한다.

  • 클래스 선언

클래스는 프로그램 코드를 효율적으로 작성하기 위해 만들어진 것이다.

class Student:
  pass

student = student()

student = [
    student(),
    student(),
    student(),
    student(),
    student(),
    student()
]

클래스 선언

  • 생성자: 클래스 이름과 동일한 이름의 함수를 생성자(constructor)라고 부름
  • 초기화 함수, init(self)

클래스 내부의 함수는 모두 1개 이상의 매개변수를 갖는다.

class Student:
def __init__(name, korean, math, english, science):
          'self.name':name,
          'self.korean':korean,
          'self.math':math,
          'self.english':english,
          'self.science':science

student = [
    student('김성필', 93, 83, 92, 93),
    student('구숙정', 90, 80, 95, 87),
    student('장만옥', 92, 79, 93, 88),
    student(),
    student(),
    student()
]

소멸자(destructor)

  • 소멸자(destructor) ↔ 생성자(constructor)
  • 인스턴스가 소멸될 때 호출되는 함수

메소드(method)

클래스가 가지고 있는 함수를 메소드(method)라고 부름

  • 또는 멤버 함수(member function), 인스턴스 함수(instance function)라고 부름
  • 기본 형태

데이터보호 즉면에서 용이함.

데이터를 객체형태가 아니라, 리스트형태이면 아무 함수나 다 읽을 수 있다.

거짓말을 하고 있는지, 거짓말 한 걸 모르는지

아까 우리가 봤던 객체지향코드로 바꾸면,

학생들을 관리하려면

학생이라는 대상을,

선생님은 교육할 대상으로 본다.

운영진은 고객으로 본다.

(익숙하지 않으면 좋지 않을 수 있다.)

→ 장점이 있기 때문에 사용하는 객체 지향 코드 방식

리스트안에 숫자와 문자에 따라

정수, 변수또한 객체이다.

속성으로 값을 넣을 수도 있다.

문자열에 딸린 기능은 많다.

isinstance(인스턴스, 클래스_이름)

  • 클래스를 만들 때, 대문자로 만들자는 것이 암묵적 약속이다.

(data type을 확인할 수 있다.)

class Human():
  def __init__(self):
    pass
class Student(Human):
  def __init__(self):
    pass

student = Student()

#인스턴스 타입 확인
print('isinstance(student, Student):', isinstance(Student, Student))

직장생활 하다보면, 항상 일찍 일어나게 된다.

(몸이 변하게 된다.)

  • 특수한 이름의 메소드

이름: ‘<이름>’ 형식처럼 특수한 이름.

  • str()함수 선언
def __str__(self):
    return '{}\\t{}\\t{}'.format(self.name, self.get_name(), self.get_average())

str()함수의 매개변수로 student 인스턴스를 전달하면 student 인스턴스의 str() 함수가 호출됨

mbc의 도메인 주소: www.imbc.com

→ www.mbc.com라는 도메인 주소는 누군가가 사용하고 있었다.

str 다음에 뭘 넣으면 뭔지를 보여주는 용도로 사용해왔다.

(내가 무엇을 보여줄까는 내가 정의내리는 것이다.)

객체를 넘기면 학생정보를 보여주는 것으로 정의하였다.

  • 인스턴스 간 비교 연산자
class Student:
  def __init__(self, name, korean, math, english, science):
    self.name = name
    self.korean = korean
    self.math = math
    self.english = english
    self.science = science
  def get_sum(self):
    return self.korean + self.math + self.english + self.science
  def get_average(self):
    return self.get_sum()/4
student1 = Student('김성필', 93, 83, 92, 93)
student2 = Student('구숙정', 90, 80, 95, 87)
print( student1 > student2 )     # 원래 '>'는 크기비교로 사용했다.

→ 객체끼리 크기비교를 해보자. (성적정보에서 크기 비교한다고 하면, 총점(성적) 비교를 한다.

→ 연산자 재정의

def __gt__(self, student):
    return self.get_sum() > student.get_sum()

나의 총점과 넘겨받은 학생의 총점을 비교해서

더 크며 참, 더 작으면 거짓

student1 = Student('김성필', 93, 83, 92, 93)
student2 = Student('구숙정', 90, 80, 95, 87)
print( student1 > student2, student1.get_sum(), student2.get_sum())
  • 문자와 문자를 놓고 정의내리면 객체 총합의 점수를 비교하자.

프로그래밍 언어로 하고 싶은 건 많기에 파이썬 설계한 사람이 많이 넣어두었다. 그래서 다양한 문법이 들어있다.

하나를 배워서 익숙해지면 좋지만, 그렇지 않다면 익히기 어렵다.

결혼을 하게 되면, 다양한 모습을 보게 된다.

이것저것 잘 다루면 조금 낫다.

클래스 변수와 클래스 메소드

  • 인스턴스가 속성과 메소드를 가질 수 있음
  • 클래스도 속성과 메소드를 가질 수도 있음

클래스 속성(변수)

  • 클래스 속성(변수) 만들기 - 클래스 변수는 ‘class 구문 바로 아래’에 선언
class 클래스_이름:
  클래스_변수 이름 = 값        # 'class 구문 바로 아래' 여기
# 이 아래부터 클래스 구현 코드 작성
  • 클래스 속성(변수)에 접근하기
클래스_이름.클래스_변수_이름

클래스 변수와 클래스 메소드

  • 클래스 속성(변수)
  • 클래스 속성(변수) 만들기: 클래스 변수는 ‘class 구문 바로 아래’ 에 선언
  • 클래스 속성(변수)에 접근하기
import time

class Student:
  count = 0
  def __init__(self, name, korean, math, english, science):
    self.name = name
    self.korean = korean
    self.math = math
    self.english = english
    self.science = science
    Student.count += 1          # 클래스 변수에 접근
    print('{}번째 학생 데이터가 생성되었습니다.'.format( Student.count ))   
    time.sleep(2)
students = [
    Student('김성필', 93, 83, 92, 93),
    Student('구숙정', 90, 80, 95, 87),
    Student('박혜진', 88, 83, 81, 81),
]
# 클래스 변수에 접근
print('현재까지 생성된 학생 데이터는 {}명입니다.'.format( Student.count ))
class 클래스_이름:
  클래스_변수 이름 = 값
# 이 아래부터 클래스 구현 코드 작성

클래스_이름.클래스_변수_이름
class Tiguan():
  count = 0
  def __init__(self, name):
    self.name = name
    Tiguan.count += 1

t1 = Tiguan('메리')
t2 = Tiguan('쫑’)

print( t1.name )
print( t2.name )
print( Tiguan.count )

객체를 일일히 가질 필요없이, class만 알고 있으면 된다.

설계도 = 객체 생산 시스템

클래스 메서드(멤버 함수) 만들기

class 클래스 이름:
  @classmethod
  def 함수_이름(cls, 매개변수):
    pass
  • ‘@’로 시작하는 것을 파이썬에서는 ‘데코레이터’ 라고 하며 ‘꾸며주는 것’이라는 의미
  • 클래스 메서드(멤버 함수)의 첫 번째 매개변수 클래스 자신이다. 일반적으로 cls라는 식별자를 사용.

클래스 메서드(멤버 함수) 만들기

class Student:
# 클래스 변수 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
count = 0
students =[]

# 클래스 함수 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
@classmethod
def print(cls):
  print('----- 학생 목록-----')
  print('이름\\t총점\\t평균')
  for student in cls.students:
    print(str(student))

# 인스턴스 함수 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
def __init__(self, name, korean, math, english, science):
    self.name = name
    self.korean = korean;   self.math = math
    self.english = english; self.science = science
    Student.count += 1          # 클래스 변수에 접근
    Student.students.append(self)
  def get_sum(self):
    return self.korean + self.math + self.english + self.science
  def get_average(self):
    return self.get_sum()/4
  def __str__(self):
    return '{}\\t{}\\t{}'.format(self.name, self.get_sum(), self.get_average())
Student('김성필', 93, 83, 92, 93)
Student('구숙정', 90, 80, 95, 87)
Student('박혜진', 88, 83, 81, 81)
Student.print()
  • 전체 학생 개개인은
  • 반 단위는 class에서 관리

파이썬 → PyQt → 데이터분석 (어떻게 코딩을 하여 값을 구할 수 있는가?)

앞으로 2주 정도 더 배워나가게 되면, 코딩에 대한 스트레스가 줄어들 것이다.

1~8장 연습문제

반응형
LIST