Dev Log
-
기본적으로 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..
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..
2023.08.29 -
^^.. 요약 더보기 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..
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..
2023.07.05 -
1. current_date()는 정확한 시간대가 안 나올 수 있다. (snowflake 기준 노드의 위치에 따라) -> 따라서 timezone을 걸어도 제대로 안 나오는 경우가 있다 -> timestamp로 뽑고, timezone을 걸어서, 원하는 날짜로 맞추면 원하는 것을 얻을 수 있다! 2. appsmith는 생각보다 강력하고 빠르다 3. snowflake VS clickhouse를 테스트하려고 하는데, ETL 도구로 쓰려고 했던 airbyte cloud가 생각보다 사용성이 안 좋다. 특히 normalization을 자동으로 하는 중간에, formatting issue로 재시작되는 케이스가 있었는데, 대용량 데이터를 다루려고 할 때 불편함이 있다.
snowflake/airbyte에 대한 짧은 기록1. current_date()는 정확한 시간대가 안 나올 수 있다. (snowflake 기준 노드의 위치에 따라) -> 따라서 timezone을 걸어도 제대로 안 나오는 경우가 있다 -> timestamp로 뽑고, timezone을 걸어서, 원하는 날짜로 맞추면 원하는 것을 얻을 수 있다! 2. appsmith는 생각보다 강력하고 빠르다 3. snowflake VS clickhouse를 테스트하려고 하는데, ETL 도구로 쓰려고 했던 airbyte cloud가 생각보다 사용성이 안 좋다. 특히 normalization을 자동으로 하는 중간에, formatting issue로 재시작되는 케이스가 있었는데, 대용량 데이터를 다루려고 할 때 불편함이 있다.
2023.05.03 -
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..
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..
2023.02.07 -
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를 분리하기 -> 왜? (..
[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를 분리하기 -> 왜? (..
2023.02.07 -
도커 레벨로 많은 과제나 이벤트를 해결했었는데 도커컴포즈는 약간 있는대로 대충 쓴 느낌이 강해서 (주로 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..
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..
2023.02.03 -
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..
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..
2023.02.02 -
외주 관련 작업을 하다가, 필요에 의해 VM서버를 하나 구매했다. Vultr는 bandwidth도 크고, 여러모로 가성비가 좋아서 선택했고, ubuntu 20.04 OS를 얹은 상태다. VM서버에 여러 관리형 오픈소스 컨테이너들을 얹어서 배포할건데, 그러려면 아무래도 도메인을 하나 사놓고 SSL 처리를 다 하는 게 낫겠다 싶었다. 셀프 호스팅 + self-signed는 지옥이니까.... x( 1. 도메인 구매하기 -> https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 여러 사이트가 있지만 (고대디, 등), 아무래도 국내 플랫폼이기도 하고, 가비아에 일하는 동생도 있고(?) 무엇보다 싼 도메인 (이벤트 도메인)..
Vultr 서비스에서 gabia 도메인 얹어서 Https Nginx까지외주 관련 작업을 하다가, 필요에 의해 VM서버를 하나 구매했다. Vultr는 bandwidth도 크고, 여러모로 가성비가 좋아서 선택했고, ubuntu 20.04 OS를 얹은 상태다. VM서버에 여러 관리형 오픈소스 컨테이너들을 얹어서 배포할건데, 그러려면 아무래도 도메인을 하나 사놓고 SSL 처리를 다 하는 게 낫겠다 싶었다. 셀프 호스팅 + self-signed는 지옥이니까.... x( 1. 도메인 구매하기 -> https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 여러 사이트가 있지만 (고대디, 등), 아무래도 국내 플랫폼이기도 하고, 가비아에 일하는 동생도 있고(?) 무엇보다 싼 도메인 (이벤트 도메인)..
2022.11.17