pycodestyle PEP 8에 명시된 스타일 가이드를 기반으로 파이썬 코드를 체크해주는 패키지 pylint Pylint is a Python static code analysis tool which looks for programming errors, helps...
Parallel stages with Buildkit
Buildkit 사용 DOCKER_BUILDKIT=1 docker build -t myapp . 이렇게 빌드하면 멀티 스테이지 빌드시 서로 독립적인 stage는 병렬로 빌드할 수 있다. 참고
Go Runtime
Go Runtime과 Java Runtime의 차이점 Go는 intermediate language로 변환되지 않고 native code로 번역됨. Go와 Java는 GC, goroutine(thread) scheduling 기능을 제공
Flink Architecture
Flink Architecture JobManager 세개의 컴포넌트로 구성되어있다. ResourceManager Flink cluster에 리소스 할당과 해제, 리소스 스케줄링의 단위인 task slot관리 Dispatcher Flink app submit을...
Branch vs Tag
공통점 특정 커밋 hash를 가리킨다. 차이점 Branch는 항상 해당 branch의 최신 커밋을 가리키는 반면, tag는 특정 브랜치의 특정 커밋을 가리킨다. 따라서 tag가 가리키는 커밋은 변하지 않으므로 더이상 변화가 없는 특정 코드 버전을 가리키고 싶을때 유용하다. Source
Hard Delete vs Soft Delete
Delete type Hard Deletes란 테이블에서 레코드가 삭제되면, 해당 레코드는 물리적으로도 삭제가 되는것을 의미한다. Soft Deletes란 테이블에서 레코드가 삭제되었다고 하더라도, 물리적으로는 삭제가 되지 않는다. 하지만 테이블에 있는 필드가 해당 레코드가 삭제되었음을 알려준다. 해당 필드는 is_deleted 또는 deleted...
Intellij
Intellij test 실패현상 : No tests found for given includes: filter.includeTestsMatching Settings > Build,Execution,Deployment > Build Tools > Gradle > “Run tests using: IntelliJ IDEA” 로 변...
Debezium
Useful links debezium configuration을 전달하는 다양한 방법 MySQL to Snowflake CDC 사례 Snowflake Connector가 사용하는 Snow Pipe의 비용이 높아서, 사용을 하지 못했음. Debezium Postgres ...
Vertical Pod autoscaling
Overview CPU와 메모리의 request와 limit을 최신으로 수동으로 업데이트 하는 대신, recommended 값을 제공하거나 자동으로 해당 값으로 업데이트 하도록 설정한다. Benefits 클러스터 노드들이 효율적으로 운용된다. CPU와 Memory request들에 대한 정확한 값을 결정하는데 시...
S3 Connector의 Exactly Once
From Apache Kafka to Amazon S3: Exactly Once eventually consistent S3에서 exactly once streaming을 구현한 방법 S3 multipart uploads: This feature enables us to stream changes gradually in parts and in...