RECENTS
-
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..
-
VSCode로 Flask Jinja Template의 Auto Formatting 설정방법
HTML에서 (Django, Jinja 등) Template 태그를 사용해서 작성할 수 있다. 그리고 나는 HTML에 대해 Auto Formatting 용도로 ESLInt + Prettier를 설정해둔 상태이다. 그래서 포매팅이 되면 박살이 난다 ^_ㅜ 그래서 설정 팔레트를 보고 있는데, HTML Extension에서 요걸 제공하기에 구경해봤다. 하지만 아무 효과가 없었다. HTML 포매팅은 ESLint + Prettier로 하고 있는걸 이 때는 Extension을 추가해주고 설정 하나를 바꿔주면 된다. 바로바로 djLint (https://marketplace.visualstudio.com/items?itemName=monosans.djlint) 요거는 eslint+prettier와 같이 lint+fo..
- 방문자수
- 공지사항
전체 방문자
오늘 방문자
어제 방문자