전체 글
-
Virtual Thread in JAVA개발/기술 2026. 1. 14. 11:46
작업마다 Java Thread 를 생성하면 OS 단위에서 Thread 를 생성하기 때문에 비싸고 시간도 오래 걸린다. 그래서 Java 진영에선 기존에 생성하던 Java Thread 를 Platform Thread 라고 정의하고 Virtual Thread 라는 것을 새로 만들어서 Platform Thread 위에서 실행되는 구조를 잡았다. Virtual Thread 는 Heap 메모리에 있는 객체다. Virtual 스레드는 생성 작업이 JVM 위에서 이뤄지기 때문에 Platform Thread 에 비해서 생성 비용도 싸다. Stack 이나 IP 같은 저장공간도 JVM 내에서 컨텍스트 스위칭 되는 형태이기 때문에 불필요한 시스템 콜이 없어지게 된다 Java Thread 에 비해서 커널레벨까지 내려가서 실행..
-
java volatile개발 2026. 1. 8. 15:21
아래와 같은 클래스가 있다고 해보자. public static class SharedClass { private int x = 0; private int y = 0; public void increment() { x++; y++; } public void checkForDataRace() { if (y > x) { System.out.println("y > x - Data Race is detected"); } }} x에 대한 증가가 y에 대한 증가보다 먼저 작성되었기 때문에 이론상으로 x>=y 인 상황만 발행해야하고 checkForDataRace 에서 if 문에 걸릴 일은 없다. 그런데 멀티 쓰레..
-
logi options+ 무한로딩 ㅡㅡ카테고리 없음 2026. 1. 7. 14:34
오늘 아침에 로지텍 마우스로 커스텀 설정해둔 버튼이 동작하지 않아서 logi options+ 를 실행해보니 동글뱅이가 멈출생각을 하지 않았다 뭔가 잘못된 것 같아서 삭제하고 재실행해봐도 동일하고 chat GPT 가 시키는걸 했는데도 그대로였다. 레딧에 들어가보니 나와 같은 장애를 겪고 있는 사람들이 올린 댓글이 다수 있었다. 사람들 추측으론 동시에 많은 사람들이 안되는로 보아 백엔드쪽이 맛이 간것 같고 맥 시스템 날짜를 변경하면 된다는 글을 보니까 인증서 문제로 보인다. 매해 1월마다 많은 서비스들이 인증서 교체작업을 하는데 logi options+ 앱도 마찬가지인듯 클리앙에도 뜬걸로 보아 한국 사용자들도 같은 문제를 겪고 있는듯 그런데 하드웨어 기기를 인터넷이 되는 환경에서만 사용할 수 있다는게 말이..
-
Python GIL개발 2025. 12. 28. 17:53
CPython파이선 스크립트 엔진중에 가장 메인. 공식 배포판에서도 이걸 쓴다. C 언어로 작성되었고 공식 배포판이다가장 완벽하고 모든 최신 기능을 제공한다커뮤니티가 가장 크고 풍부한 문서를 제공한다터미널에서 python 명령어를 실행하면 CPython 엔진으로 파이선 파일을 실행하게 된다GIL글로벌 인터프리터 락 (Global Interpreter Lock). 쓰레드간에 동시성을 제어하기 위해 사용되는 메커니즘. GIL 은 동시에 하나의 쓰레드만 바이트코드를 실행할 수 있도록 허용하며 메모리 관리와 객체 모델의 일관성을 보장한다 왜 파이썬은 하나의 스레드만 바이트 코드를 실행하게 했는지 궁금할 수 있는데 자세히 들어가면 복잡하니 C 언어 생태계에서 단일스레드 성능을 높이기 위함이였다 정도로 짧게 이해하..
-
넷플릭스가 클릭하우스를 최적화시킨 방법개발/데이터베이스 2025. 11. 18. 19:38
How Netflix optimized its petabyte-scale logging system with ClickHouse“To make our logging system work, we had to make a lot of choices. The key is how you simplify things in order to do the least amount of work.” Daniel Muino, Software Engineerclickhouse.com클릭하우스 공식 블로그를 번역 + 개인적인 의견을 첨가한 포스팅 모든 종류의 로깅 시스템을 압도한다고 말하는데 얼마나 대단하면 이런 말을 할 수 있는 것인가 ㅎㅎ 넷플릭스는 자부심이 대단한듯 Safe to say, this is a scale t..
-
Clickhouse Materialized views개발/데이터베이스 2025. 11. 7. 22:41
테이블에 데이터가 추가될 때마다 특정한 쿼리를 실행하고 결과를 target 테이블에 전송하는 테이블이다. 데이터가 추가될수록 결과가 타겟 테이블에 전송되고 중간 result 는 업데이트되고 병합된다. 병합된 결과는 기존 데이터에 대한 쿼리와 동등하다. target 테이블에 미리 계산된 결과를 전달하고 싶을때 사용하는 테이블이라고 보면됨. 아래 up_down_votes_per_day_mv 테이블은 up_down_votes_per_day 테이블에 일별 데이터를 모아서 전송해주는 역할을 하는 materialized 테이블이다CREATE MATERIALIZED VIEW up_down_votes_per_day_mv TO up_down_votes_per_day ASSELECT toStartOfDay(Creation..
-
Clickhouse Projections개발/데이터베이스 2025. 11. 7. 20:39
Projections Projections | ClickHouse DocsPage describing what projections are, how they can be used to improve query performance, and how they differ from materialized views.clickhouse.com Projection 은 클릭하우스에서 속도를 올리기 위한 기술중 하나다. 실질적으로 Projection 은 기존 테이블에 숨겨진 추가 테이블이라고 볼 수 있다. projection 은 기존 테이블과 행의 순서도 다르고 primary index 도 다르다. 데이터가 들어올 때마다 자동으로 그리고 점진적으로 aggregate values 들을 구해준다 Practically,..
-
Clickhouse Skip Index개발/데이터베이스 2025. 11. 7. 20:33
Understanding ClickHouse Data Skipping Indexes | ClickHouse DocsSkip indexes enable ClickHouse to skip reading significant chunks of data that are guaranteed to have no matching values.clickhouse.com 전통적인 방식에서는 B-tree 구조로 데이터베이스가 행을 log(n) 시간에 찾을 수 있게 했다. 하지만 클릭하우스의 경우 개별 row 가 존재하는게 아니기 때문에 작동하지 않는다. 대신 클릭하우스에선 skip 인덱스라는 걸 사용해서 불필요한 데이터 chunk 를 읽지 않아도 되는 방식을 제공한다. 각 구조마다 Skip 인덱스 표시가 되어 있어서 청크..