지난 글에서도 강조했던 것처럼 쿼리를 잘하기 위해선 화려한 SQL 스킬보다는 요청사항을 해석할 줄 알고 이를 쿼리로 잘 번역하는 것이 가장 중요하다고 생각합니다. 쿼리를 잘하는 것은 마치 단어를 많이 외우는 것보다 화자의 맥락을 잘 이해하고 그에 맞는 적절한 대답을 할 줄 아는 것이 외국어를 더 잘한다고 판단하는 것과 비슷하다고 생각하기 때문이에요.
그래서 이번 글에서는 그렇게 강조한 요청사항을 잘 해석하는 방법에 대해 설명해보려고 합니다.
“안녕하세요 OO님,
이벤트 당첨 안내를 위해 2023년 12월에 신규 가입한 사용자의 아이디를 쭉 뽑아주실 수 있을까요?”
보통 우리는(여기서 우리는 요청자를 의미합니다.) DA에게 이런 식으로 요청을 하게 됩니다. 위의 요청사항은 쿼리문을 구성하는 중요한 두 가지 요소가 포함되어 있습니다. 바로 조건과 값이 그것입니다.
보통 일반적인 문장으로 구성된 요청사항을 쿼리로 번역하려면 조건과 값처럼 쿼리문을 이루는 여러 가지 요소로 쪼개야 하는데요. 대부분의 비전공인 요청자들은 “나는 그저 당첨 안내를 위해서 12월 신규 가입한 사용자의 아이디가 필요한 건데 대체 뭐가 조건이고 값이라는 거야? 그냥 저것 자체가 값 아니야?” 이라고 생각하실 수 있겠습니다만 해당 요청사항에서 값은 “신규 가입한 사용자의 아이디”, 조건은 “2023년 12월 가입”으로 번역됩니다.
- 값: 사용자 아이디
- 조건: 2023년 12월 가입
아직 조금 어려우신가요? 이런 차이가 발생하는 이유를 알게 되면 좀 더 명확하게 이해가 될 겁니다.
보통 우리가 DA에게 전달받은 데이터는 업무에 필요했던 형태 그대로 전달받기 때문에 그 자체가 값인 형태로 전달받는 경우가 대부분입니다. 다시말해, 스프레드시트 혹은 엑셀을 통해서 더 가공할 필요가 형태 혹은 값이라는 겁니다. 여기서 눈치가 빠르신 분들은 이해가 되실 텐데요.
위의 예시처럼 DB에는 우리가 원하는 데이터만 깔끔하게 기록되지 않기 때문에 엄청난 양의 데이터 사이에서 요청자가 원하는 데이터를 정확하게 필터링하는 작업을 거쳐야 합니다. 원하는 데이터를 제대로 추출하기 위해선 필터링할 조건을 명확하게 정의하는 것이 첫 번째 입니다.
하지만 여기서 끝이 아닌데요! 여기서 끝낸다면 위의 요청사항을 제대로 수행했다고 보기 어렵습니다.
요청사항을 정확히 수행하기 위해선 요청자의 의도 자체를 제대로 파악하고 숨겨진 조건 또한 찾아낼 줄 알아야 합니다. 센스가 있는 DA라면 요청사항을 확인하면서 이렇게 되물을 겁니다. “당첨자 안내하는 거면 광고 수신동의 여부 확인해서 전달하셔야 하는 거죠? 그러면 동의한 사용자만 추려서 드릴게요.”
이렇게 되면 값과 조건에 다음과 같은 변화가 생깁니다.
- 값: 사용자 아이디
- 조건: 2023년 12월 가입, 광고 수신을 동의
그럼 한 발짝 더 나아가보겠습니다. 요청자가 다급히 DA를 부르며 이렇게 외칩니다. 죄송해요! 회의에서 메일도 보내기로 해서 이메일도 필요할 것 같아요!! 그렇다면 조건과 값은 아래와 같이 되겠지요.
- 값: 사용자 아이디, 이메일
- 조건: 2023년 12월 가입, 광고 수신을 동의
자 이제는 조금 감이 오시나요? 요청사항을 쿼리문으로 잘 번역하기 위해선 요청사항 안에 담겨있는 요소들을 정확히 쪼개야 하고 그것을 넘어 요청자의 의도 자체를 이해하여 숨겨진 조건들 또한 찾아낼 수 있어야 합니다.
앞서 강조했던 것처럼 저는 현업러가 본인의 분야를 가장 잘 알기 때문에 쿼리를 더 정확하고 섬세하게 변역할 수 있다고 생각해요. 그럼 효율적이고 주도적으로 업무를 수행할 수 있도록 다음 글에서는 쿼리문을 작성하기 위해 SQL을 활용하는 방법과 함께 돌아오겠습니다.
함께 성장해요.
'데이터분석' 카테고리의 다른 글
[SQL 기본] 정말 쉬운 예시 (1) | 2023.12.22 |
---|---|
[SQL 기본] SELECT, FROM, WHERE (0) | 2023.12.20 |
[SQL 기본] 그래서 쿼리가 뭐에요? (0) | 2023.12.13 |
비전공자도 데이터 다루는걸 배워야하는 이유(2) (3) | 2023.12.07 |
비전공자도 데이터 다루는걸 배워야하는 이유(1) (1) | 2023.12.06 |