Small Steps Every Day

매일 천천히 조금씩 앞으로 나아가다.

새싹(SeSAC) | 전Z전능 데이터분석가 44

[성동3기 전Z전능 데이터 분석가] DAY 49 _ SQL프로젝트 _ 발표 및 회고

오전프로젝트 발표 발표 담당으로서 어떻게 하면, 처음 보는 사람이 한 번에 이해가 될 수 있게 전달을 할 수 있을까? 고민하며 대본을 작성했다. 그렇게 고민하며 준비한 것을 토대로, 당일 무사히 발표를 시간 내 마칠 수 있었다. 이후, 멘토 분들로 부터 프로젝트에 대한 피드백을 들을 수 있었고, 요약하자면 아래와 같다. 잘했던 점각각 가설에 대한 시각화 노력. 직접 지도에 시각화, EDA를 통한 지표 뽑아내기한 단계 나아가서 예측 모델링까지분석에 끝난 것이 아니라, 액션 비즈니스까지 도달한 점아쉬운 점몇몇 가설들은 당연한게 아닌가. ☞ 가설 설정비즈니스 전략은 가설 기반인건가? 연결성 부족 ☞ 가설 + 비즈니스 전략  오후KPT 회고 피드백을 토대로, 각자 KPT 기법을 활용한 회고를 진행했다. 나의 회..

[성동3기 전Z전능 데이터 분석가] DAY 48 _ SQL프로젝트 _ 인사이트 및 비즈니스 전략 도출

인사이트 도출 가설 검증을 기반으로 통계적 통찰, 비즈니스 통찰을 도출해냈다. 이를 통한, 전략적인 내용까지 정리를 하였다.  비즈니스 전략 각자의 인사이트를 한 데 모아, 영업팀/마케팅팀/물류팀에 할당할 만한 비즈니스 전략을 비용, 가치, 이익적인 측면에서 다루었다. 조금 더 실무적인 관점에서 접근해보고 싶은 도전의식에 의한 추가 심화 과정이었다.  Reflection 분석 보다도, 인사이트 도출 및 비즈니스 전략 도출의 과정이 더 어렵게 느껴진다. 정말 실질적으로 비즈니스에 도움이 될만한 대안을 생각해내야 하기 때문이다. 하지만, 실무에서는 당연하게 다루는 내용들이기 때문에 뇌에 힘주며 끝까지 결론을 향해 나아갔다.

[성동3기 전Z전능 데이터 분석가] DAY 46~47 _ SQL프로젝트 _ 가설검증

프로젝트 목표: Olist 매출 증대 고려사항: 비용(절감), 가치, 이익기타:- 기존 판매자 관점으로 접근- 영업팀, 마케팅팀, 물류팀에 할당할 인사이트 도출  가설 검증 이번 가설 검증에서는 SQL 로 전처리하고 Python 으로 분석한 다음 Tableau 로 시각화하였다.     Reflection 하나의 가설을 검증하다 보니, 추가적으로 분석해보고 싶은 부분이 생겼다. 그리고, 더 나아가 잔류확률 예측 모델링까지 시도해보게 되었다.  이 모든 과정은 '호기심' 에 따른 것이었다. 이를 통해, 하나의 가설에 대해 단편적인 부분만 보는 것이 아니라 다각적인 관점을 가지고 깊이있는 인사이트를 얻기 위해 시도해보는 좋은 성향을 스스로 발견할 수 있었다. 오늘 느낀 부분을 잊지말고 앞으로의 분석에도 적용시..

[성동3기 전Z전능 데이터 분석가] DAY 44~45 _ SQL프로젝트 _ EDA / 2차 가설 설정

EDA (1) _ 판매자 성과 분석 문제정의: Olist의 셀러(기존+신규)와 소비자를 타겟으로 데이터 분석하여 매출 증대 전략을 도출 매출 상위 10% 판매자 vs. 하위 10% 판매자의 차이 분석 기초 탐색 작업을 위해, 각자 분석할 내용을 분담했고 난 판매자의 성과를 분석을 담당했다. 매출을 중심으로 다루기 때문에 아래와 같이 매출의 기준을 잡고 시작했다. 셀러별 총 매출, 주문 건수, 리뷰 점수, 배송료 차이 분석 위 집계 데이터를 통해, 상위 10% 판매자의 평균 매출, 오더 개수, 리뷰 점수, 평균 배송비 모두 하위 10% 판매자보다 높다는 것을 확인할 수 있었다. 더 나아가, 상위 10% 판매자가 상대적으로 고가의 고품질 제품을 취급할 가능성이 존재한다는 추론도 가능하다. 높은 생존율을..

[성동3기 전Z전능 데이터 분석가] DAY 43 _ SQL프로젝트 _ 데이터 탐색 / 1차 가설 설정

데이터 탐색 각 12개 테이블 내 열들에 대해 뜯어보며, 필요 없는 열은 걸러내고 헷갈리는 열에 대한 이해를 함께 맞춰갔다. 또한, 도중에 떠오르는 아이디어나 의문점에 대해 마음껏 발산하며 분석 목표의 방향성에 대해 서서히 좁혀나가는 과정을 거쳤다.   그래서 어떤 것에 대해 분석할 건데? 팀원이 모두 데이터셋에 대한 이해도를 끌어올렸다. 그럼 이제 어떤 것을 분석할 건지에 대해 논의를 해야할 단계가 다가왔다. 개인적으로는 가설을 설정하기 전에 가지고 있는 데이터셋으로 대략적인 EDA 를 진행한 후 가설을 설정해야 효율적이지 않을까? 라는 생각이 들었다. 말로 설명하는데 한계를 느껴서 (말하고자 하는 바가 정확히 전달되지 않는 느낌) Notion 에 전하고자 하는 부분을 글로 정리하였다. 그렇게, 'Ol..

[성동3기 전Z전능 데이터 분석가] DAY 42 _ SQL프로젝트 _ 팀빌딩 / 주제선정 / 문제정의 / 데이터 탐색

사용 데이터셋 이미 데이터 분석 프로젝트로 많이 사용된 브라질의 Olist 데이터셋을 선정했다. 많이 사용되었다는 것은 그 만큼 유용한 데이터가 포함되어있다는 것으로 해석을 했다. 그리고, 이커머스 시장은 복잡 다변하기 때문에 명확한 목적을 갖고 주제를 깊게 파고들면 누구나 할 법한 지루한 프로젝트 내용을 피할 수 있을 것이라 생각했다. 따라서 주제 선정에 상당히 시간을 많이 할애했다.  주제 선정 주제 선정을 하기 전, 도메인에 대한 지식을 쌓기 위해 여러가지 서치를 해보았다.브라질의 이커머스 시장 특성Olist 회사 개요 및 비즈니스 구조하이브리드 이커머스 특징위 내용을 기반으로 도출할 만한 인사이트팀원분들이 각자 서치한 내용을 통합하여 서로 공유하고, 이해도를 함께 높이는 시간을 가졌다. 페르소나를..

[성동3기 전Z전능 데이터 분석가] DAY 41 _ SQL _ 윈도우 함수 (ROW_NUMBER(), LAG(), RANK(), DENSE_RANK(), LEAD() / VIEW / 데이터 추출

Window Function (윈도우 함수) 행과 행 간의 관계를 쉽게 적용하기 위해 만든 함수ex. RANK 를 사용해 순위를 매길 수 있음SyntaxRANK() OVER ([PARTITION BY 열명] ORDER BY 열명 [DESC]) AS RANKMYSQL 의 대표적인 윈도우 함수ROW_NUMBER() : 순위 매기기LAG() : 이전 행 값 참고하기RANK() : 공동 순위를 허용하는 순위 매기기DENSE_RANK() : 공동 순위 후 순차적 순위LEAD() : 다음 행 값 참조하기  ROW_NUMBER() 각 행에 고유한 순번을 할당하는 윈도우 함수 → 정렬된 행 순서대로 1부터 시작하는 숫자를 부여SyntaxROW_NUMBER() OVER ([PARTITION BY 열명] ORDER BY ..

[성동3기 전Z전능 데이터 분석가] DAY 40 _ SQL _ 서브쿼리 (Subquery), IN, JOIN (INNER, OUTER, LEFT, RIGHT)

서브쿼리 서브 쿼리 뒤에는 반드시 별칭(alias)을 가져야 함SELECT 명령이 어떤 값을 반환하는 지 중요SELECT 구에서 사용하기SELECT (SELECT COUNT(*) FROM Sample51) AS sql1, (SELECT COUNT(*) FROM Sample54) AS sql2;  SET 구에서 서브쿼리 사용하기UPDATE 의 SET구에서도 사용 가능# ERROR ver.UPDATE Sample54 SET a=(SELECT MAX(a) FROM Sample54);# Revised ver.UPDATE Sample54 SET a=(SELECT max_valFROM (SELECT MAX(a) AS max_val FROM Sample54) AS temp);  FROM 구에서 서브쿼리 사용하기..

[성동3기 전Z전능 데이터 분석가] DAY 39 _ SQL _ 날짜 연산 / CASE 문 / 데이터 추가,수정,삭제(INSERT, UPDATE, DELETE) / 집계함수(COUNT, SUM, AVG, MIN, MAX) / GROUP BY / HAVING / 서브쿼리(1)

날짜 연산 _ CURRENT_TIMESTAMP & DATEDIFF 날짜는 Date, 시간은 Time, 날짜와 시간은 Datetime 형으로 세분화 가능날짜나 시간 데이터는 사칙 연산 가능SyntaxSELECT CURRENT_TIMESTAMP; → 시스템 날짜를 출력하기 때문에 FROM 생략 가능 덧셈과 뺄셈 연산Syntax (덧셈)SELECT CURRENT_DATE + INTERVAL 숫자 DAY;SELECT ADD_DATE(NOW(), INTERVAL 1 DAY)다양한 연산도 가능SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND);SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE);SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);SE..

[성동3기 전Z전능 데이터 분석가] DAY 38 _ SQL _ NOT, LIKE, ORDER BY, LIMIT, OFFSET, 연산자

NOT 연산자 오른쪽에 지정한 조건식의 반대값을 반환 (단항 연산자)SELECT * FROM sample24 WHERE NOT (a0 OR b0); 엔티티 관계도 테이블 간 관계를 알아볼 수 있는 기능이며, 전처리 전 데이터를 이해하는 데 도움이 된다.테이블 우클릭 → '다이어그램 보기' 클릭 실습해보기 # Q1. Employee 테이블을 모두 출력해보기 SELECT * FROM Employee;# Q2. Employee 테이블에서 reportsto 가 null 아닌 사람을 출력해보기 SELECT * FROM Employee WHERE ReportsTo IS NOT NULL;# Q3. Employee 테이블에서 Title 이 IT Staff 인 사람만 출력해보기 SELECT * FROM Employe..