Search
🗂️

SQL

신규 서비스 기획 영향도 측정을 위한 고객사 유형별 가설 수립과 SQL을 통한 검증으로, 업데이트 이후 일 평균 문의량 3,000건 중 0.4%이내로 관련 문의 최소화
이카운트 : 월 정액 업무관리 IT 솔루션 (SaaS)
기여도 70%
역할 그로스 마케팅
업무 기간 2020.01 ~ 2020.03 (3개월) 수정필요
활용 Tool GA4(Analysis), Excel(Analysis), 자사 내부 트래킹 툴(Analysis), SQL
Project Summary
배경 :
목표 :
문제/기회 :
전략/해결책 :
실행 방안 :
결과/인사이트 :

ERP 신규 서비스 기획 영향도 측정을 위한 (부분 자동화) 고객사 유형별 가설 수립과 SQL을 통한 데이터 검증

1. 배경

매출 · 구매 · 생산 등 전표 내에 품목코드 입력하여 단가 호출 시, 금액 관련 특정 항목에서 단가와 VAT를 각각 따로 입력해야하는 번거로움 존재
이로 인해 다수의 고객사 로부터 00건(몇 건이 현실적일지?)의 개선 문의 확인
따라서, 팀 내부적으로 우선순위를 높여 문제를 해결하기 위한 기획 회의 진행

2. 목표

팀 단위 목표
(1) 상품별로 단가에 VAT를 자동 계산하여 적용되도록 신규 서비스 기획
자동계산식 적용 ➜ [단가 x (1+적용부가세율)] (수동 조정 가능)
ex 1. VAT 포함 품목 : 단가 (1,000원) x VAT(100원) 적용되어 총 금액이 1,100원으로 기록
ex 2. VAT 별도 품목 : 단가 (1,000원) x VAT(N원) 적용되어 총 금액이 1,000 + N원으로 기록
(2) 신규 기능 추가 프로젝트 진행 여부에 대한 판단
Pros. 서비스 사용 편의성 증대
Cons. 고객사 DB 데이터 변경 우려
개인 업무 R&R
목표 : 프로젝트를 진행해도 되는지 판단을 위한 영향도 규모 파악
팀단위에서 우선순위로 결정된 기획 건에 대한 수치적인 데이터를 근거로 타당성 여부 확인 및 해결책 제시

3. 문제 및 기회 (이유 + 분석)

상황
‘VAT 자동 계산’이라는 신규 기획이 추가 시, ① 에 있던 숫자 ‘0’ 이 ②에 있는 숫자 ‘12,000’으로 자동 계산되어 반영될 예정
일반적인 ERP 사용 프로세스에 따라서 일부 기능에서 숫자가 바뀌는 등의 고객 데이터가 변경될 가능성이 있음, 불필요한 상담 문의 수 증가 방지 및 고객사 서비스 해지로 인한 이탈 방어 필요
PPT 이미지 수정 필요
문제 정의
(1) 주요 사용자들의 ERP 활용 예시에 따라, 영향 받는 기능 파악과 규모 확인을 위한 데이터 추출 그룹핑 기준 정립
(2) 신규 기획 건 진행 타당성 여부 판단을 위한 데이터 검증 필요
(3) 임팩트 규모에 따라, 예상 시나리오 별 대응책 마련

4. 전략 및 해결책 (분석한 문제를 해결하기 위한 방법)

전략 : 기획으로 인해 영향 받는 그룹 속성 분류 최대한 ‘MECE (누락없고, 중복없고)’로 해결 할 수 있는 방안 도출
(1) 기능 type 분류 : A1.판매 입력 양식(입력양식), A2.매출 전표(저장전표), B.거래명세서(출력물)
ERP 입력 프로세스 상, [입력 양식 → 전표 저장 → 출력물 생성] 단계로 구성
이로 인해 사용자 목적에 따라, 각각의 입력 단계별 기능에서 ‘단가(Vat포함)’ 항목이 포함되는 점 확인
표에 A1, A2, B 표시하기 (그룹핑 기준)
(2) SQL을 통한 고객사 CASE별 규모 파악 및 가설 검증
A1 : 현재 · 미래에 잠재적으로 영향을 받을 수 있는 유저
ex. 향후 판매 데이터 입력 시, 변경된 기능을 보게 될 고객사
A2 : 과거 입력 데이터가 변경되어, 잠재적으로 영향을 받을 수 있는 유저
ex. 이전 3개월 간 만들어 놓은 매출전표의 단가(vat)항목 입력 값이 변하게 될 고객사
A1 ∩ A2 ➜ 현재 기능 변경 시, 즉시 영향 받는 유저 (과거 · 현재 · 미래)
ex. 과거 3개월 간 단가(vat)항목을 포함하여 매출전표를 생성하였고, 현재 시점에서도 단가(vat) 항목을 지속 사용하는 고객사
B ➜ 출력물 데이터를 메일 등 외부로 발송되어, 데이터 수정이 불가능 한 유저
ex. 할인, 반품, 계약조정, 환율변동 등으로 단가(vat포함)을 출력물에서 활용한 고객사
(3) 각 CASE별 대응방안 마련 및 의사결정
A1 ∩ A2 ➜ 업데이트 공지 팝업 + 데이터 Mig. + 상담문의로 해결
B ➜ 강성 상담 프로세스 구축 or 해지 고려

5. 실행 방안

(1) 기능 type 분류 및 ERD를 통한 테이블 구조 파악 (해석, 파악)
A1.판매 입력 양식(입력양식), A2.매출 전표(저장전표), B.거래명세서(출력물) 데이터 베이스 및 unique 값을 포함한 column 정의
(2) SQL을 통한 고객사 CASE별 규모 파악 및 가설검증 (쿼리짜고, 가공방법)
A1. 현재 · 미래에 잠재적으로 영향을 받을 수 있는 유저
① 데이터 수집
양식 메인 테이블(매출, 구매, 생산 전표 등 포함)을 기준으로 양식 상세 테이블(거래처, 단가 등 포함)을 ’회사코드’, ‘양식 타입’, ‘양식 순서’ 열을 기준으로 조인
② 데이터 전처리
전표 유형이 ‘매출전표’의 ‘기본 입력 양식’이면서, 단가(vat포함) 항목을 포함하는 데이터만 필터링
③ 데이터 추출
양식 정보를 기반으로 새로운 테이블을 생성하여, 회계 테이블과 ‘회사코드’ 기준으로 재조인하여 조건에 해당하는 ‘회사코드’, ‘회사명’ 출력
A1. 현재 · 미래에 잠재적으로 영향을 받을 수 있는 유저 USE ACCT; -- 회계 DB를 사용해서 SELECT A.COM_CODE, A.COM_DES -- '회사코드'와 '회사명' 호출 FROM ACCT.ACC001 A -- A라고 명명한 회계 테이블로부터 INNER JOIN ( -- 다음 B의 서브쿼리와 교집합 조인 SELECT A.COM_CODE -- '회사코드' 호출 FROM EC_COFS.COFS_MAINSET_IN_BASIC A -- 양식 메인 테이블로부터 LEFT OUTER JOIN COFS_DETAILSET_IN_BASIC B -- 양식 상세 테이블이랑 조인 ON A.COM_CODE = B.COM_CODE -- A회사코드, B회사코드가 일치하면서 AND A.FORM_TYPE = B.FORM_TYPE -- A양식종류, B양식종류가 일치하면서 AND A.FORM_SEQ = B.FORM_SEQ -- A양식순서, B양식순서가 일치하는 조건이면 조인 WHERE A.BAsic_form_tf = 1 -- 양식 메인 테이블에서 기본 양식만 선택 AND A.FORM_TYPE = 'SI030' -- 양식 메인 테이블에서 특정 양식(판매) 유형만 선택 AND B.COL_CD = 'user_price_vat' -- 양식 상세 테이블에서 'VAT 포함' 항목만 선택 ) B -- 서브쿼리 내용을 B라고 명명 ON A.COM_CODE = B.COM_CODE -- A회계 테이블과 B메인/상세양식 통합 테이블과 회사코드 같으면 조인
SQL
복사
A2 : 과거 입력 데이터가 변경되어, 잠재적으로 영향을 받을 수 있는 유저
① 데이터 수집
양식 상세 테이블(거래처, 단가 등 포함)에서 ‘단가(vat포함)’ 항목을 보유한 ‘전표 수’를 Count하여 신규 열 생성하여 ‘회사코드’, ‘양식 타입’을 기준으로 순차 정렬
② 데이터 전처리
전표 유형이 ‘매출전표’의 ‘기본 입력 양식’이면서, 단가(vat포함) 항목을 포함하는 데이터만 필터링
서버 테스트 코드, 관리자 코드 및 기타 그 외 내부 데이터 클리닝
③ 데이터 추출
양식 정보를 기반으로 새로운 테이블을 생성하여, 회계 테이블과 ‘회사코드’ 기준으로 재조인하여 조건에 해당하는 ‘회사코드’, ‘회사명’, ‘양식 타입’, ’전표 수’ 출력
A2 : 과거 입력 데이터가 변경되어, 잠재적으로 영향을 받을 수 있는 유저 USE ACCT; -- 회계 DB를 사용해서 SELECT A.COM_CODE, A.COM_DES, B.form_type, B.cnt -- '회사코드', '회사명', '양식종류', '개수' 호출 FROM ACCT.ACC001 A -- A라고 명명한 회계 테이블로부터 INNER JOIN ( -- 다음 B의 서브쿼리와 교집합 조인 SELECT com_code, form_type, COUNT(*) AS cnt -- '회사코드', '양식종류', 총 그룹핑 조합 숫자 호출 FROM EC_COFS.COFS_DETAILSET_IN_BASIC -- 양식 상세 테이블로부터 WHERE col_cd = 'user_price_vat' -- 컬럼값이 'VAT 포함' 항목인 경우 GROUP BY com_code, form_type -- 동일 '회사코드', '양식종류' 기준으로 그룹핑해서 ) B -- B라고 명명 ON A.COM_CODE = B.com_code -- A회사코드와 B회사코드 기준으로 테이블 조인 WHERE A.SVC_TYPE_CD NOT IN (‘C002’, ‘S001’, ‘E003’) -- 서비스타입이 C-Level, Supevisor, Enterprise(탈퇴, 평가판탈퇴, 테스트코드) AND A.COM_CODE NOT LIKE 'ZA%' -- 기능 개발 테스트 서버용 코드가 아닐 경우 AND A.COM_CODE NOT LIKE 'G%' -- 내부 관리자용 코드가 아닌 경우 AND A.COM_DES NOT LIKE '%교육용%' -- 회사명에 '교육용' 단어 포함되지 않는 경우 AND A.TEST_CODE_YN <> 'Y' -- 테스트 코드가 아닌 경우 AND A.GUBUN <> 'N' -- 삭제된 양식이 아닌 경우
SQL
복사
(3) 각 CASE별 대응방안 마련 및 의사결정
전체 고객사 중 A1 ∩ A2에 해당하는 고객사 3.8%, B에 해당하는 고객사가 0.61%로 각 유형에 따른 대응방안 마련 + 신규 기획 건에 따른 부정적인 임팩트 낮을 것으로 판단하여 기획 진행
A1 ∩ A2의 경우, 전체 고객사의 3.8%로,
교집합 → 과거 3개월 간 생성해낸 매출전표 중 단가(vat포함)이 포함되었으면서 +
당장 입력 양식과 저장된 매출 전표 단가(vat포함) 금액이 바뀌는것
입력양식에는 팝업을 통해 기능 변경에 대한 안내 및 사용 방법 공지
저장된 전표의 경우 데이터 Mig. 통해 소급 적용하되, 유저 불편사항에 대한 추가 상담 진행
[내용] 부분 워딩만 교체하기
B의 경우, 전체 고객사의 0.61%로,
거래명세상의 단가(vat포함) 금액이 바뀌는 것
거래명세서는 Mig. 칠건데, 그 중에 극히 일부만 거래처로 외부 발송 했을 것이라 추측
또 그중 일부 고객사만 강성 불만 인입 예상,
강성 고객 대상 상담 프로세스 구축 및 전달
그럼에도 안될경우 해지해도 무방 (숫자가 적어서)
A1 ∩ A2 ➜ 업데이트 공지 팝업 + 데이터 Mig. + 상담문의로 해결
B ➜ 강성 상담 프로세스 구축 or 해지 고려

6. 결과 및 인사이트

쿼리문 통해서 어떤 의사결정 내렸어?
기획통과됨
내리고 나서 배포하구 후속 문제 없었어?
+상담건 많이 안옴 (임팩트, 검증임)
데이터 전처리 → Test 코드를 제외하여 데이터 클리닝
인사이트 도출 → 카테고리별 매출 기여도 분석
A1. 기본' 판매양식에 단가(vat포함) 항목을 추가하여 사용하고 있는 회사코드
A2. 최근 3개월 기준, 입력한 판매전표 중 단가(vat포함) 값은 '0', 단가 값은 '0'이 아닌 전표를 보유한 회사
조인 대상 테이블:
ACCT.ACC001 (A 테이블): 주 테이블로, 회사 정보 및 서비스 관련 데이터를 포함.
서브쿼리 (B 테이블):
EC_COFS.COFS_DETAILSET_IN_BASIC에서 col_cd'user_price_vat'인 데이터를 필터링.
com_codeform_type으로 그룹화하여 각 조합의 개수(cnt)를 계산.
INNER JOIN:
A.COM_CODEB.com_code를 기준으로 두 테이블을 조인.
WHERE 절 조건:
ACCT.ACC001의 특정 열 값에 따라 데이터를 필터링:
A.SVC_TYPE_CD'C002', 'S001', 'E003' 중 하나가 아닌 경우.
A.COM_CODE'ZA%' 또는 'G%'로 시작하지 않는 경우.
A.COM_DES'교육용'이라는 단어가 포함되지 않는 경우.
A.TEST_CODE_YN'Y'가 아닌 경우.
A.GUBUN'N'이 아닌 경우.
참고 : SQL 짠거
sql 어떻게 썻어? 쿼리 어떤거야?
변수는 뭐였어?
쿼리문 해석해봐 어떤 테이블 / 어떤 컬럼 데이터를 어떤 기준으로 조인할거야?
(3) 어떤 기준으로 정하지?
그거 어떤 형식으로 정리해서 문제를 잘 보여줄 수있는 방법이 뭐야?
(4) 어떻게 그룹화해서 편하지?
CNT 를 써서 데이터를 합치게 된 이유 >> 그래서 CNT 로
정확히 대응방안이 어떤거였는데?
(A. 업데이트 공지 팝업 > B. 데이터 Mig. + 상담문의로 해결 > C. 강성상담, 해지고려) + 솔메 도출 + 팀 내에서 추가로 의사결정한 부분 (강성 고객이면 버려도 된다)
실행방안 : 이를 근거로 기획으로 인해 영향이 큰 고객사 타입 분류 A,B,C + 고객사별 우선순위 정리 (B = ERP를 가이드대로 잘 활용하는 충성고객 / C = 이미 거래명세서 형태로 의사결정을 내린 고객 유형으로 강성 소비자로 넘어갈 우려가 있음 / A = ERP를 자기 멋대로 활용하고 있는 고객, 미래에 ERP를 사용할만한 고객) + SQL 써서 검증하자!>
영향 이후 고객사 예상 액션 가설 수립 > 각 케이스 별 공지 팝업, 혹은 영향 받는 고객사 데이터 Mig. 추가 상담 문의 수 예측 등 대응방안 솔메 도출
단가(vat포함) 자동 계산식 기능 변경 이후에 영향을 받을 만한 고객사 유형 분류 필요한 상황
그래서 어떤 유형으로 고객사를 분류하고 나눌지 고민이 필요
고객사유형1, 유형2 나눈 기준
기존 고객사중에 기획 적용 이후에 앞으로 신규 전표를 만드는 경우 (미래) 풀어서 써보기
기존 고객사중에 어떤 전표이던 vat포함 항목이 생성되어 있는 경우
(독립변수 : 기본 입력 양식 테이블 + 종속변수 : 기존 고객사 매출 전표 테이블)
ㄴ 벤다이어그램 으로 표현
신규 기획이 적용되는 ERP기능 중 특히, 입력 양식 및 저장 전표, 출력물과 같은
A1. 판매입력 양식
유저타입
해결방안
A2.매출 전표
유저타입
해결방안
B. 거래명세서
(1) 문제 : 할인, 반품, 계약조정, 환율변동 등으로 인한 단가(vat포함) 조정 변동 CASE에 규모 파악
(2) 근거 : ERP 상에서 단가(vat포함) 항목을 계산식으로 넣어서 특별가를 포함한 거래명세서를 만든 회사의 경우, 특별가에 기재된 금액이 변경될 수 있음.
이에 따라서 내부 다운로드 없이, 문제에 해당하는 고객사가 외부 메일,채널 등을 통해서 거래명세서가 거래처에 발송된 경우 거래처와 ERP고객사가 보는 단가(vat포함) 금액이 다를 수 있음
(3) 해결방안 : CASE별 합산 규모를 파악하여, 의사결정에 활용 전략으로 이동
유저 페르소나 (ERP에서 단가와 VAT를 어떻게 사용하고 있는지)
전제 1 : 품목별 VAT 포함/별도 개별 셋팅값 설정하는 구조
전제 2 : 단가(vat포함) 열 = 기본값 아님(넣고 뺄 수 있음)
(1) 다양한 경우의 수 너무 많음
특정 조건을 만족하는 회사들의 데이터를 통해 잠재적인 대상 고객군을 식별 SELECT
특정 FORM_TYPE과 세금 관련 데이터(user_price_vat)를 보유한 회사 목록을 식별. WHERE절
특정 조건을 만족하는 회사들의 서비스 유형(form_type)별 데이터 개수를 분석 COUNT
회사 코드나 설명에 특정 패턴을 포함하지 않는 회사에 대한 정책을 적용하거나 검토 TEST CODE 제외
기본 양식(BAsic_form_tf = 1)이 정확히 설정된 회사들의 데이터를 검증하고, 세금 관련 정보(COL_CD)가 포함되어 있는지 확인. 조인된 서브쿼리
(2) 어떤 기준으로 정하지?
col_cd가 'user_price_vat'인 데이터만 필터링하므로, 세금과 관련된 데이터를 검증하거나 통계적으로 활용 vat 컬럼값
세금 데이터를 포함하는 기본 양식을 사용하는 회사들만을 별도로 분류 판매기본양식
(3) 어떻게 그룹화해서 편하지?
COM_CODE와 form_type별 데이터 개수를 통해 비즈니스 의사 결정을 위한 보고서에 활용 COUNT + 결론
(1) A/B 두 그룹으로 공통화하면 mece처럼 중복없이 누럭없겠구나
(2) 왜지? 이러이러한 이유로
경우의 수가 여러가지 있을 텐데, 이 두유형으로 축약해서 우려사항으로 꼽은 이유?
1 & 2번 벤다이어그램으로 어떤 MECE 관계 설명
목표 : 규모파악
목표 : 규모파악
1.
고객사유형1, 유형2 나눈 기준
기존 고객사중에 기획 적용 이후에 앞으로 신규 전표를 만드는 경우 (미래) 풀어서 써보기
기존 고객사중에 어떤 전표이던 vat포함 항목이 생성되어 있는 경우
(독립변수 : 기본 입력 양식 테이블 + 종속변수 : 기존 고객사 매출 전표 테이블 )
ㄴ 벤다이어그램 으로 표현
- 회계 테이블 + 전표 양식 (매출전표, 판매전표) 테이블
기존 고객사 중에 기존에 있었던 전표가 바뀌는 경우 (과거) 풀어서 써보기
기존 고객사중에 어떤 전표이던 vat포함 항목이 생성되어서 이미 전표를 만들어 놓은 경우
1.
향후 기획 진행으로 서비스 개선이 반영되었을 때 영향을 받을 것 같은 고객사유형1, 유형2
1. 기존 고객사 중에 기획 적용 이후 신규로 전표를 생성하려고 하는 고객사
a.
기존 축적된 DB가 크지 않아서,

6. 결과 및 인사이트

쿼리문 통해서 어떤 의사결정 내렸어?
기획통과됨
내리고 나서 배포하구 후속 문제 없었어?
+상담건 많이 안옴 (임팩트, 검증임)
1번 유형은 cs로 공지 팝업 + 안내
2번 유형은 DB가 얼마 안되서 영향 미비로 기획건 진행
+추가로 상담건 많이 안옴 (임팩트, 검증임)
기능 배포 이후, 관련 문의사항 전체 대비 0.4% 이하로 추가상담 건수 최소화
일 평균 상담 3,000건 대비 11건 대비 관련 상담문의 0.4% 이하 기록
A. 고객 큰 문의 없음 혹은 상담 문의건 진짜 적음
B. 상담문의 건 조금 있는데 전체적으로 크지 않음 몇%임
C. 강성 고객 해지 비율 몇 %임
정량적인 수치화를 기반으로 한 빠르고 올바른 의사결정
Join, Sub-Query 등 SQL 구문 활용하여 고객사 DB 추출
설득력 있는 참고자료 제작 및 유관부서와의 원활한 커뮤니케이션
정량적 수치 기반으로 CS부서와 논의를 통한 원활한 커뮤니케이션
핵심역량 + 경험
정량적 수치 기반의 데이터 분석
고객 DB 데이터를 활용한 서비스 기획 신규 업데이트 이후, 관련 문의 발생 비율 0.4% 이하로 최소화
고객사 DB 데이터를 활용한 웹 서비스 기획 Join, Sub-Query 등 SQL 구문 활용
SQL 데이터 원본 (A2? B?)
USE ACCT; SELECT A.COM_CODE, A.COM_DES, B.form_type, B.cnt FROM ACCT.ACC001 A INNER JOIN ( SELECT com_code, form_type, COUNT(*) AS cnt FROM EC_COFS.COFS_DETAILSET_IN_BASIC WHERE col_cd = 'user_price_vat' GROUP BY com_code, form_type ) B ON A.COM_CODE = B.com_code WHERE A.SVC_TYPE_CD NOT IN (‘C002’, ‘S001’, ‘E003’) AND A.COM_CODE NOT LIKE 'ZA%' AND A.COM_CODE NOT LIKE 'G%' AND A.COM_DES NOT LIKE '%교육용%' AND A.TEST_CODE_YN <> 'Y' AND A.GUBUN <> 'N'
SQL
복사
SQL 데이터 원본 (A1)
USE ACCT; SELECT A.COM_CODE, A.COM_DES FROM ACCT.ACC001 A INNER JOIN ( SELECT A.COM_CODE FROM EC_COFS.COFS_MAINSET_IN_BASIC A LEFT OUTER JOIN COFS_DETAILSET_IN_BASIC B ON A.COM_CODE = B.COM_CODE AND A.FORM_TYPE = B.FORM_TYPE AND A.FORM_SEQ = B.FORM_SEQ WHERE A.BAsic_form_tf = 1 AND A.FORM_TYPE = 'SI030' AND B.COL_CD = 'user_price_vat' ) B ON A.COM_CODE = B.COM_CODE
SQL
복사
SQL 데이터 해석본 (A2) ➜ [My SQL - 판매양식 기본양식 + 단가 vat 포함 항목 유무 여부]
최근 1달 기준, 입력한 판매전표 중 단가(vat포함) 값은 '0', 단가 값은 '0'이 아닌 전표를 보유한 회사
USE ACCT; -- 회계 DB를 사용해서 SELECT A.COM_CODE, A.COM_DES, B.form_type, B.cnt -- '회사코드', '회사명', '양식종류', '개수' 호출 FROM ACCT.ACC001 A -- A라고 명명한 회계 테이블로부터 INNER JOIN ( -- 다음 B의 서브쿼리와 교집합 조인 SELECT com_code, form_type, COUNT(*) AS cnt -- '회사코드', '양식종류', 총 그룹핑 조합 숫자 호출 FROM EC_COFS.COFS_DETAILSET_IN_BASIC -- 양식 상세 테이블로부터 WHERE col_cd = 'user_price_vat' -- 컬럼값이 'VAT 포함' 항목인 경우 GROUP BY com_code, form_type -- 동일 '회사코드', '양식종류' 기준으로 그룹핑해서 ) B -- B라고 명명 ON A.COM_CODE = B.com_code -- A회사코드와 B회사코드 기준으로 테이블 조인 WHERE A.SVC_TYPE_CD NOT IN (‘C002’, ‘S001’, ‘E003’) -- 서비스타입이 C-Level, Supevisor, Enterprise(탈퇴, 평가판탈퇴, 테스트코드) AND A.COM_CODE NOT LIKE 'ZA%' -- 기능 개발 테스트 서버용 코드가 아닐 경우 AND A.COM_CODE NOT LIKE 'G%' -- 내부 관리자용 코드가 아닌 경우 AND A.COM_DES NOT LIKE '%교육용%' -- 회사명에 '교육용' 단어 포함되지 않는 경우 AND A.TEST_CODE_YN <> 'Y' -- 테스트 코드가 아닌 경우 AND A.GUBUN <> 'N' -- 삭제된 양식이 아닌 경우
SQL
복사
(1) 데이터 호출 테이블 선정
ㅎㅚ계, 양식 메인, 양식 상세
(2) 호출 항목 및 조건 선정
ㄷㅏㄴ가 항목 + 판매양식 + 기본양식
(3) 그룹핑 기준점
ㅎㅚ사코드 + count로 양식 개수 숫자로 치환
이 쿼리는 두 개의 테이블, ACCT.ACC001과 EC_COFS.COFS_DETAILSET_IN_BASIC을 조인하여 특정 조건에 맞는 데이터를 조회하는 쿼리입니다
특정 조건을 만족하는 회사(COM_CODE, COM_DES)와 그에 해당하는 form_type 및 관련 데이터의 개수를 조회할 수 있습니다.
(1) 서비스 유형별 분석:
특정 조건을 만족하는 회사들의 서비스 유형(form_type)별 데이터 개수를 분석할 수 있음.
(2) 정책 및 규정 적용:
회사 코드나 설명에 특정 패턴을 포함하지 않는 회사에 대해 정책을 적용하거나 검토 가능.
(3) 데이터 검증:
col_cd가 'user_price_vat'인 데이터만 필터링하므로, 세금과 관련된 데이터를 검증하거나 통계적으로 활용 가능.
(4) 대상 고객군 식별:
특정 조건을 만족하는 회사들의 데이터를 통해 잠재적인 대상 고객군을 식별할 수 있음.
(5) 보고서 작성:
COM_CODE와 form_type별 데이터 개수를 통해 비즈니스 의사 결정을 위한 보고서에 활용.
SQL 데이터 해석본 (A1)
기본' 판매양식에 단가(vat포함) 항목을 추가하여 사용하고 있는 회사코드
USE ACCT; -- 회계 DB를 사용해서 SELECT A.COM_CODE, A.COM_DES -- '회사코드'와 '회사명' 호출 FROM ACCT.ACC001 A -- A라고 명명한 회계 테이블로부터 INNER JOIN ( -- 다음 B의 서브쿼리와 교집합 조인 SELECT A.COM_CODE -- '회사코드' 호출 FROM EC_COFS.COFS_MAINSET_IN_BASIC A -- 양식 메인 테이블로부터 LEFT OUTER JOIN COFS_DETAILSET_IN_BASIC B -- 양식 상세 테이블이랑 조인 ON A.COM_CODE = B.COM_CODE -- A회사코드, B회사코드가 일치하면서 AND A.FORM_TYPE = B.FORM_TYPE -- A양식종류, B양식종류가 일치하면서 AND A.FORM_SEQ = B.FORM_SEQ -- A양식순서, B양식순서가 일치하는 조건이면 조인 WHERE A.BAsic_form_tf = 1 -- 양식 메인 테이블에서 기본 양식만 선택 AND A.FORM_TYPE = 'SI030' -- 양식 메인 테이블에서 특정 양식(판매) 유형만 선택 AND B.COL_CD = 'user_price_vat' -- 양식 상세 테이블에서 'VAT 포함' 항목만 선택 ) B -- 서브쿼리 내용을 B라고 명명 ON A.COM_CODE = B.COM_CODE -- A회계 테이블과 B메인/상세양식 통합 테이블과 회사코드 같으면 조인
SQL
복사
테스트코드 제외 쿼리문 붙이지 말고 [… 이하 동일] 이렇게표기하기
이 쿼리는 특정 조건에 맞는 회사(COM_CODE, COM_DES)를 조회하기 위해 두 개의 테이블과 한 개의 서브쿼리를 사용하는 SQL입니다.
FORM_TYPE이 'SI030'이고, 기본 양식(BAsic_form_tf = 1)에 해당하며, 세금 정보(COL_CD = 'user_price_vat')가 있는 회사의 코드와 설명을 조회.
(1) 세금 관련 데이터 분석:
특정 FORM_TYPE과 세금 관련 데이터(user_price_vat)를 보유한 회사 목록을 식별.
(2) 목록 생성:
세금 데이터를 포함하는 기본 양식을 사용하는 회사들만을 별도로 분류해 관리 가능.
(3) 정책 적용:
특정 FORM_TYPE 기준으로 세금 관련 규정이나 혜택을 적용하기 위한 기준 마련.
(4) 데이터 검증 및 정합성 확인:
기본 양식(BAsic_form_tf = 1)이 정확히 설정된 회사들의 데이터를 검증하고, 세금 관련 정보(COL_CD)가 포함되어 있는지 확인.
(5) 리소스 타겟팅:
특정 조건을 만족하는 회사에 대한 리소스를 집중적으로 할당하거나, 맞춤형 서비스를 제공.
최초 요구사항
즉, 정리하면 VAT 미포함 품목을 입력할 때, ‘단가vat포함’ 항목에 ‘0’으로 표기되면 기능이 불완전한 느낌을 주니, [단가 * (1+적용부가세율)]이 적용된 값이 표기되도록 하자 (단, 사용자가 직접 단가 금액을 입력할 때는 제외하고)
다시 말해, VAT포함 항목이던, VAT미포함 품목이던 부가세를 직접 사용자가 입력해서 사용하게끔 하는게 더 정확한거 같다
우려사항 1
판매입력에서 '단가(vat포함)' 항목을 사용중이면서, VAT미포함 품목을 입력하는 경우, 기존 '0'값이 호출되어야 할 부분에 '특정금액' 값이 호출됨
DB 데이터 추출 값 1
A타입 : 미표기 되었던 금액이 새로 생성되는 경우 (입력화면, 수정 O ➜ Mig. 진행했을까?)
Job 진행 시 영향 받는 고객사 추정치 계산 = ['기본' 판매양식에 단가(vat포함) 항목을 추가하여 사용하고 있는 회사코드] ∩ [최근 1달 간 입력한 판매전표 중 단가(vat포함) 값은 '0', 단가 값은 '0'이 아닌 전표 보유 회사코드]
데이터 추출 기준 해석
(1) 문제
현 시점으로부터 기획 건이 적용되면 앞으로 단가(vat포함) 항목을 입력할 때, 기존 ‘0’값으로 호출되어야 할 영역에 ‘특정금액[단가 * (1+적용부가세율)]이 적용된 값’이 표기됨
(2) DB 추출 기준 1
① 기본 판매입력 화면 양식에 단가(vat포함) 항목을 추가하여 사용하는 회사
② 최근 1달 기준, 입력한 매출전표 중 단가(vat포함) 값은 ‘0’, 단가 값은 ‘0’이 아닌 전표를 보유한 회사
➜ ①, ②의 교집합에 해당하는 회사
(3) 기준 1 사유
① 기본 판매입력 화면 양식에 단가(vat포함) 항목이 있으면 앞으로 매출전표를 입력할 때, 단가(vat포함) 항목에 ‘특정금액[단가 * (1+적용부가세율)]이 적용된 값’이 표기됨
Default값인 기본 양식이 아니더라도 영업 · 구매 등 각 담당자 별로 다르게 Customizing해서 양식을 만들어 쓰고 있을 경우,
이 때문에 최근 1달 기준, 즉 가장 최근에 매출전표 입력했을 때,
이미 최근 1달 간 입력한 전표 중 단가(vat포함) 값은 ‘0’, 단가 값은 ‘0’이 아닌 전표를 보유한 회사
우려사항 2
Job 진행 시 영향 받는 고객사 추정치 계산 = [입 ∙ 출력 양식 항목에 단가(vat포함) 계산식이 걸려있는 양식을 보유한 회사코드
'단가(vat포함)' 항목을 계산식에 포함하여 사용중인 경우, 견적서 ∙ 주문서 ∙ 판매 등 어떠한 입력화면에 있는 기본 ∙ 추가 등 어떠한 양식에서라도 임의로 추가된 항목 (ex. 금액1) 중에서 계산식 설정에 [단가(vat포함)] 항목이 들어가 있는 경우 관련 항목에서 표기되는 값이 전부 변경됨
DB 데이터 추출 값 2
B타입 : 기존에 입력한 금액이 틀어지는 경우 (출력화면, 수정 X)
출력화면 (판매현황 ∙ 거래명세서 등)에 있는 여러 양식 (기본 ∙ 추가)들에 추가된 항목 (ex. 사용자지정1) 중에서 계산식 설정에 [단가(vat포함)] 항목이 들어가 있는 경우
지니가 시뮬레이션 만든 상황 :
우리회사 <> 거래처
처음 : VAT 별도 품목 ⇒ 단가(VAT포함)으로 받을게
중간 : 이윤이 적어져서 안되겠어
마지막 : 단가(VAT포함)
문의 1. 상황이 바껴서 다 바꿔야 됨 수기로 (1회성) + 어떤 품목이 어떤 세팅값 봐야하는데 불편함
문의 2. 매번 상황이 바뀔수도 있는데 그 때마다 품목별 세팅값 바꿔야하냐? (다회성)
1.
신규 기능 적용 이후, 예상되는 우려사항을 상황별로 나누어 DB 데이터 추출
① 미표기 되었던 금액이 새로 생성되는 경우 (전체 고객사 대비 3.8%)
➜ 공지사항으로 관련 내용 미리 안내 후, 업데이트 진행하도록 CS 부서와 논의
② 기존에 입력한 금액이 틀어지는 경우 (전체 고객사 대비 0.61%)
➜ 고객 데이터 및 영향도 확인 후, 프로젝트 진행여부에 대한 판단지표로 활용
역할 : 웹 서비스 기획 / ERP 신규 서비스 기획을 위한 사전 데이터 추출 및 CS 부서와의 커뮤니케이션
프로젝트 진행 시, 실제로 영향 받는 고객사, 전표, 양식 등 추정치 파악 필요
관련 고객 데이터 추출 후, CS 부서에 내용 전달
ERP 신규 기획 건으로 기존 데이터가 변경되어야 하는 상황
프로젝트 진행 여부 의사결정을 위해 신규 서비스 적용 시 영향 받는 고객사, 전표, 양식 등 추정치 파악 필요
타 부서와의 효율적인 커뮤니케이션과 고객 지향적인 서비스 제공을 위한 ‘SQL’ 활용
ERP 업데이트로 인해 예상되는 우려사항을 해결하고자 SQL Query 활용, 고객사 DB 추출 ∙ 영향 정도 파악
ERP 신규 기획 건으로 기존 데이터가 변경되어야 하는 상황
프로젝트 진행여부를 재고하고자 영향 받는 고객사, 전표, 양식 등 추정치 파악 필요
예상되는 우려사항을 상황별로 나누어 SQL Query문을 활용, 고객사 DB데이터 추출
정량적 수치 기반 자료로 유관부서와의 원활한 커뮤니케이션 달성
신규 서비스 기획 건 진행 여부 의사 결정을 위해 SQL쿼리문을 활용한 고객사 유형 별 가설 시뮬레이션
기능 변경 기획으로 인해 영향을 받을 수 있는 고객사 유형 가설 시뮬레이션 → 기획 건의 진행 여부 의사결정을 위한 영향도 측정 과정에서 SQL쿼리문 활용을 통한 고객사 DB 추출
ERP 업데이트로 인해 예상되는 우려사항을 해결하고자 SQL Query 활용, 고객사 DB 추출 ∙ 영향 정도 파악
목표
2) 신규 기능 추가 프로젝트 진행 여부에 대한 판단(보류)과 장·단점을 고려하여 기능 개선
Pros. 서비스 사용 편의성 증대 = 기획의도
Cons. 고객사 DB 데이터 변경 우려 = 진행 여부 판단
개인 업무 R&R
목표 : 규모 파악
(1) ‘VAT 자동 계산’이라는 신규 기능이 추가됨에 따라, 실제로 영향 받는 고객사, 전표, 양식 등 추정치 파악
(2) 고객 DB 기준, 정량적인 수치 데이터를 근거로 신규 기획 진행에 대한 타당성 여부 확인
(3) 임팩트가 클 시, 발생될 예상상황 별로 대응방안 마련
문제 정의 : 영향 받을 만한 요소 / 영향
전략 : 기획으로 인해 영향받는 그룹 속성 분류 최대한 ‘MECE (누락없고, 중복없고)’로 해결 할 수 있는 방안 도출
(1) 기능 type 분류 : A1.판매 입력 양식(입력양식), A2.매출 전표(저장전표), B.거래명세서(출력물)
내용쓰기
(2) SQL을 통한 고객사 CASE별 규모 파악 및 가설검증
내용쓰기
(3) 각 CASE별 대응방안 마련
A1. 업데이트 공지 팝업
A2. 데이터 Mig. + 상담문의로 해결
B. 강성 상담 프로세스 구축 or 해지 고려
큰 고객사 타입 분류 (데이터 추출 기준의 명확한 정의/ 각각 케이스에 따른 대응방안 마련 필요 )
영향 이후 고객사 예상 액션 가설 수립 > 각 케이스 별 공지 팝업, 혹은 영향 받는 고객사 데이터 Mig. 추가 상담 문의 수 예측 등 대응방안 솔메 도출
실행방안 : SQL 짠거 SQL 써서 검증하자!
sql 어떻게 썻어? 쿼리 어떤거야?
변수는 뭐였어?
쿼리문 해석해봐 어떤 테이블 / 어떤 컬럼 데이터를 어떤 기준으로 조인할거야?
(3) 어떤 기준으로 정하지?
그거 어떤 형식으로 정리해서 문제를 잘 보여줄 수있는 방법이 뭐야?
(4) 어떻게 그룹화해서 편하지?
CNT 를 써서 데이터를 합치게 된 이유 >> 그래서 CNT 로
정확히 대응방안이 어떤거였는데?
(A. 업데이트 공지 팝업 > B. 데이터 Mig. + 상담문의로 해결 > C. 강성상담, 해지고려) + 솔메 도출 + 팀 내에서 추가로 의사결정한 부분 (강성 고객이면 버려도 된다)
문제 정의 : 유저 페르소나 (ERP에서 단가와 VAT를 어떻게 사용하고 있는지) > 영향 받을 만한 게 기능들이 무엇인지 (A.판매입력화면, B.매출 전표, C.거래명세서…) >
고객사유형1, 유형2 나눈 기준
기존 고객사중에 기획 적용 이후에 앞으로 신규 전표를 만드는 경우 (미래) 풀어서 써보기
기존 고객사중에 어떤 전표이던 vat포함 항목이 생성되어 있는 경우
(독립변수 : 기본 입력 양식 테이블 + 종속변수 : 기존 고객사 매출 전표 테이블 )
ㄴ 벤다이어그램 으로 표현
- 회계 테이블 + 전표 양식 (매출전표, 판매전표) 테이블
기존 고객사 중에 기존에 있었던 전표가 바뀌는 경우 (과거) 풀어서 써보기
기존 고객사중에 어떤 전표이던 vat포함 항목이 생성되어서 이미 전표를 만들어 놓은 경우
1.
향후 기획 진행으로 서비스 개선이 반영되었을 때 영향을 받을 것 같은 고객사유형1, 유형2
1. 기존 고객사 중에 기획 적용 이후 신규로 전표를 생성하려고 하는 고객사
a.
기존 축적된 DB가 크지 않아서,
[문제 정의 : 영향 받을 만한 기능들이 무엇인지 파악 (A.판매입력화면, B.매출 전표, C.거래명세서…)]