LG U+ Why Not SW CAMP 7기 14주차 회고

gayoniee·2025년 8월 16일

회고

목록 보기
14/25

Liked

  • 크롤링 코드에서 댓글, 전체 HTML(풀 콘텐츠), URL 추출까지 흐름이 잡혀감.
  • soup.select()로 a 태그에서 href만 뽑는 방법을 다시 복습했고 원하는 데이터 위치를 더 정확하게 파악하게 됨.
  • MariaDB 연동하면서 컬럼 문제나 데이터 길이 문제도 직접 겪어보니까 DB 구조를 더 신경 써야겠다는 감이 옴.
  • SQL 문제(2018년도 지하철 최대/최소 이용자 월)도 RANK() 함수 활용해서 해결 완료!
  1. API 연동 및 데이터 수집
  • 공공데이터 API를 활용해 다량의 데이터를 가져오고 요청 파라미터 설정과 응답 구조 분석을 직접 해봄.
  • 반복 요청 구조를 적용해 한 번의 실행으로 전체 데이터를 수집할 수 있도록 했다.
  1. MariaDB 적재
  • Python → MariaDB 연결까지 성공, INSERT로 API 데이터를 DB 테이블에 저장
  • 테이블 스키마를 API 데이터에 맞춰 설계하고 한글 컬럼명 문제 없이 적재!
  • DB에서 직접 SELECT 조회하여 데이터가 정상 저장된 것을 확인!
  1. DuckDB 실습 시도
  • MariaDB 데이터와 별개로 CSV 기반 DuckDB 적재를 시도!
  • 여러 도구를 직접 설치·연결해 본 경험 Grafana, Prometheus, Windows Exporter, Metabase, Elasticsearch, Logstash, Kibana, MariaDB 커넥터까지 각각의 역할과 특징
  • 실제 데이터 흐름을 만들어봄 MariaDB → Logstash(JDBC) → Elasticsearch → Kibana로 데이터가 흘러서 테이블로 뜨는 걸 확인
  • UI 도구들의 차이 이해 Grafana(실시간 모니터링), Metabase(비즈니스 분석), Kibana(로그·검색)

Learned

  • MariaDB에서 Data too long for column 에러 → 컬럼 길이 조정이나 TEXT 타입 변경 필요.
  • Incorrect string value 에러 → UTF-8 인코딩 설정 중요
  1. API → DB 적재 흐름
  • API 호출 후 바로 DB에 넣는 경우, 데이터 타입 변환과 컬럼 매핑이 중요함.
  • MariaDB에 적재 시 문자열 길이 제한, 날짜 포맷, 인코딩 이슈를 사전 확인해야 함.
  1. MariaDB 연결
  • Python mariadb 모듈로 커넥션 후 executemany()로 다중 데이터 삽입 시 속도가 향상!
  • 테이블 존재 여부 확인 후 없으면 생성하는 로직을 넣어야 안전.
  1. DuckDB 차이점
  • 파일 기반 DB라서 경로/권한 문제가 바로 영향을 미침ㅠ

  • pandas DataFrame을 바로 테이블로 등록 가능하고, SQL로 즉시 조회 가능함!

  • Prometheus + Grafana 구조

    데이터 수집(백엔드)과 시각화(UI) 역할을 분리하는 이유

  • Windows Exporter 사용법

    로컬·서버의 CPU, 메모리, 디스크 지표를 Prometheus로 수집 후 Grafana 대시보드에 표시

  • Elasticsearch

    8.x 버전에서 설치 시 기본 비밀번호·CA·토큰이 자동 생성, 클러스터 확장 시 토큰이 필요하다는 것

  • Logstash JDBC

    MariaDB 커넥터 설정

  • Kibana 인덱스 조회 및 시각화

    Elasticsearch 데이터가 Kibana에서 어떻게 나타나는지 확인

Lacked

  • 크롤링 데이터 중 일부 페이지에서 태그 구조가 달라서 에러 처리 로직이 부족했음.

  • DB 저장 전 컬럼 타입과 길이를 미리 설계 안 해서 중간에 계속 에러가 발생.

  • API 수집 시 실패한 요청이나 빈 데이터 페이지에 대한 예외 처리 로직이 부족했다.

  • MariaDB 적재 시 대량 데이터 삽입에 대한 성능 최적화를 처음부터 적용하지 못했다.

  • DuckDB 연결 오류 → 환경 충돌이었다….

Longed For

  • MariaDB 테이블 설계부터 크롤링 컬럼 길이, 인코딩까지 처음부터 세팅해보기.

  • SQL 문제 풀 때 MySQL/MariaDB 전용 문법과 다른 DB 문법 비교 학습.

  • 크롤링한 데이터를 CSV로 저장해서 분석까지 연결해보기

  • 중간중간 실무에서 어떤 방식과 흐름이 쓰이는지 강사님이 직접 설명해주셔서 상당히 유익한 시간이었다고 생각한다.

  • 다만 진행 속도와 시간 제약 때문에 내가 작성한 코드나 흐름을 직접 리뷰해보는 시간이 없었던 점은 조금 아쉬웠다.

  • 어쩔 수 없는 부분이지만 따로 시간을 내어 혼자 코드를 점검·정리하고, 잘못된 부분이나 개선 포인트를 직접 찾아보는 습관을 들여야겠다.

0개의 댓글