1주차 ~ 2주차 초반2024-02-13 ~ 20 (8일) 데이터 추출 작업과 병행하였다. 프로젝트 세팅 : 개발 기획서, 일정 및 마일스톤, 역할 분담 ✏️ 학습 내용개발 기획서기능 명세서 → IA소프트웨어 아키텍처ERD자료조사 및 데이터 분석벤치마킹, 경쟁사 분석추출 가능한 데이터 목록데이터 분석용어집기능 명세를 러프하게 작성하면서 바로 소프트웨어 아키텍처, ERD, 자료조사 및 데이터 분석을 시작했다. 추후 상세하게 기능 명세서를 작성하여 빠진 부분 보완 및 MVP를 정의했다. 이를 토대로 IA를 작성하고자 했는데 변동 가능성 및 시간 관계상 생략하였다. 만약 정리할 때에 필요하면 그 때 고려해봐야 할 것 같다. 프로젝트에 사용할 자료조사와 데이터 분석이 오래 걸렸다. 레시피는 유튜브에서 가..
사전~팀플 1주차 2일 (2024-01-28 ~ 2024-01-13) 주제 선정 및 고도화 ✏️ 학습 내용 여러 차례 회의를 거쳐 최종 주제를 선정하고 멘토링 후에 고도화 작업을 거쳤다. 1. 주제 선정 2024-01-28 ~ 2024-02-05 (9일) 주제 아이디어 공유(1.28) 추가 논의(1.30) 아이디어 2가지 확정(2.3) 1) 주제 아이디어 공유 여러 주제를 적고, 하나씩 논의하면서 의견을 좁혔다. 그리고 4가지를 도출해냈고, 이를 더 고도화하여 선정하기로 하였다. 일단 시각장애인용 지도와 비정형 데이터를 활용하는 방향으로 가고, 정 안 될 것 같으면 날씨에 따른 농산품 품질 가격 예측을 하기로 하였다. 다른 실시간 데이터 아이디어가 있다면 이를 고도화하여 가져올 수도 있다. 정석으로 보이..
사전 2주 (2024-01-26 ~ 2024-02-11) 2024-01-26 팀 빌딩2024-01-28 첫 회의 대부분이 주제 선정 내용이며, 결국 주제 확정은 2024-02-13에 완료하였음 사전 준비: 팀 빌딩, 협업 준비, 프로젝트 세팅 ✏️ 학습 내용 데브코스 최종 프로젝트 안내📆 프로젝트 기간 : 2/12 ~ 3/10 총 29일간 (3/8 보고서 마감, 3/11 프로젝트 발표)본 프로젝트의 목표는 현재까지 본 과정을 통해 배운 모든 기술을 활용하여 최종 결과물을 구현하는 것으로서, 프로젝트의 모든 기획과 구현은 수강생들이 주도적으로 진행 할 예정입니다. 유닛 테스트와 CI/CD가 적용되거나, 머신러닝/인공지능 모델이 서비스의 일부가 되도록 구성할 수 있어야 합니다. ..
16주차 금요일, 70일차 Today I Learned Spark ML (2) : ML Pipeline과 Tuning ✏️ 학습 내용 1. Spark ML 모델 튜닝 ML Tuning 이란 최적의 하이퍼 파라미터를 선택하는 것으로, 최적의 모델 혹은 모델의 파라미터를 찾는 것이 아주 중요하다. 테스트 방법은 2가지가 있다. CrossValidator : 교차 검증 (K-Fold 테스트) TrainValidationSplit : 훈련/테스트셋 나누기 (홀드아웃 테스트) 모델 튜닝은 최종적으로 가장 결과가 좋은 모델을 리턴하게 된다. 머신러닝 모델 성능 측정은 Evaluator를 이용한다. 2. 범용 머신러닝 모델 파일포맷 PMML 다양한 머신러닝 개발 플랫폼들이 있고, 이런 환경에서 통용되는 머신러닝 파일..
16주차 목요일, 69일차 Today I Learned Spark ML : 소개 및 기능, 모델 빌딩, 피쳐 변환, 파이프라인 ✏️ 학습 내용 1. Spark ML 소개 머신러닝 관련 다양한 알고리즘, 유틸리티로 구성된 라이브러리이다. 아직 딥러닝 지원은 미약하다. 원스톱 ML 프레임웍이자 대용량 데이터도 처리 가능하다. 데이터프레임과 SparkSQL등을 이용해 전처리 Spark MLlib를 이용해 모델 빌딩 ML Pipeline 통해 모델 빌딩 자동화 MLflow로 모델 관리하고 서빙 https://spark.apache.org/docs/latest/ml-classification-regression.html Classification and regression - Spark 3.5.0 Document..
16주차 수요일, 68일차 Today I Learned Spark Partition ✏️ 학습 내용 1. Salting을 통한 Data Skew 처리 AQE가 나오기 전 data skew 처리 방식 중의 하나는 Salting이었다. 클러스터 자원과 처리 데이터의 크기를 고려해서 JOB마다 바꿔서 설정했다. Salting이란 Skew Partition을 처리하기 위한 테크닉으로, 균등하게 분포된 랜덤 필드를 만들고 그 기준으로 파티션을 새로 만들어서 파티션의 크기가 균등하도록 처리하는 방식이다. AQE의 등장으로 인해 그렇게 많이 쓰이지 않고 있다. Spill이란 파티션의 크기가 너무 커서 메모리가 부족한 경우 그 여분의 디스크에 쓰는 것이다. 2. Spark 최적화 파티션 종류 3가지 : 데이터프레임 로..
16주차 화요일, 77일차 Today I Learned Spark Shuffling 최적화 ✏️ 학습 내용 1. Repartition, Coalesce Repartition : 전체적으로 파티션의 수를 늘려 병렬성을 증가시킴 repartition (해싱을 사용하는 방법) repartitionByRange (특정 컬럼의 값을 기준으로 나눠주는 방법) Coalesce : 파티션의 수를 줄이는 용도 2. DataFrame 관련한 힌트들 Spark SQL Optimizer에게 Execution plan을 만듦에 있어 특정한 방식을 사용하도록 제안 Partitioning 관련 힌트들 : Coalesce, Repatition, RepatitionRange 같은 것들이 동작할 때 선택한 최적화 방식이 원하는 것과 다..
16주차 월요일, 76일차 Today I Learned Spark 기타 기능, 메모리 관리 ✏️ 학습 내용 1. Spark 기타 기능 Broadcast Variable : 룩업 테이블등을 UDF로 브로드캐스팅하여 셔플링을 막는 방식으로 사용 Closure, Broadcast 두 가지 방법으로 룩업 테이블(파일)을 UDF로 보낼 수 있다. Accumulators : 특정 이벤트의 수를 기록하거나 특정값 합산 등 연산에 사용되는 일종의 전역 변수 Speculative Execution : 느린 태스크를 다른 워커 노드에 있는 엑시큐터에서 새로 태스크로 실행하여 중복으로 실행하도록 함 Scheduler : 하나의 Spark Application 내의 잡들에 리소스를 나눠주는 정책 Dynamic Resource..
15주차 월~금요일, 71~75일차 Today I Learned 머신러닝 : ML E2E, 기초개념, 기초선형대수, 확률기초/분포, 선형회귀/분포 ✏️ 학습 내용 1. 머신러닝 End-to-End 큰 그림을 본다. 데이터를 구한다. 데이터로부터 통찰을 얻기 위해 탐색하고 시각화한다. 머신러닝 알고리즘을 위해 데이터를 준비 (머신러닝이 사용할 수 있게 가공) 한다. 모델을 선택하고 훈련시킨다. 모델을 상세하게 조정한다. (=파인튜닝) 솔루션을 제시한다. 시스템을 론칭, 모니터링, 유지보수 한다. 2. 머신러닝 기초 개념 수업 발표에 사용한 문서를 첨부하기로 한다. 3. 기초 선형 대수 1) 기본 표기법 2) 행렬의 곱셈 3) 중요 연산과 성질들 4) 전치, 대칭행렬, 대각합, Norms, 선형독립과 Ran..
14주차 금요일, 70일차 Today I Learned 스트리밍 처리 (5) : Spark Streaming ✏️ 학습 내용 1. Spark Streaming 이전에 배운 Spark은 빅데이터 처리 관련 다양한 기능을 제공한다고 했다. 그 중 Spark Streaming이란, 실시간 데이터 스트림 처리를 위한 Spark API로, Kafka, Kinesis, Flume, TCP 소켓 등의 다양한 소스에서 발생하는 데이터 처리와 Join, Map, Reduce, Window와 같은 고급 함수 사용이 가능하다. 데이터를 마이크로 배치로 처리 계속해서 쉬의 과정을 반복 (트리커) 이렇게 읽은 데이터를 앞서 읽은 데이터에 리플레이스 배치마다 데이터 위치 관리 Fault Tolerance와 데이터 재처리 관리 S..