2. 공인회계사
재무/회계/자금/총무 담당
멋사에서 파이썬 한 달 수강 후 4개월 경과
주요개발이력(fb.me/legacycoder):
냉장고 스티커 출력기/안마의자 사용 현황/
옥상 화분 자동 물주기/트위터 크롤러/
슬랙봇/구내식당 식단알림
Who am I?
3. 데이터 업무의 목표는 데이터를 내려받아 일을 하는 것입니다.
데이터를 내려받아 일을 하자
개발 현업
SENDSENDSENDSENDSEND
주세요~주세요~주세요~주세요~주세요~
아닌데요아닌데요아닌데요아닌데요아닌데요
4. 자료요청을 줄이기 위해 DW를 구축하였으나
사람들은 게으릅니다.
• 민감정보를 제외한 모든 데이터
• SQL로 맘대로 직접 뽑아서 써라!
• 민감정보는 pbot 개발메일송부
안함
5. • SQL에 익숙하지 않음
SELECT * FROM table WHERE dfjakdfjkdasfjldsjf 아아아악!!
• Tableau도 구매했지만 계산이 불편함. 계산필드가 먹는 건가요
• 솔직히 내가 뽑으려면 10시간 고생해야 하는데 개발자들은 5분이면 뽑을 것 같음
현업들은 SQL을 통한 데이터 추출 과정이 너무 어렵습니다.
6. • DB 클라이언트 실행 쿼리 수정 쿼리 실행 결과값 export 엑셀 오픈 복사/붙여넣기
형식 수정 함수 수정 이메일 전송 (9단계)
• 쿼리를 열심히 짜놨는데, “어? 그 쿼리 왜 짰어요? 내가 이미 쓰고 있는데?”
• 같은 목적의 쿼리인데, “어? 그 결과값이 왜 나랑 달라요?”
• 아아아아아아아아악!!
SQL을 배워도 딱히 더 편해지지 않습니다.
7. • 결국 모든 데이터 요청에 대해 pbot을 만들어 줌
• 추가로 필요한 필드가 있거나 데이터구조가 바뀌면 프로그램 수정 요청
• 개발자: 왜 자꾸 빠졌다고 추가해 달래 다주자
• 현업: 왜 자꾸 빼먹고 줘 다받자
• 쓸데없이 덩치가 커진 민감정보 데이터 파일들이 이메일로 돌아다님
• pbot 개수 74개, 2019년 상반기 퀵픽스 67개
• 데이터 추출 시간을 줄이고 민감정보 유통을 막으려했던 DW 프로세스가 반대의 결과 초래
모두가 더 열심히 불행해졌습니다.
8. 문제의 원인인 비효율적인 데이터 추출과 데이터의 가공 프로세스를
없애야 함.
마이리얼트립(데이터가 흐르는 조직 만들기) *
1. 데이터 추출 업무에 시간을 뺏기면서 분석에 쓰는 시간이 줄어듬
2. 한 번의 요청으로 추출 목적에 맞는 데이터를 뽑는 게 불가능함(반복
되는 변경을 진행하기 어려움)
3. 데이터 분석은 좋은 질문에서 시작되는데 현업과 도메인에 대한 인
사이트가 모두 필요함
추출
가공
현업이 SQL을 고민없이 쓰게 하자
• 가장 좋은 질문자는 데이터 요청자
• SQL은 진입장벽: 남이 만든 건 이해해도
처음부터는 못하겠다
• 추출 과정을 혁신해서 개발자들을 단순
데이터 요청에서 해방
데이터만 들어오면 자동으로 최종 결과물이
나오게 하자
• 가공에 드는 시간과 단계가 과도함
• 단순업무 삭제로 비효율적 근면성의 싹을
제거
* https://www.slideshare.net/leoyang991/ss-152175755
9. 구글시트로 SQL을 쉽게 쓰고 리포트를 자동 생성합니다.
1
• SQL 쿼리를 구글 시트에 기재하여 공유/자동 수정
다른 사람의 쿼리를 볼 수 있고, 날짜 등 변동값에 따라 쿼리 자동 수정
2
• 쿼리 결과를 쿼리가 기재된 동일한 구글 시트로 전달
안 해봤는데 이걸 어떻게 할까?
3
• 갱신된 데이터로 리포트를 자동 생성*
구글 시트의 배열 함수로 해결
* “왜 내가 이제 와서 구글시트를 해야 합니다.” 참조
bit.ly/2mDD4vI
10. Google Sheets와 Redshift를 연결하자.(쉽게 편)
안됨
- 접속IP 제한
- 안 풀어줌
Google Apps Script의 JDBC Service로 몇 줄 안되는
코딩으로도 아주 쉽게 Redshift의 DB를 긁어 올 수 있
음
13. TO-BE
• 구글 시트를 연다
• 시트 주소를 복사한다
• 슬랙을 연다
• 슬랙봇 채널을 찾는다
• 명령어를 넣는다
• 구글 시트 아이디를 넣는다
• 엔터까지 때린다
외않되?
AS-IS
• DB클라이언트 실행
• 쿼리 수정/실행
• 결과값 export
• 엑셀 오픈
• 복사 붙여 넣기
• 형식/함수 수정
• 이메일 전송
VS
되돌이키기에는 늦음 구글 시트에 모든 걸 때려 넣자
14. • 구글 시트를 연다
• 시트 주소를 복사한다
• 슬랙을 연다
• 슬랙봇 채널을 찾는다
• 명령어를 넣는다
• 구글 시트 아이디를 넣는다
• 엔터까지 때린다
• 메뉴에서 JOM을 클릭• 메뉴에서 JOM을 클릭 매일 자동 실행
추가개선사항
• 유지보수
- 구글 시트는 템플릿으로 배포
- 앱스스크립트 라이브러리 작성
- 권한 자동 설정
• 쿼리공유
- 로그 시트를 만들어 독립시행횟수로 소팅
- 최초 작성자명과 함께 노출명예(멍에)의 전당
앱스스크립트로 키보드 한 방도 안 묻게 해 줄게
이제야 씀
15. • 총 데이터 사용량의 급증, pbot호출 급감. 휴일에도 sqljom 사용
• 7월 4일 개시 이후 3개월 동안 5,654건의 sqljom 실행
변화1. pbot 호출 감소, 데이터 사용 증가
16. • 데이터 변경/오류로 인한 퀵픽스 요청 급감(SQLJOM 사용이 본격화된 9월에는 연평균 대비 83% 감소)
• 개발자가 드디어 단순 데이터 추출업무에서 해방
변화2. 개발자 호출 감소
17. 변화3. 하던 일은 안 하고 안 하던 일을 하기 시작
• SQLJOM 2주 만에 2년 동안 못 만들던 대시보드들이 생성
• 좋은 쿼리에 대해 현업들이 논의
• 요청을 쳐내는데 바쁘던 개발자들은 왜 그런 요청이 발생하는지 같이 봐줄 여유가 생김
18. 결론: 목표로 돌아가기 위해서 시간을 들여 시간을 찾아줘야 함
• 식기세척기, 로봇청소기, 건조기:
- 단계를 줄여서 삶을 개선
기본수준이 유지되어야 개선에 쓸 시간이 생김
• SQLJOM:
- 단계를 줄여서 전체 스콥 수행의 에너지 감소
- “질문>데이터추출>데이터분석까지 하나의 완결적인
cycle을 스스로 해보는” 경험으로 본인의 에너지 증가
개선에 쓸 에너지 확보
• 시간을 들여서라도 시간을 찾아줘야 변화가 생긴다.
데이터를 내려받아 일을 하자
개발
현업
(구글 IP만 열렸으면 한 시간만 들여도 됐을텐데...)