2차 프로젝트 후 후기 (줄글)
이번엔 분석 ELT 쪽을 맡아 비교적 개발이 없었다.
코드를 짜는 것이라곤 주피터 노트북 이용해서 pandas로 EDA 검증 코드를 짜는 것이어서 개발 업무는 적었다.
그러나 그렇다고 안 바쁜 건 아니었다.
내가 주로 해야됐던건, 데이터 셋 상태가 괜찮은지 필드별, 레코드별 결측치 밑 범주 및 분포를 확인하는 EDA 작업과 분석 차트 생성이었다.
이번 프로젝트로 알게 된 점
1. 난 개발이 더 맞다
- 분석하며 데이터 다룰 수 있어서 재밌긴 하지만, 개발과 비교 시 같은 시간 노력대비 결과물은 개발이 더 낫다. (분석 쪽은 눈에 띄는 결과물이 거의 없다)
2. 로데이터 상태가 진짜 안 좋으면 수정하고 신경 쓸게 많구나 느낌
3. 데이터 수집하는 데이터 엔지니어와 품질검사하는 분석가 간의 업무 흐름(데이터셋 선정 -> 품질&수집 -> 반복 -> 최종 데이터셋 확보 -> 분석 -> 대시보드)을 직장처럼 미리 경험할 수 있었고, 얼마나 부딪히는 접점이 많은지 알게 됨 (이래서 실제 회사에서 자주 회의한다고 하는 건가?)
3. 차트 만드는 법도 어느 정도 익힘
4. 실제 업무 하는 느낌 많이 받음
5. 데이터 다루고 보는 시각을 좀 배움(ex. 사업연도와 사업시작 연도, 그리고 파일이름에 연도가 있을 때, 해당 데이터셋의 사업연도를 어떻게 구분지을지 -> 사업시작일의 연도로 결정 / 이상치(사업시작일자가가 사업종료일보다 미래인 경우 등) 발견하는 법)
6. 팀원 동료한테 많이 배우고 깨달음 얻음 (브리핑 방법, 의사소통 방법, 이슈 시 공유 방법, 자세, 말투, 등등)
진짜 배운 게 많다. 실수하거나 잘못해도 비판하지 않고 이해해 주시는 팀원분들, 내 약점과 실수들을 커버/돌려 말해주시는 게 감사했다. 그렇다고 너무 실수에 대해 수용하는 것이 아닌 더 나은 방향으로 좋게 제시해 주셔서 도움이 되었다.
이외에도 너무 많은데, 진짜 좋은 팀원들 덕분에 많이 배웠다.
7. pandas 오랜만에 다시 쓰면서 문법과 사용방법을 조금 더 알게 됨
가장 크게 알게 된 건 데이터 품질의 중요성과, 데이터 품질개선에 많은 노력이 들어간다는 점 잊지 말자.
(데린 은 물론 데엔파트도 중요_ 협업 중요)
정리
내가 이번에 한일
- 데이터셋 조사 (협업)
- 테이블 스키마 정의 (협업)
- 데이터 품질 체크 (EDA)
- 결측치
- 중복값
- 이상치
- 총 개수
- 칼럼별 범주 확인 후 분포까지 확인
- 그리고 마지막 데이터 클렌징 작업까지 (이상치를 버리거나, 같은 의미이지만 다르게 표기된 레코드들을 하나로 합치는 과정) 진행함
- preset에서 snowflake 연결 방법
- 연결하려면 snowflake에서 security의 allow ip에 preset의 공개 ip와 내 ip를 등록해야 됐음
- 내 ip는 snowflake에서 정한 보안 규칙을 publish 하려면 allow ip에 등록이 필요했음 (이게 꼭 필요한 과정인지는 모르겠음)
- 분석 지표 아이디어
- 내가 맡은 파트는 노인 일자리 사업의 '계속사업'을 주제로, 분석 지표가 될 수 있는 모든 요소를 생각하고 이에 대한 차트를 생각함
- 차트 생각 후엔 데이터셋에서 필요한 칼럼들을 어떻게 활용할 것인지 생각하고, 이에 대한 것을 엑셀로 정리함
- 이후 차트 종류는 superset에서 직접 만들어가며 데이터를 보면서 더 추가 작업함
- 차트로 만든 대시보드
- 노인 일자리 사업 데이터셋 중 계속 사업과 관련된 필드들을 이용하여 계속사업의 연도별/유형별 수치 및 유형 분석 그리고 지속연수에 대한 분석 및 차트 생성까지 진행함
- 이후 각자 만든 차트를 대시보드로 옮겨 시각화 작업까지 진행함
주로 업무 진행한 환경
- EDA 분석 : 로컬 주피터에서 csv 불러와서 pandas로 작업
- 구글 스프레드 시트 : eda 분석 결과 정리가 주, 그리고 분석 차트 만들 거 어떻게 할지 구상하는 데 사용(ex. 차트 종류, 사용하는 칼럼, 칼럼별 필요한 조건, 어떤 식으로 또 분석 가능할지를 시트에 정리함)
- superset: 로컬에서 작업 후 preset으로 넘어감
- 로컬에서 작업할 땐 snowflake 환경 구축이 안된 상황이라 로컬의 csv를 올려서 작업하느라고, 스키마 형식도 다 안 맞고, 타입도 안 맞았는데, 그래도 진행할 수 있었음
- 본 과정 : snowflake 분석 스키마 밑에 raw테이블로 분석 table 생성 -> preset에 연결해서 분석 테이블 정보 가져온 후 이걸로 chart 생성하여 시각화
앞으로 분석 파트 진행할 때 참고하면 좋을 듯한 진행순서
1. 어떤 데이터 이용할지 선택과 함께, 어떤 형태로 데이터를 제공(ex. api, csv)하는지 확인하기
2. 데이터 제공하는 형태별로 차이를 구분하고, 데이터 칼럼을 중점적으로 차이점을 분석함
3. 전체 데이터 통합했을 때와, 통합하기 전 각각 파일단위를 보며 결측치 및 이상치, 범주 분류 상태를 확인함
4. 이때 분석 차트에 쓰일 데이터 칼럼 위주로 파악을 한다.
5. 만약 이상치가 있다면 그 의미를 찾고, 기존의 다른 값으로 대체 가능하다면 대체하기 (통일성을 맞추기 위함)
5. 마지막으로 EDA 분석을 마치고, 차트를 만들 때 되는 기준값이 무엇인지 파악하고, 애매하다면 분석 팀원들과 회의 후 기준점 맞출 것
6. 분석 테이블 생성
7. 분석 차트 생성 및 대시보드 생성 및 추가
8. 차트와 대시보드 피드백받고 수정 작업 반복 (이때 한눈에 파악가능한 차트를 만드는 것이 핵심)
완성된 대시보드와 내가 맡은 부분
팀 프로젝트로 완성된 대시보드는 다음과 같다.
이 중 내가 작업한 차트는 (1) 노인 일자리 채용 동향 분석의 '직종 분포 TOP5'와 (2) 노인일자리 고용 지속성 분석에서 '연도별 시간제 구인 공고 분포' 차트를 제외한 계속사업 부문의 차트를 생성하였다.
'#️⃣ 회고글&프로젝트 후기' 카테고리의 다른 글
취업 성공기와 온보딩 3주차 느낀점과 회고 (1) | 2024.03.04 |
---|---|
2023년 연말 맞이 회고글 (0) | 2023.12.17 |
데이터 엔지니어링 데브코스 중간 회고록 (8주차) (0) | 2023.05.23 |
[회고록] 내가 보안 → 개발 → 데엔까지 오게 된 이유 (0) | 2023.02.24 |
[다짐글] 2023.01월 근황과 이후 계획 (0) | 2023.02.12 |