본문 바로가기

Computer Engineering

(23)
같은 Django model class에서 다른 schema가?(feat. Django는 이중인격?) (Update) Django에 해당 bug를 repoorting하고, PR을 올려서 merge되었습니다! https://github.com/django/django/pull/13982 Fixed #32425 -- Fixed adding nullable field with default on MySQL. by baidoosik · Pull Request #13982 · django/django ticket link: https://code.djangoproject.com/ticket/32425#ticket Hi, team. I wanna fix some picky issue. I suggest below code for solving this problem. (same code creates differe..
Mac OS Vagrant 설치 Vagrant Vagrant는 여러 프로바이더(Virtual Box, VMware, AWS등)을 이용해 로컬에서 테스트 환경을 쉽게 구성할 수 있도록 도와주는 workflow이다. Vagrant하나로 여러 프로바이더의 환경을 관리 할 수 있다. HashiCorp에 의해서 만들어진 도구이다. 장점은 개발 환경 설정 시간이 적게 들고, 한 번 구축하면 아주 편리하다. 자세한 내용은 아래 참조. www.vagrantup.com/ Vagrant by HashiCorp Vagrant enables users to create and configure lightweight, reproducible, and portable development environments. www.vagrantup.com Mac에 bre..
Computer Storage 종류 요즘 고성능 데이터베이스(Snowflake, BigQuery)들 그리고 RDB(Aurora)들을 보면 컴퓨팅과 스토리지를 분리한 아키텍쳐들이 많이 보인다. 이는 데이터는 공유하면서 컴퓨터 리소스만 따로 늘릴 수 있기 때문에 자원을 효율적으로 쓸 수 있는 아키텍쳐이다. 그리고 Storage간에 sync가 필요하지 않기 때문에 이를 위해 필요한 비용을 아낄 수 있다라는 아주 큰 장정을 가지고 있다. 작은 클러스터에서는 상관없겠지만 클러스터가 10개 이상 이라고 생각하면...... 어마어마한 비용이다. 스토리지를 분리하기 위해서는 NAS, SAN을 사용해야 될 것인데, 성능 문제로 SAN을 사용할 것 이다. 종류 내장 디스크 (Internal Disk) DAS (Direct Attached Storage) N..
MySQL InnoDB History란? Introduction (시작 전에 이 글은 MySQL 5.6 기준의 글입니다.) 왜 Innodb History에 대해서 알아야 할까요? 1. InnoDB의 MVCC의 동작 원리에 대해 이해하려면 History에 대한 이해가 필요합니다. 2. History List Length가 길어지면 많은 문제들이 발생합니다. (CPU Peak, DML delay) 3. 왜 DBA들이 hung transaction이나 long query를 모니터링하고, Kill 하는지 알 수 있습니다. (커뮤니케이션) MVCC (Multi Version Concurrency Control) 본격적으로 InnoDB History를 살펴보기 앞서 MVCC에 대해서 먼저 간략하게 설명하고 넘어가겠습니다. MVCC를 먼저 설명하는 이유는 ..
Snowflake 소개(Datawarehouse Solution) Introduction Snowflake는 Datawarehouse solution의 이름이자 회사의 이름입니다. 아직은 한국에서는 사용하는 회사를 본 적이 없지만, 미국에서는 굉장히 많은 회사에서 이용 중인 솔루션입니다. 최근에 IPO 신청하면서 미국 주식에 투자하는 국내 투자자들과 엔지니어들도 관심을 가지고 있지 않을까 하는 생각이 듭니다. 그래서 이번에 회사에서 Datawarehouse solution을 선정하기 위해서 Snowflake를 Research 및 Test한 내용과 개인적으로 Udemy에서 강의를 들으면서 공부한 내용을 이 글에서 소개하려고 합니다. 먼저 간단하게 Snowflake의 핵심 내용 및 Key Summary를 요약해보면, Snowflake의 가장 큰 특징은 위에서 보는 것과 같..
SaaS의 홍수 시대에서 Data Warehouse/Lake 구축은 어떻게 해야 할까? 지금은 바야흐로 SaaS의 시대이다. 출처: https://www.blendr.io/add-native-integrations/ 각 분야 별 대표 서비스 (사실 내가 들어본 각 분야별 서비스) Cloud Infra: AWS, Azure, GCP, Alibaba CRM: Salesforce, Hubspot CRM, ActiveCampaign 등 Marketing: Marketo, Hubspot, Mailchimp 등 CS: Zendesk, Sendbird Desk, Freshdesk HR: BambooHR, Workday Hiring: Lever, Greenhouse Payment: Stripe, PayPal 이런 수많은 SaaS들이 나오면서 여러 SaaS의 구독을 관리하는 서비스가 나오기도 하고, 여러 ..
파이썬은 얼마나 똑똑한가? Python은 얼마나 똑똑한가? 제목만 보면 먼가 AI와 관련된 글 같지만 사실 이 글은 파이썬의 데이터 모델에 대한 철학에 대한 이야기입니다... (여기까지 속아서 들어왔으니 끝까지 읽어보시는 게 어떠실까요?..) 이 글에서 2개의 class를 정의하고 이를 통해서 파이썬이 얼마나 똑똑한지 증명해보려고 합니다. 아래와 같이 Foo 라는 class가 있고, 이 Foo라는 clsss는 __getitem__() 이라는 메서드 하나만 구현되어 있습니다. class Foo: def __getitem__(self, position): return range(0,30,10)[position] f = Foo() # output이 어떻게 나올거라고 예상하시나요 for i in f: print(i) 아마 결과가 0 10..
AWS Aurora MySQL 정리 최근에 데이터 인프라팀으로 팀을 옮기기도 했고, 그동안 AWS Aurora를 사용하면서 생각보다 MySQL과 다른 부분이 많이 있어서 정리가 필요하다고 생각이 됐습니다. AWS의 공식문서를 정리하면서 저의 생각이나 경험을 약간씩 추가하였습니다. 그리고 마지막에는 MySQL(or AWS RDS MySQL)과 다른 점을 정리해보면서 다시 한번 AWS Aurora를 살펴보려고 합니다. Introduction Amazon Aurora는 MySQL 및 PostreSQL과 호환되는 완전 관리형 관계형 데이터베이스입니다. 아마존에서는 일부 워크로드를 통해서 기존보다 MySQL 같은 경우는 Throughput(처리량)을 5배 PostreSQL은 최대 3배까지 성능을 높일 수 있다고 설명하고 있습니다. (그대로 믿으면 ..