RECENTS
-
대규모 샌드박스 인프라?
- 먼저 대규모 접속을 컨트롤할 수 있는 인프라 (scaleout 가능)를 설계하고 연구한다. - 인프라를 공부하고 싶은 사람들이 모여서 같이 관리하면 더 좋다.- 대규모 배포를 통해 리액션을 확인하고 싶은 (데모 등) 프로젝트를 지원받고, 선정해서 n일간 배포 및 관리해준다. - 그 과정에서 모니터링 기록/audit 등 각종 증거물은 항상 잘 남기게 관리한다. - 장애상황이 났을 때에도 잘 기록한다. -> 나중에는 이러한 배포가 소규모 팀들에게는 기회가 되고, 우리는 트래픽 중간에 광고 지면으로 살리는 등이 가능함 -> 장애상황에 큰 문제가 없도록 배포하는 서비스에는 큰 행이 걸리지 않게 해야 함
-
go get으로 repository의 특정 branch를 가져오려 할 때
기본적으로 go get은 repository의 특정 release 또는 default branch를 가져온다. go get github.com// 그런데 특정 브랜치를 가져오려면 다음과 같이 할 수 있다. go get github.com//@ 여기서 주의사항! ->> 브랜치 네임에 슬래쉬와 같은 특수기호가 있으면 안 된다. [실패 케이스] go get github.com/airbloc/consents@hyeonjae/testFlush go: github.com/airbloc/consents@hyeonjae/testFlush: invalid version: version "hyeonjae/testFlush" invalid: disallowed version string [성공 케이스] GOSUMDB=off..
-
Kimball’s Dimensional Modeling
Kimball’s Dimensional Modeling 차원 모델링은 데이터 웨어하우스레벨에서 유용한 데이터 모델링 기법입니다.Star Schema로 데이터를 정의하는 기법으로, 기존의 테이블을 변경하지 않고 새로운 컬럼을 추가하는 것과 같은 효과를 누릴 수 있게 합니다. 즉, 확장성과 재사용성 면에서 뛰어난 장점이 있습니다. 1. Design Process설계 프로세스는 다음 네 단계로 정의할 수 있습니다. business Process 를 정의Fact의 성능 메트릭을 생성하거나 캡쳐하는 단계e.g.) 주문접수, 보험청구, 수강생 등록 등 운영 활동grain 을 정의데이터를 유일하게 식별하는 식별자 → PK 또는 여러 키의 조합(하단 링크)이 될 수 있음Fact Table Surrogate Key | ..
-
dbt + snowflake (openvpn) + sqlfluff + github actions
^^.. 요약 더보기 1. snowflake는 openvpn 환경에서만 사용 가능 (ovpn파일에 있는 cert 정보 필요) 2. dbt는 snowflake의 DA를 위해서 사용중 3. sqlfluff는 DA 과정에서 dbt model의 sql syntax lint&formatting을 위해 사용중 (로컬에서 수동으로) 4. sqlfluff의 sql format을 snowflake + dbt의 특성에 맞춰 하도록 세팅함 5. 1~4. 를 로컬로 하니까 멋이 없어서 github actions로 엮어서 PR 레벨에서 자동 lint, 그리고 comment 인식하여 format 진행할 수 있게 세팅하려고 함. -> 안됨. 6. 온갖 방법 써보면서 3시간 넘게 끙끙댔는데..... 결론 = github action..
-
맙소사 reddit api가 이런 영향
1. github profile에 programmerHumor라는 개발자 유우머 밈 레딧 스레드를 출력하도록 세팅해놨었다. - https://github.com/PresentJay PresentJay - Overview Hi, I'm Jay, love writing, coding, and communicating. - PresentJay github.com 2. 하지만 어느날 보니 출력이 안 되더라... 3. 레딧 정책 변경은 유료 API 이용하시는 분들 세상살이 이야긴줄 알았건만.... 나비효과.. 4. 내 깃헙 프로필은 다시 심심해졌다
-
snowflake/airbyte에 대한 짧은 기록
1. current_date()는 정확한 시간대가 안 나올 수 있다. (snowflake 기준 노드의 위치에 따라) -> 따라서 timezone을 걸어도 제대로 안 나오는 경우가 있다 -> timestamp로 뽑고, timezone을 걸어서, 원하는 날짜로 맞추면 원하는 것을 얻을 수 있다! 2. appsmith는 생각보다 강력하고 빠르다 3. snowflake VS clickhouse를 테스트하려고 하는데, ETL 도구로 쓰려고 했던 airbyte cloud가 생각보다 사용성이 안 좋다. 특히 normalization을 자동으로 하는 중간에, formatting issue로 재시작되는 케이스가 있었는데, 대용량 데이터를 다루려고 할 때 불편함이 있다.
-
Flask + SQLAlchemy + Postgresql 연결 확장 라이브러리
SQL Alchemy에서 PostgreSQL 연결을 위한 방법은 총 다섯 가지가 있다. 1. Built-in (postgresql) PostgreSQL을 지원하는 SQLAlchemy의 Built-in adapter는 굉장히 심플하고 직관적으로 DB와 상호작용한다. 그냥 postgreSQL을 쓰는 것과 같지만, 아래로 등장하는 Extension에서 지원하는 추가 기능들은 포함하고 있지 않다. postgresql://{user}:{password}@{host}:{port}/{database} 2. psycopg2 python에서 PostgreSQL adapter로 가장 유명한 라이브러리이며, 커넥션 풀링, 빠른 속도, 서버 사이드 커서 등을 지원한다. 예를 들어, 커넥션 풀링을 사용하는 경우, SQLAlch..
-
[python flask] 디렉토리 구조 원칙 세우기
1. 웹서버와 애플리케이션 로직 분리하기 (관심사 분리 측면) -> 애플리케이션 로직이란? 웹앱이 작동하는 방식을 정의한 코드 (DB Query, Auth, Business Logics) -> 왜? (1) 웹서버의 가동 유무와 상관없이 애플리케이션을 관리하기 위함! (2) 확장성 고려 (기능 추가, 더 많은 사용자 고려 등) -> 대규모 Flask 웹앱에서는 꼭 고려! -> 어떻게? (1) Logic Directory에 Database 관련, Auth 관련, Business Logic 관련 코드를 포함시키기 (2) Web Server Directory에 Route, View, Template 등 웹서버 관련 코드를 포함시키기 (3) 디렉토리 이름은 알잘딱깔센하기 2. Config를 분리하기 -> 왜? (..
-
얼마나 알고있니 나
- microservices - scalability - small and independent apps - containers - orchestration - API gateways - autoscaling - load balancing - event-driven architecture - integration - message buses - service discovery - pub/subs - async - communication protocols - monitoring - tracing - logging - debugging - security - distributed objects - eventual consistency - bounded contexts - transactions - SAGA..
-
Docker-compose Versions & Contexts
도커 레벨로 많은 과제나 이벤트를 해결했었는데 도커컴포즈는 약간 있는대로 대충 쓴 느낌이 강해서 (주로 3, 3.5 버전을 레퍼해서 막 썼던 것 같은데.... 다 되서 그냥 해결 중심으로 빠르게 지나갔던 것 같다.) 좀 조사를 해봤다. 1. 도커 컴포즈 버전들의 차이 (https://docs.docker.com/compose/compose-file/compose-file-v3/) Compose file format Docker Engine release Compose specification 19.03.0+ 3.8 19.03.0+ 3.7 18.06.0+ 3.6 18.02.0+ 3.5 17.12.0+ 3.4 17.09.0+ 3.3 17.06.0+ 3.2 17.04.0+ 3.1 1.13.1+ 3.0 1.13..
- 방문자수
- 공지사항
전체 방문자
오늘 방문자
어제 방문자