행궁동 데이터 엔지니어

반응형

지난번에 2023년 2분기 엔지니어로서 키우고 싶은 역량들을 적었었고

다시 한번 2분기에 집중할 것을 요약하면 1. 개발 역량,  2. 데이터 (활용, 문화), 3. 소프트 스킬 크게 3가지입니다.

https://mentha2.tistory.com/285

 

2분기 엔지니어로서 키우고 싶은 역량들

지난번에 이어 2분기 엔지니어로서 키우고 싶은 역량들을 업데이트해봤습니다. 이번 2분기를 요약하면 크게 3가지 역량을 키우는데 집중할 것 같습니다. 1. 개발 역량 - Go, Javascript를 활용해 지금

mentha2.tistory.com

 

이번 분기를 2주씩 총 7회로 나누어 엑셀 시트에 회사 업무와 개인 공부 / 스터디를 통해 알게 된 것을 적어나가려고 합니다.

회차 일자 내용
1 2023-03-27 -
2 2023-04-10 -
3 2023-04-24 -
4 2023-05-08 -
5 2023-05-22 -
6 2023-06-05 -
7 2023-06-19 -

 

시트: https://docs.google.com/spreadsheets/d/1r-go2oJ9C1zLZ-av9swjVak8OOlBW7a6LJJUhDS8Umg/edit#gid=542983381

 

 

주요 내용

1. 개발 역량

- 트랜잭션 히스토리 조회 페이지의 서비스 속도개선을 위해 인덱스를 추가하고 Count를 Redis 캐싱하는 로직을 추가를 해봤습니다.

a. 인덱스: 데이터가 누적되어 기존 단일 key 인덱스만으로 조회 시 Index Range 스캔으로 5만 여건의 데이터를 가져와 100 ~ 200건 만 필터링하는 비효율이 발생했습니다.  복합 Key 인덱스를 추가해 Index Range 스캔 범위를 좁히고 필터링을 최소화했습니다. 

b. Count 캐싱: Pagination이 적용되어 있어 처음 페이지 접근 시 Count를 집계하는데 과거 이력의 변화가 거의 없는 데이터임에도 불구하고 다음 offset 데이터를 가져올 때도 Count 쿼리가 발생하는게 비효율적으로 보여 Count를 Redis에 캐싱했습니다.

 

- Front에서 API를 2번 호출해서 테이블용 데이터 셋을 만드는 로직을 API 1회 호출로 변경 했습니다. 결과적으로 Front로 가져오는 데이터를 90% 이상 줄이고 속도도 기존의 1 / 3 수준으로 개선했습니다.

 

- 개인 공부로 Vue js 책 1권을 50% 학습 했습니다.

- RealMySQL 8.0 책으로 스터디를 시작했고 1회 진행했습니다.

- 기타: 회사에서 AWS 매니지드 ElasticSearch (OpenSearch)를 운영 중인 이유?

ElasticSearch가 회사에서 사용되고 있는데 왜 사용되고 있는지 잘 몰랐었습니다. 회사 동료분이 ElasticSearch를 통한 상품 검색 개선을 위해 (상품명 완전 일치 상품 최상단 노출) N-gram tokenizer의 min, max를 변경하고 인덱싱을 새로 하는 것을 보며 간접적으로나마 왜 ElasticSearch를 도입했는지 알게 되었습니다. 

 

2. 데이터

- 회사 월간 리포트 작성 자동화를 위한 대시보드(QuickSight) 초안을 만들어 봤습니다. 

데이터 검증, 그래프 시각화 개선, 지표 정리, 월간 리포트용 마트 데이터 배치 파이프라인 생성 등 아직 남은 일들이 많긴 하지만 시작이 반이라고 긍정적으로 생각하려고 합니다.

매월 1 Week 정도는 대시보드와 관련된 작업에 시간을 쏟으며 지속적으로 개선할 것 같습니다.

 

- 진행했던 데이터 관련 업무에 대해 Document를 남기는 일을 꾸준히 했습니다.  아직은 데이터 추출 / 피봇 결과와  간단한 의견 그리고 사용했던 Query를 남기는 수준으로 정리하고 있습니다.

- 중간에 2~3일 정도 크롬 익스텐션 때문에 Doc 편집에 장애가 있어 일부를 Notion에 정리하기는 했습니다.

 

- 개인 공부로는 변성윤 님의 PM을 위한 데이터 리터러시(프러덕트 데이터 분석) 강의를 1 / 4 수강했습니다. 함께 공부하는 스터디로 시작했는데 지난 스터디에는 참여하지 못하고 개인 수강만 진행했습니다. 강의를 보며 문제를 정의하고 문제 해결 / Action Plan을 위한 데이터 분석이 중요하다는 것에 많이 공감되었고 동시에 뜨끔했습니다. 또한 데이터 / 리포트 공유 시 데이터 수요자 입장에서 생각해야 한다는 것을 상기할 수 있어 좋았습니다.

Action Plain이 수시로 그리고 매 챕터마다 정리되어 있기에 강의 / 스터디를 통해 배우고 저희 회사에 적용할 수 있는 것들을 하나씩 적용해 보려고 합니다.

3. 소프트 스킬

- 개인적으로 재택도 많이 했고 먼저 여쭤보는 게 많이 없던 2주였던 것 같습니다.

- 슬랙보다는 대면으로 여쭤보는 게 편하기에 최소 주 3회 이상 출근하고 궁금한 것들과 현재 중요하고 필요한 일에 대해 지속적으로 여쭤보겠습니다.

 

기타

의미 있던 이벤트

스터디를 2개 시작했습니다. 데이터 리터러시 강의는 1~2개월 안에 끝날 것 같고 MySQL 스터디는 3개월 이상 진행할 것 같습니다.

2개의 스터디를 통해 프로젝트, 업무를 진행하며 어렴풋이 알고 있던 많은 것들이 정리되길 기대합니다.

- PM을 위한 데이터 리터러시(변성윤님) 강의 / 스터디 시작

- MySQL 스터디 시작

 
Real MySQL 8.0 (1권)
《Real MySQL 8.0》은 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. 또한 《Real MySQL 8.0》은 단순 SQL 문법이나 쿼리 작성보다는 MySQL 서버를 활용하는 프로젝트에서 꼭 필요한 경험과 지식을 전달하는 데 집중했다. 이 책을 처음부터 끝까지 정독할 수 있다면 더없이 좋겠지만 필요하거나 관심 있는 내용 위주로 살펴봐도 지금까지 경험했던 수많은 문제들을 해결할 수 있을 것이다. ★ 이 책에서 다루는 내용 ★ ◎ MySQL 설치와 서버 아키텍처 ◎ 트랜잭션과 잠금 ◎ 인덱스 종류의 구조 및 활용 ◎ GTID 기반 복제 및 InnoDB 클러스터 아키텍처 ◎ 쿼리의 실행 계획 분석 및 최적화 ◎ 스토어드 프로그램 개발 ◎ 데이터 모델링 및 최적의 데이터 타입 선정 ◎ 파티션 및 데이터 압축 활용 ◎ GIS 및 전문 검색 기능 활용 ◎ Performance 스키마 및 Sys 스키마 활용
저자
백은빈, 이성욱
출판
위키북스
출판일
2021.09.08

 

계획했지만 못한 것

- Vue.js 책 1권 훑기 (50% 진행)

책을 훑으려고 했으나 훑는 게 아니고 코드를 Typing 했습니다.

책의 저자분이 워낙 백견불여일타를 강조하기에 그렇게 했고 후회는 없습니다.

성과로는 CTO 님이 말씀해 주셨던 Vue computed는 프로퍼티다 라는 말이 이제는 잘 이해가 되었고 실제로 코드를 치며 computed와 watch를 작게나마 해볼 수 있던 것 같습니다.

남은 50%도 모두 보고 제가 담당하고 있는 Vue로 되어 있는 서비스를 잘 개선 / 업데이트해보려고 합니다.

 

마무리

- 회사에서 Titket으로 떨어지는 업무 외에 MySQL slow query parser를 통한 슬로우 쿼리 모니터링, 주요 지표 Slack 공지 2가지를 해보고 싶은데 2~3회 차 정리 시에는 '의미 있던 이벤트'에 적을 수 있으면 좋겠습니다.

 

 

 

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band