분류 전체보기 132

MySQL Isolation Level 정리

MySQL Isolation level은 동시성 제어를 위한 설정 값으로, 동시에 실행되는 여러 트랜잭션 간에 데이터 일관성을 유지하기 위해 사용된다. 값에 따라서 다른 트랜잭션에서 commit을 했더라도 볼 수 있을수도 있고, 없을 수도 있다. Isolation Level을 설정할 때 고려해야 할 점은 데이터 일관성과 성능 사이의 트레이드오프다. Isolation Level이 높을수록 데이터 일관성은 유지되지만 성능이 저하된다. 반면에 Isolation Level이 낮을수록 성능은 좋아지지만 데이터 일관성이 보장되지 않는다. 따라서, 요구사항에 따라서 적절한 Isolation Level을 선택하는 것이 중요하다. 값의 종류는 아래와 같이 4가지로 나누어져 있다. Read Uncommitted Read ..

발리 물리아 빌라스 후기 / 발리 신혼여행 / 물리아 풀빌라 리조트

벌써 신혼여행으로 발리를 다녀온 지 4개월이 지났다. 4개월 밖에 지나지 않았지만 오랜 된 일처럼 느껴져서 더는 미루지 말고 즐거웠던 기억들을 기록해야겠다는 생각이 들어서 이 글을 쓰고 있다. 발리 여행 중 물리아 리조트에서 2박 3일이 가장 기억에 남아서 발리 첫 번째 포스팅으로 선택했다. 발리 물리아 물리아는 발리 누사두아에 있는 럭셔리 리조트 중 하나다. 2012년에 건축된 총 500여개의 객실을 보유하고 있는 발리 물리아 풀빌라 리조트는 아름다운 누사두아 해변을 따라 자연과 조화를 이루고 있는 대형 리조트이다. 프라이빗 해변과 6개의 수영장 그리고 여러 종류의 고급 식당이 있고, 자연 친화적인 경관가 내부시설 또한 훌륭했다. 또, 요가 같은 프로그램도 운영하고 있다. 물리아는 다양한 형태의 숙소(..

Pandas pivot_table 예제 및 설명

Pandas pivot_table 예제 및 설명 Pandas의 pivot_table은 데이터를 요약하고 분석하기에 유용한 도구입니다. 피벗테이블을 사용하면 특정 칼럼의 Data들을 column으로 해서 특정 값을 aggregate하는 새로운 분석 테이블을 만들어서 데이터를 분석할 수 있습니다. (예를 들어, g특히, 여러 개의 column으로 group by 되어 있는 테이블에서 한 번 더 group by를 해서 aggregate할 때 유용합니다. 피벗테이블이란? Pivot table은 스프레드시트 프로그램(예: Excel, Google Sheets)에서 자주 사용되는 데이터 요약 기능 중 하나입니다. Pivot table은 원시 데이터를 기반으로 요약된 정보를 생성하는 것으로, 데이터를 쉽게 분석하고 ..

Github action 개요 및 주요 개념

개요 Github Action은 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구이다. 간단하게 말하자면 Github에서 직접 제공하는 CI/CD 도구. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있다. Workflow는 Runners라고 불리는 Github에서 호스팅 하는 Linux, macOS, Windows 환경에서 실행된다. 그리고 이 Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있다.(self-hosted runner) Github 마켓 플레이스에는 여러 사람이 공유한 Workflow는 찾을..

Airflow Scheduler 역할 및 성능 개선 정리

Scheduler 개요 Scheduler는 Airflow의 주요 컴포넌트 중 하나입니다. Airflow의 스케줄러는 모든 작업과 DAG를 모니터링하고, 해당 작업들의 의존성이 완료된 후에 작업 인스턴스를 트리거합니다. 내부적으로 스케줄러는 서브프로세스를 생성하여 지정된 DAG 디렉토리의 모든 DAG를 모니터링하고 동기화합니다. 기본적으로 1분마다 스케줄러는 DAG 파싱 결과를 수집하고, 활성화된 작업들이 트리거될 수 있는지 확인합니다. 즉, Scheduler가 실행되지 않으면 DAG을 실행시킬 수 없습니다. Scheduler의 역할은 크게 아래와 같습니다. DAG(Directed Acyclic Graph)의 실행 스케줄링: Airflow에서 DAG는 작업들의 연결을 정의한 것이며, scheduler는 D..

Airflow Task 우선순위 설정하기(Priority weights)

Task Priority Weights 이 글은 Airflow Task의 우선순위를 priority_weight 파라미터와 weight_rule 을 이용해서 관리하는 방법을 설명합니다. 최근에 많은 양의 DAG을 rerun해야하는 경우가 발생했는데 우선순위가 높은 DAG의 스케쥴이 뒤로 밀려서 불편함을 겪어서 Task우선순위를 설정하는 방법에 대해서 찾아보게 됐습니다. Airflow는 task의 우선순위를 결정하기 위해 task의 priority_weights를 사용합니다. priority_weight는 각 task에 대해 정의되어 있으며, Airflow scheduler가 task를 실행할 때 사용되고, weight_rule는 priority_weight을 계산하는 방법에 대한 설정 값입니다. 해당 값..

Airflow Error - Triggerer's async thread was blocked for xx seconds, likely by a badly-written

이슈 정리 Sentry에서 Trigger에 Triggerer's async thread was blocked for xx seconds, likely by a badly-written .. 하는 에러가 Sentry를 통해 많이 발생한 것을 확인. 이슈가 발생한 코드 async def block_watchdog(self): """ Watchdog loop that detects blocking (badly-written) triggers. Triggers should be well-behaved async coroutines and await whenever they need to wait; this loop tries to run every 100ms to see if there are badly-wri..

데이터 관련 직무 정리 (데이터 엔지니어, 분석가, 데이터 사이언티스트, 머신러닝 엔지니어등)

이번 글에서는 데이터와 관련된 직무들을 정리해보려고 합니다. 최근에 AI가 많은 사용되면서 데이터의 중요성이 높아지게 됐고, 그 결과로 데이터와 관련된 많은 직무들이 나타났습니다. 그 전에도 사실 비슷한 업무들을 하는 사람들이 존재 했지만 지금 처럼 데이터 엔지니어, 머신러닝 엔지니어등이 직군이 제대로 분리되어 있지는 않았습니다. 그렇기 때문에 아직은 서버 엔지니어나 프론트 엔지니어에 비해서 인원도 적고, 회사 별로 하는 일도 조금씩 다르기 때문에 항상 취업을 준비하시는 분들에게 혼란이 있는 것 같습니다. 각각의 직무가 하는 일은 다르지만 하나의 공통점은 데이터플랫폼을 만들거나 데이터플랫폼을 기반으로 일을 한다는 사실입니다. 그래서 각각의 직무에 대해서 살펴보기 전에 데이터 플랫폼에 대한 간단한 설명과 ..

일상/정보 2023.02.28

오피스제주 사계점 (제주 공유오피스 / 개발자 원격근무 / 사계리 숙소 )

조금? 늦었지만 지난 10월에 2박 3일 동안 다녀온 오피스제주 사계점을 소개하려고합니다. 오피스제주 조천점 포스팅 제주도 공유 오피스 - 오피스 제주 (feat. 개발자 원격 근무) 안녕하세요! 지난 봄에 방문했던 제주도 조천에 위치한 공유 오피스인 오피스(O-Peace) 제주를 소개해 보려고 합니다. 저는 이곳에서 4일 정도 원격 근무를 했는데 개인적으로 대만족이었습니다. blog.doosikbae.com 이벤트 당첨! 전에 오피스제주 조천점에 여러 번 방문했었는데 우연히 인스타그램 이벤트에 당첨되서 숙소 까지 방문하게 되었습니다!! 위 이벤트에 전 여친(=현 와이프)를 태그해서 당첨이되서 함께 다녀왔습니다. 조천점에서는 숙소는 이용하지 못하고 공유오피스만 이용했었는데 사장님들께서 디자인 감각이 워낙..

Traveling/한국 2023.02.26

좋은 함수 작성하기 (좋은 코드란 😇)

최근에 다양한 데이터 분석이나 데이터의 매칭을 위해서 문자열 처리나 SQL 관련 그리고 다양한 데이터 프로세싱 함수를 많이 작성하고 있다. Seed 단계 스타트업의 바쁜 일정 속에서 좋은 코드를 작성하는 것은 항상 어렵고 도전적인 일인 것 같다. 기능이 working한 후에 다시 코드를 보면 코드가 마음에 드는 경우가 거의 없다. 조금 더 의식적으로 좋은 코드를 작성하려고 노력해야 할 것 같다. 평소에 가지고 있던 생각을 기반으로 GPT를 사용해서 정리해보려고 한다. 좋은 함수를 작성하는 방법에 대한 글을 먼저 작성하고, 다음 포스팅으로 파이썬에서 좋은 함수를 작성하는 법에 대해서 한 번 정리해보려고 한다. 다음 포스팅에서는 파이썬의 언어적 특성을 고려하면서 조금 더 커스터마이징된 구체적인 방법을 정리해..

반응형