#SQL #코딩테스트 #추천도서
: 2025년 3월 : 38번째 뉴스레터
🍀
안녕하세요 구독자님, 데이터리안 혜정입니다.
어느덧 3월이 찾아왔네요. 새 학기를 맞은 학생분들도, 새로운 직장으로 취업하거나 이직하신 분들도 계실 텐데요. 큰 변화가 없더라도, 3월은 봄을 맞이하며 자연스럽게 새로운 시작을 떠올리는 달인 것 같습니다.

구독자님의 공부와 실무에 모두 도움이 될 수 있도록, 이번 3월 뉴스레터에는 SQL 코딩테스트 팁과 SQL 추천 도서, 그리고 데이터 분석 실무 사례 두 가지를 준비했어요. 

다음 4월 뉴스레터는 첫 번째 화요일이 아닌 두 번째 화요일, 4/8에 발송될 예정입니다. 4월에도 알찬 소식과 함께 다시 찾아뵐게요. 오늘 뉴스레터도 보러와 주셔서 감사합니다 💌
1. 블로그 | SQL 코딩테스트 공부 방법부터 실전 노하우까지
2. 블로그 | 데이터 분석을 위한 SQL 참고 도서 추천
3. 블로그 | 처음 들어온 유저에게 구독을 유도하라!
4. 블로그 | 오전 11시까지 접속하지 않은 유저가 오늘 내로 접속할 확률은?
😎
SQL 코딩테스트
공부 방법부터 실전 노하우까지
안녕하세요, 데이터 분석가 선미입니다.
데이터리안에서 운영하는 오픈 채팅방에 SQL 코딩테스트에 관한 질문을 종종 올려주시더라고요. 
  • 보통 코딩테스트는 파이썬으로 보나요, SQL로 보나요? 난이도는 어느 정도일까요?
  • 보통 SQL 코딩테스트는 어떤 사이트가 가장 대중적으로 이용되는 편일까요?
  • 코딩테스트 문제 일부만 맞춰도 합격할 가능성이 있을까요? 생각보다 어려운 문제가 나와서 못 풀었네요.

제가 모험심이 좀 있어서 회사에 다니는 와중에도 다른 회사 지원도 해보고 또 링크드인 통해서 오퍼가 오면 사양하지 않고 가서 시험도 보고 면접도 다 보고 왔거든요. 그래서 코딩테스트 경험이 같은 연차 대비 많은 편인 것 같습니다. 지금 돌이켜보면 '이걸 그때 알았으면 참 좋았겠다' 싶은 것들이 몇 개가 있더라고요. 제 경험을 공유하면서, SQL 코딩테스트를 이제 준비하시는 분들부터 테스트 당일까지 며칠 안 남은 분들까지 팁을 얻어갈 만한 내용을 준비해 봤습니다. 그냥 친한 선배나 동료가 꿀팁을 알려준다고 생각하고 봐주시면 좋겠어요.


⋯⋯⋯

SQL 코딩테스트를 보는 이유

우선 'SQL'이 뭔지부터 알아야 합니다. SQL(Structured Query Language)은 데이터를 저장하고 출력하는 '데이터베이스'라는 프로그램을 다루는 언어에요. '데이터베이스'를 간단하게 말하자면 데이터를 저장하고 출력할 수 있게 하는 가상의 바구니입니다. 그 바구니에 새 데이터를 넣거나, 기존 데이터를 삭제하거나, 데이터를 보는 것 같은 조작을 하고 싶다면, SQL이라는 언어를 반드시 사용할 수 있어야 합니다.

데이터 분석가는 데이터를 분석하기 때문에 이 데이터베이스를 조작하는 언어인 SQL을 자유자재로 활용할 수 있어야 합니다. 그래서 특수한 경우를 제외한 거의 모든 데이터 분석가 채용 공고에는 SQL을 지원 자격, 즉 필수 요건으로 명시하고 있습니다.


    이미지 출처: 쿠팡 Business Analyst 채용 공고


    SQL 코딩테스트 유형 3가지
    'SQL 코딩테스트'라고 하면 온라인 플랫폼에서 보는 테스트만 생각하시는 분들이 많더라고요. 그런데 제가 경험한 테스트 유형은 이렇게 3가지였습니다.

    1. 온라인 플랫폼
    • HackerRank, 프로그래머스 등 온라인 코딩테스트 플랫폼에서 정해진 시간 안에 문제를 풀어 제출
    • 코딩테스트 플랫폼에서 코드를 직접 실행해 보면서 문제를 풀 수 있음
    2. 온라인 라이브 테스트
    • Zoom 같은 화상 플랫폼에 면접관과 함께 접속해 실시간으로 문제를 풀고 제출
    • 온라인 코딩테스트 플랫폼을 사용하지 않고, 메모장 등을 사용하는 경우가 있음
    3. 오프라인 테스트
    • 회의실 등에서 면접관과 함께 동석하여, 노트북으로 문제를 풀고 제출


    ⋯⋯⋯

    각 유형에 관한 자세한 설명과 저의 경험은 아래 블로그 글에서 확인하실 수 있어요. 코딩테스트를 앞둔 모든 분께 도움이 되었으면 좋겠습니다.

    📚
    데이터 분석을 위한
    SQL 참고 도서 추천!
    SQL이 뭔지 알았다면 이제 공부를 해봐야겠죠. 2019년부터 데이터 분석을 시작하려는 분들에게 온/오프라인으로 SQL 교육을 했는데요. 강의가 끝나고 항상 받는 질문 중 하나가 “강의 이후에 볼만한 책을 추천해 주세요”인 것 같습니다. 그래서 SQL 공부를 시작하시는 분들이 보면 좋을 만한 책을 데이터리안 팀원들과 함께 정리해 봤습니다.

    ⋯⋯⋯

    SQL 첫걸음 | 아사이 아츠시 저
    ✅ 데이터리안 캠프 대표 강사 윤선미 Pick

    처음 회사에 입사해서 저에게 SQL을 가르쳐주신 사수님이 추천한 책입니다. 설명과 예제가 친절하고 꼼꼼하게 나와 있어서 SQL 공부를 이제 막 시작하는 분들이 보기 좋습니다. SQL 데이터 분석 캠프 | 입문반을 수강하신 분들이라면, 공부한 것을 정리하는 기분으로 재밌게 읽으실 수 있을 거예요. 책이 작아서 들고 다니면서 보기에도 좋았습니다.


    데이터 분석을 위한 SQL 레시피 | 가사키 나가토, 다미야 나오토 저
    ✅ SQL 입문반 강사 이보민 & SQL 마스터반 강사 송혜정 Pick

    실무에서 바로 써먹을 수 있는 SQL 레시피입니다. 실제로 업무할 때 참고가 되는 책이고요. 정형화된 테이블 데이터뿐만 아니라 회사에서 실제로 마주칠 수 있을 만한 로그 데이터를 가공하여 추출하는 방법에 대해서 설명해 주고 Google BigQuery, HiveQL, Presto 등 다양한 플랫폼에서 쿼리를 어떤 식으로 만들어야 하는지도 자세하게 나와 있습니다. 실제 현업에서 마주하는 요청 사항들과 정말 유사한 예시가 많아서 참고가 되는 책입니다.


    ⋯⋯⋯

    이외에도 데이터베이스 관련 추천 도서, 실무와 가까운 무료 SQL 튜토리얼 정보도 정리해 두었으니 자세한 내용은 아래 블로그 글에서 확인해 주세요.

    💌 데이터리안 블로그에 다양한 SQL 관련 글을 업로드하고 있습니다. SQL을 공부할 때는 데이터리안 블로그도 참고해 보세요.

    💪
    처음 들어온 유저에게
    구독을 유도하라!
    안녕하세요, 데이터 분석가 혜정입니다.
    어플을 설치하고 쉽게 유료 구독을 하는 서비스가 있는가 하면, 구독 화면을 보기도 전에 이탈해 버리는 서비스도 있습니다. 구독자님은 어떠신가요? '알라미'라는 알람 앱을 운영하는 딜라이트룸에서는 구독 전환율과 리텐션을 고려하여 이 구매 화면을 최적화하고 있다고 해요. 이번 글에서는 딜라이트룸의 사례를 공유합니다.

    * 이 글의 원문은 딜라이트룸(알라미) 테크 블로그에 업로드 된 “첫 구독 유도의 중요성”입니다.

    ⋯⋯⋯

    첫 구독 유도의 중요성
    Paywall(구매 화면)을 띄우는 시점과 관련해 여러 담론이 있지만 그중 하나의 정설로서 자리를 잡아가고 있는 전략이 있습니다. 설치 직후 노출이 빠를수록 빈번할수록 구독 전환에 좋다는 것이 바로 그것입니다. 물론 역으로 유저들의 앱 이탈도 클 것이기 때문에 부정 지표로서 유저 리텐션을 살피면서 최적화해야 합니다. 그러나 구독 전환을 높이는 데에는 탁월한 효과가 있는 전략임에는 틀림없습니다. 알라미의 경우 첫 설치 이후 신규 유저 온보딩이 끝나면 첫 구매 화면이 노출됩니다. 알라미에서는 이를 '온보딩 구매화면'이라고 부릅니다.

    이 중요한 온보딩 구매 화면이 알라미 Android에는 오랜 기간 없었습니다. 실험 진행 시 구독 전환율은 크게 올랐지만, 리텐션이 하락하는 경향을 보였기에 온보딩 구매 화면을 추가하지 않았어요. 이후 온보딩 구성 자체에 큰 변화가 생기면서 구매 화면을 띄우는 실험을 다시 진행하였습니다. 다행히 리텐션 하락 없이 구독 전환율이 올라 현재의 Android는 온보딩 구매 화면을 지니고 있습니다.
    눈에 띄게 증대된 전체 구독 전환율

    이처럼 리텐션 하락 여부를 살피며 조심스레 온보딩 구매화면을 활용하면 크게 구독 전환율을 높일 수 있습니다.

    ⋯⋯⋯

    구매 화면을 더 일찍 노출하는 것은 어떤 지표를 크게 개선 시켰을까요? 알라미의 더 자세한 실험 결과는 아래 블로그 글에서 확인하실 수 있습니다 :)

    ⏰
    오전 11시까지 접속하지 않은 유저가
    오늘 내로 접속할 확률은?
    오늘 뉴스레터의 마지막 글로는 데이터 분석가 박장시님의 글을 소개합니다.
    만약 유저가 우리 서비스에 오전 11시까지 접속하지 않았다면, 오늘 내로 유저가 접속할 확률은 얼마일까요? 이 확률을 구하기 위해서는 특정 날짜의 언제 접속했는지, 혹은 접속하지 않았는지에 대한 데이터가 필요합니다. 이 데이터와 조건부 확률을 이용하면 유저의 접속 확률을 계산할 수 있어요. 이런 통계 용어를 보면 괜히 어렵게 느껴지지만, 이번 글의 설명을 보면 조금은 쉽게 이해하실 수 있을 거예요.

    * 이 글의 원문은 박스앤위스커 블로그에 업로드 된 ‘유저가 접속할 확률 계산하기’ 입니다.

    ⋯⋯⋯

    조건부 확률의 이해
    조건부 확률(conditional probability)이란 특정 사건이 일어났다는 조건이 주어진 상태에서, 다른 사건이 일어날 확률을 의미합니다.

    예시
    • : 그녀가 나를 사랑(Love)하는 사건
    • : 그녀가 나를 보고 웃는(Smile) 사건
     
    P(L)은 그녀가 나를 사랑할 확률입니다. 확률을 ‘불확실한 사건이 일어날 것이라는 믿음의 정도’라고 이해한다면, P(L)은 그녀가 나를 사랑한다는 믿음의 크기라고 할 수 있죠.

    그런데 재미있는 사건이 하나 일어납니다. 요즘 그녀가 나를 보면 자주 웃습니다. P(S)는 그녀가 나를 보면 웃는 확률입니다. 그녀가 나를 보고 자주 웃기 전에 그녀가 나를 사랑하리라는 믿음은 아주 약했습니다. 즉, P(L)은 아주 작은 숫자였던 것이죠.

     
    하지만, 그녀가 나를 보며 자주 웃는 것을 보니 이 믿음이 커졌습니다. 이를 확률로는 조건부 확률, P(L∣S)로 표현합니다. 라는 사건이 일어났다는 조건 하에서, 이라는 사건이 일어날 확률을 의미합니다. 아래는 그녀가 나를 보며 웃을 경우에, 나를 사랑할 가능성이 얼마인지 나타내는 숫자입니다.
     
    • P(L∣S)=0.8
     
    여기서 중요한 것은 ‘그녀가 나를 보고 웃는다’는 새로운 정보를 확률에 반영했다는 점입니다. 이 정보가 있기 전에는 단순한 짐작이었지만, 새로운 정보가 추가되었으니 이 짐작을 수정해야 합니다. 여기서는 주어진 정보를 최대한 활용한다는 점이 중요합니다.
     
    ref.: John K. Kruschke (2010), Doing Bayesian Data Analysis: A Tutorial with R and BUGS, Academic Press - See ch4.


    ⋯⋯⋯

    이제 조건부 확률과 조금 가까워지셨나요? 👀 이 조건부 확률을 이용하여 유저의 접속 확률은 어떻게 구할 수 있을까요? 자세한 활용 사례를 아래 블로그 글에서 확인해 보세요.

     ✨ 구독자님! 데이터리안 콘텐츠와 함께 데이터 분석 능력을 업그레이드 해봐요

    💌
    월간 데이터리안 뉴스레터
    데이터리안
    데이터 분석, 데이터리안과 시작하세요
    contact@datarian.io