본문 바로가기

분류 전체보기150

Python 로깅 최적화 방법 Python 로깅 멋지게 하는 방법의 글을 참고해서 세팅한 후, Python에서 logging 모듈을 사용할 때, 로그가 과도하게 쌓이는 문제를 해결하는 방법을 정리합니다.1. 로그 레벨 낮추기현재 level="NOTSET"으로 설정되어 있으면 모든 로그가 기록됩니다. 필요 없는 디버그 로그를 줄이려면 INFO 이상만 기록하도록 조정합니다.logging.basicConfig(level=logging.INFO)수준사용 시점NOTSET DEBUG상세한 정보. 보통 문제 진단할 때만 필요합니다.INFO예상대로 작동하는지에 대한 확인WARNING예상치 못한 일이 발생했거나 가까운 미래에 발생할 문제ERROR더욱 심각한 문제로 인해, 소프트웨어가 일부 기능을 수행하지 못했습니다.CRITICAL심각한 에러. 프로그.. 2025. 3. 28.
Python 터미널 명령어에서 인자 받기: argparse 터미널에서 Python 스크립트를 실행할 때 특정한 파라미터(인자)를 입력해서 동작을 다르게 하고 싶을 때가 있습니다. 예를 들어, ETL(Extract, Transform, Load) 프로세스를 실행하는데 모드를 선택해서 실행하고 싶다면 다음과 같이 실행할 수 있습니다.python main.py --mode=1이 글에서는 Python에서 argparse 모듈을 활용하여 터미널에서 입력한 값을 받아오는 방법을 자세히 설명하겠습니다.🔍 argparse란?argparse는 Python에서 터미널에서 입력된 명령줄 인자(Command-line arguments)를 처리하기 위한 표준 라이브러리입니다. 이를 활용하면 사용자가 직접 입력한 값을 받아서 프로그램의 동작을 제어할 수 있습니다.기본적으로 Python.. 2025. 3. 28.
지표에 대하여(종류, 정의 프로세스, Metric Store) 현업 프로젝트에서 지표를 활용할 수 있게 정리한 글이다. 이 전 글인 문제정의 파트와 함께 보면 좋다. 인프런의 [카일스쿨] PM을 위한 데이터 리터러시(프로덕트 데이터 분석) 강의를 참고하였다. 목차1. 좋은 지표의 조건2. 지표의 종류3. 프로젝트 성공과 관련된 지표4. 지표 정의 Process5. 지표 활용 가이드6. Metric Store 좋은 지표의 조건Objective:  업무의 목적과 관련된 지표Measureable: 측정 가능한 지표Actionable한 지표: 지표를 토대로 행동을 할 수 있는 지표Understand: 누구나 이해할 수 있는 지표Specific: 정의를 명확하게 한 지표 다양한 관점으로 해석되지 않는 지표 지표의 종류Input MetricOutput Metrice을 구성하는.. 2025. 3. 19.
문제 정의 프레임워크 3가지(MECE, Logic Tree, So What) 복잡한 문제를 단순화 시켜 보다 쉽게 문제 정의를 할 수 있는 문제 정의 프레임워크 3가지를 소개하는 글이다. 목차1. MECE2. Logic Tree3. So What? Why So? 1. MECEMutually Exclusive Collectively Exhaustive의 약자로, 상호 배타적이면서 모두 합하면 전체가 된다는 뜻이다. 아래 이미지처럼 상호 배타적(ME), 집합적 완전성(CE) 2가지 조건을 모두 만족해야한다. 이 프레임워크를 사용하면 복잡한 문제를 단순화 시킬 수 있다.   예를 들어, 매출을 높여야한다는 과제가 주어졌다고 하면, 뭘 해야 매출이 올라가는지 모호하다. 이 때, MECE 프레임워크를 사용하면, 매출을 카테고리별로 작게 쪼갤 수 있다. 배달의 민족을 예로 들면, 크게 매장.. 2025. 3. 18.
지금까지 경험 점검(+앱 서비스 데이터 분석가가 된 이유) 2년차 데이터 분석가로써 현재의 나는 이러한 역량을 가지게 되었다. 1) 데이터 분석 역량- 프로덕트 개선에 필요한 지표 정의- 매출, 사용자 행동 데이터 분석(주로 BigQuery, MySQL, Python) 및 액션 아이템 도출- 결과 데이터 추출 및 대시보드 제작(주로 Looker Studio) 2) 데이터 엔지니어링 역량- 사용자 행동 로그 설계 및 데이터 QA(GA4, Firbase 기반)- 파이썬 기반 ETL 자동화 파이프라인 구축- 크롤링을 통한 공공 데이터 수집- 딥링크 파라미터 정의 현재 일하고 있는 부동산 중개 앱 서비스 회사에서는 다음과 같은 프로젝트를 진행했다.1)  Mobile Web Organic 앱 설치율 개선 프로젝트 - 문제 정의: Mobile Web은 APP보다 트래픽이 .. 2025. 3. 3.
GitHub 리포지토리 생성 시 선택하는 라이선스란? GitHub에서 리포지토리를 생성할 때, 초기 설정에서 "라이선스(License)"를 선택하는 옵션이 있습니다. 이 옵션은 해당 프로젝트를 사용하거나 수정, 배포하려는 사용자들이 어떤 규칙을 따라야 하는지 명시합니다. 간단히 말해, 라이선스는 소프트웨어의 사용 권한을 정하는 법적 문서입니다.라이선스를 설정하는 이유오픈소스 프로젝트를 공유할 때 라이선스를 설정하지 않으면, 다른 사용자는 해당 소프트웨어를 자유롭게 사용할 수 없습니다. GitHub의 기본 정책에 따르면, 라이선스가 없는 코드의 사용은 제한적이며, 이를 사용하려면 명시적인 허가가 필요합니다.라이선스를 추가하면 다음과 같은 이점이 있습니다:저작권 보호: 프로젝트에 대한 저작권이 저자에게 있음을 명시.사용 허가 범위 명확화: 다른 사용자가 코드를.. 2025. 1. 26.
.gitignore 이란? Git은 소스 코드를 관리하는 데 매우 유용한 도구입니다. 하지만 프로젝트를 진행하다 보면 버전 관리에 포함시키고 싶지 않은 파일들이 생기곤 합니다. 예를 들어, 개발 중 생성된 로그 파일, 컴파일된 바이너리 파일, 또는 민감한 정보가 담긴 환경 설정 파일 등이 그 예입니다. 이러한 파일들을 Git의 추적 대상에서 제외하기 위해 사용하는 것이 바로 .gitignore 파일입니다..gitignore 파일의 역할.gitignore 파일은 Git이 특정 파일 또는 디렉터리를 무시하도록 지시하는 설정 파일입니다. 이 파일에 정의된 규칙에 따라 Git은 불필요한 파일을 추적하지 않으며, 이를 통해 저장소를 깔끔하게 유지하고 불필요한 파일이 저장소에 포함되지 않도록 방지할 수 있습니다.주요 활용 예시빌드 아티팩트 .. 2025. 1. 26.
깃허브 액션 GCP 연동 방법 전체적인 흐름은 아래와 같다. 1단계: Local PC에서 Streamlit 코드 작성하고 테스트2단계: 테스트가 완료된 이후, Github Repo에 소스코드 Push3단계: Repository에 Push가 되자마자 Github Actions을 통해 GCE 서버로 해당 소스코드를 다운로드 받음4단계: 실 운영 중인 서버에 코드가 반영되어 업데이트가 되도록 함. 사전 준비Secrets and Variables 설정SSH_KEY 개인키 설정HOST : GCE 서버 외부 (External) IP 주소 설정USERNAME : GCE 서버 username 설정 준비 방법사전에 만들어둔 깃허브 Repository 접속[Settings > Secrets and variables > Actions] 클릭New rep.. 2025. 1. 21.
깃허브 액션(Github Actions) 기초 사용 방법 with GCP Github Actions이란, 소프트웨어 개발(ex. streamlit 대시보드)을 지원하기 위한 Github의 자동화 서비스이다.  주요 개념Workflows프로젝트 Repository의 .github/workflows/ 디렉터리에 저장된 YAML 파일 사용하여 정의워크플로 트리거에 의해 YAML 파일 사용Workflow 파일 생성아래 사이트를 참고https://docs.github.com/ko/actions/writing-workflows/about-workflowshttps://github.com/marketplace/actions/streamlit-app-action Workflow 파일 주요 코드주요 코드설명nameGithub Action Workflow의 이름run-nameWorkflow를 .. 2025. 1. 7.
24년 결산, 회고 올해 내가 계획했던 건 대부분 많이 이룬 것같다. 그래서 올해 이룬 것들을 정리해보았다. 1. 하루 3시간 이상 자기계발에 투자하기나는 앱시트로 자기계발에 투자한 시간을 전부 기록해두어서 총 시간이 자동으로 계산되게끔 해놓았는데, 이번연도는 지금까지 총 759시간을 투자했다. 3시간 x 365일 = 1,095시간이니까 69.3% 달성했다. 100% 달성하려면, 한달 평균 91.5시간(5,475분)을 투자해야한다. 아쉽게도 1월달과 7월 달을 제외하면 전부 평균에 미치지 못했다. 원인을 분석해보면, 2월에는 설날, 3월에는 이사준비 및 결혼식 4월도 이사준비 및 결혼식, 5월 이사, 8월 여행, 9월 추석, 10월 여행, 11월 휴가, 12월 여행이 있었다. 그럼에도 불구하고 딱히 행사가 없는 주말에 너무.. 2024. 12. 14.
이동욱 CTO님, 양승화 데이터분석가님과의 만남 이번년도에는 정말 운이 좋게도 내가 제일 닮고 싶은 인물 TOP2로 선정된 이동욱 CTO님과 양승화 데이터분석가님을 모두 뵐 수 있었다. IT기업에서 현업을 뛰다보니 자연스럽게 이 쪽 분야에서 유명하신 분들이 어떻게 그렇게 성장할 수 있었는지가 참 궁금했었다.특히 직업이 강사가 아니고, 현업을 뛰시는 분들인데 블로그, 강의, 강연, 책, 영상, 북토크 등을 통해 지식을 후배들에게 전파하고, 현업에서만 알 수 있는 문제들에 대해 이야기하는 점 때문에 더 많이 궁금했었것같다.먼저 동욱님과의 만남 후기에 대해서 적어보겠다. 동욱님은 사실 사내 인사팀에서 초청을 해주셔서 뵙게 되었다. 주제는 더 좋은 의사결정에 대한 이야기였다.정확하게 기억이 나지는 않지만 동욱님은 나와 비슷한 학과였었다. 나는 전자공학과였는데.. 2024. 11. 30.
데이터리안 그로스해킹 - 양승화 독서 회고 처음 그로스 마케터로 일을 시작하기 전부터 이 책을 3회독은 했었던 것같다. 그리고 나서 일하면서도 간간히 계속 봐왔었고, 까먹은 내용들도 많다보니 한번 내용 정리를 처음부터 끝까지 해야겠다는 생각을 했었는데, 마침 데이터리안에서 독서 챌린지에 더해서 양승화님을 직접 뵐 수 있는 기회까지 마련을 해주셔서 다시 한 번 독서를 하게 되었다. 예전에 읽었다가 지금 다시 읽으니 실무에서 겪어왔던 문제들에 대한 이야기가 많아서 하나하나 더 와닿았고, 한편으로는 앞으로 해야할 일이 정말 많다는 생각이 들었다. 지금 내가 다니고 있는 회사는 그로스 조직이 있지않고, 그동안 서비스 기획을 할 때 데이터를 크게 보지 않았기 때문에 데이터에 대한 중요함도 크게 느끼고 있지 않았었던 것같다. 그러다가 그로스 마케터로 취업을.. 2024. 11. 24.