본문 바로가기

SK네트웍스 Family AI캠프 10기/Weekly 회고

[플레이데이터 SK네트웍스 Family AI 캠프 10기] 3주차 회고

이번 주차에는 전체적으로 단위 프로젝트를 진행해서 시간이 빠르게 지나갔다. 또, 체력이 붙어 수업시간에 버티는 것이 수월해졌지만, 주말에 목감기에 걸려 해야 할 일을 제대로 하지 못했다. 그리고 생각해 봤는데 ADsP 시험이 생각만큼 많이 남았다는 것을 깨달아 위기감을 느끼고 있다.

 


 

3주 차 학습

 

Database

 

1. DML

  • JOIN
    • 두 개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환함
    • INNER JOIN: 조인하는 두 테이블에 있는 튜플들의 순서쌍을 결과로 반환함
    • OUTER JOIN: 조인 조건에 만족하지 않는 튜플도 결과로 출력함
  • GROUP BY
    • 특정 속성을 기준으로 그룹화하여 검색할 때 사용함
      • COUNT: 그룹별 튜플 수를 구하는 함수
      • SUM: 그룹별 합계를 구하는 함수
      • AVG: 그룹별 평균을 구하는 함수
      • MAX: 그룹별 최댓값을 구하는 함수
      • MIN: 그룹별 최솟값을 구하는 함수
      • STDDEV: 그룹별 표준편차를 구하는 함수
      • VARIANCE: 그룹별 분산을 구하는 함수

 

2. Python을 통한 MySQL 연결

  • Connection 객체 생성
import pymysql

connection = pymysql.connect(
    host = "localhost",
    user = "user",
    password = "password",
    database = "database",
    charset = "utf8"
)
  • Cursor 생성
cursor = connection.cursor()

sql = "SHOW TABLES"
cursor.execute(sql)		# cursor를 통해 sql 명령문 실행
cursor.fetchall()		# cursor에 저장된 결과 출력

 

Streamlit

 

1. Text elements

  • st.markdown: 마크다운
  • st.title: 제목
  • st.header: 헤더
  • st.subheader: 서브헤더
  • st.caption: 캡션
  • st.code: 코드 블록
  • st.text: 텍스트
  • st.latex: 수학 표현식
  • st.divider: 수평선

 

2. Data elements

  • st.dataframe: 데이터프레임을 인터렉티브 테이블로 표시함

 

3. Chart elements

  • st.area_chart: 영역 차트
  • st.bar_chart: 막대 차트
  • st.line_chart: 선형 차트

 

4. Input widgets

  • st.button: 버튼
  • st.download_button: 다운로드 버튼
  • st.form_submit_button: 폼 제출 버튼
  • st.link_button: 링크 버튼
  • st.page_link: 페이지 링크 버튼
    • pages 폴더에 page 파일 생성
  • st.checkbox: 체크박스
  • st.radio: 라디오 버튼
  • st.toggle: 토글

 

Crawling

 

1. Web Crawling

  • 정적(Static) 수집
    • 사용 패키지: requests, urllib
      • requests: Python의 HTTP 통신에 사용함
    • 파싱 패키지: beautifulsoup
      • beautifulsoup: HTML, XML, JSON 등 파일의 구문 분석에 사용함
  • 동적(Dynamic) 수집
    • 사용 패키지: selenium
    • 파싱 패키지: beautifulsoup, selenium
      • selenium: 웹 브라우저를 이용하는 자동화 프로그램

 

2. requests

import requests

url = 				# 접속할 URL
headers = {
    "Referer": 			# 요청 페이지 정보
    "User-Agent": 		# 접속 정보
}
response = requests.get(url=url, headers=headers)

 

3. beautifulsoup

import requests
from bs4 import BeautifulSoup as bs

beautiful_text = bs(response.text, "html.parser")

 


 

Keep

 

규칙적인 생활 패턴

 설 연휴로 인해서 약 일주일 정도 쉬게 될 텐데 그동안도 지금까지 그랬던 것처럼 꾸준히 일찍 일어나고 일찍 자는 생활을 유지해야 하면 좋을 것 같다.

 

 

Problem

 

Git & Github

 이번에 git 공부를 하기로 했는데, 프로젝트로 바빠 미처 git 강의를 듣지 못했다. 프로젝트를 진행하며 git을 사용해 방법을 익혔지만 그래도 더 잘 알기 위해서는 강의를 듣는 것이 좋을 것 같다.

 

일정 관리 문제

 ADsP 시험이 한 달도 남지 않았고, 토이 프로젝트도 매주 바쁘게 일정이 잡혀있기 때문에 일정을 제대로 세워야 할 필요가 생겼다.

 

건강 문제

 춥게 다녀서 그런지 이번 주말에 감기에 걸려 블로그를 제때 올리지 못했다. 더 건강을 챙기도록 노력해야 한다.

 

성취도 평가 점수

 이번 성취도 평가에서 세 문제나 틀리게 되었다. 두 문제는 헷갈려서 더 공부해야 하는 것이 좋지만, 한 문제는 문제를 제대로 읽지 못해서 틀렸다.

 

 

Try

 

Git & Github 추가 공부

 이번 연휴동안 최대한 남는 시간 동안 git 강의를 들을 예정이다. 다음 프로젝트에서는 git을 더 능숙하게 사용하고 싶다.

 

일정 관리

 이번 연휴동안 일정을 대략적으로라도 짜볼 예정이다. 프로젝트도 시험도 둘 다 중요하기 때문에 바쁘게 지내는 것은 어쩔 수 없다고 생각한다.

 

성취도 평가

 다음 성취도 평가에서는 문제를 꼼꼼하게 읽어야겠다고 생각했다. 그리고 헷갈리는 단어는 그때마다 제대로 숙지하도록 해야겠다.