분류 전체보기
-
- 먼저 대규모 접속을 컨트롤할 수 있는 인프라 (scaleout 가능)를 설계하고 연구한다. - 인프라를 공부하고 싶은 사람들이 모여서 같이 관리하면 더 좋다.- 대규모 배포를 통해 리액션을 확인하고 싶은 (데모 등) 프로젝트를 지원받고, 선정해서 n일간 배포 및 관리해준다. - 그 과정에서 모니터링 기록/audit 등 각종 증거물은 항상 잘 남기게 관리한다. - 장애상황이 났을 때에도 잘 기록한다. -> 나중에는 이러한 배포가 소규모 팀들에게는 기회가 되고, 우리는 트래픽 중간에 광고 지면으로 살리는 등이 가능함 -> 장애상황에 큰 문제가 없도록 배포하는 서비스에는 큰 행이 걸리지 않게 해야 함
대규모 샌드박스 인프라?- 먼저 대규모 접속을 컨트롤할 수 있는 인프라 (scaleout 가능)를 설계하고 연구한다. - 인프라를 공부하고 싶은 사람들이 모여서 같이 관리하면 더 좋다.- 대규모 배포를 통해 리액션을 확인하고 싶은 (데모 등) 프로젝트를 지원받고, 선정해서 n일간 배포 및 관리해준다. - 그 과정에서 모니터링 기록/audit 등 각종 증거물은 항상 잘 남기게 관리한다. - 장애상황이 났을 때에도 잘 기록한다. -> 나중에는 이러한 배포가 소규모 팀들에게는 기회가 되고, 우리는 트래픽 중간에 광고 지면으로 살리는 등이 가능함 -> 장애상황에 큰 문제가 없도록 배포하는 서비스에는 큰 행이 걸리지 않게 해야 함
2024.08.12 -
기본적으로 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 -
Kimball’s Dimensional Modeling 차원 모델링은 데이터 웨어하우스레벨에서 유용한 데이터 모델링 기법입니다.Star Schema로 데이터를 정의하는 기법으로, 기존의 테이블을 변경하지 않고 새로운 컬럼을 추가하는 것과 같은 효과를 누릴 수 있게 합니다. 즉, 확장성과 재사용성 면에서 뛰어난 장점이 있습니다. 1. Design Process설계 프로세스는 다음 네 단계로 정의할 수 있습니다. business Process 를 정의Fact의 성능 메트릭을 생성하거나 캡쳐하는 단계e.g.) 주문접수, 보험청구, 수강생 등록 등 운영 활동grain 을 정의데이터를 유일하게 식별하는 식별자 → PK 또는 여러 키의 조합(하단 링크)이 될 수 있음Fact Table Surrogate Key | ..
Kimball’s Dimensional ModelingKimball’s Dimensional Modeling 차원 모델링은 데이터 웨어하우스레벨에서 유용한 데이터 모델링 기법입니다.Star Schema로 데이터를 정의하는 기법으로, 기존의 테이블을 변경하지 않고 새로운 컬럼을 추가하는 것과 같은 효과를 누릴 수 있게 합니다. 즉, 확장성과 재사용성 면에서 뛰어난 장점이 있습니다. 1. Design Process설계 프로세스는 다음 네 단계로 정의할 수 있습니다. business Process 를 정의Fact의 성능 메트릭을 생성하거나 캡쳐하는 단계e.g.) 주문접수, 보험청구, 수강생 등록 등 운영 활동grain 을 정의데이터를 유일하게 식별하는 식별자 → PK 또는 여러 키의 조합(하단 링크)이 될 수 있음Fact Table Surrogate Key | ..
2023.07.18 -
^^.. 요약 더보기 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. 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. 내 깃헙 프로필은 다시 심심해졌다
맙소사 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. 내 깃헙 프로필은 다시 심심해졌다
2023.06.13 -
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