전체 글 썸네일형 리스트형 클라라와 태양 - 가즈오 이시구로 5월에 스토너를 감명 깊게 읽고 GPT에게 책 추천을 받았는데 가즈오 이시구로의 작품을 추천해줬다.남아있는 나날, 클라라와 태양, 날 버리지마 총 3개를 추천 받았는데, 이번 책은 아직 후기를 쓰진 않은 가즈오 이시구로의 남아있는 나날 다음으로 읽은 책이다. 클라라와 태양은 AF(Artificial Frirends)인 클라라의 시점으로 진행된다. 지금처럼 인공지능 시대가 도래했고 그걸 넘어 AF가 보급되는 미래가 배경이다. 클라라는 아픈 여주인공인 조시의 집에 입양(?)이 되어 살아가게 되는데, AF 매장에서부터 알 수 있는 점은 클라라는 비교적 구형 모델이지만 다른 AF와 다르게 더 인간처럼 행동하고 생각하는 능력을 가졌다. 책에선 페이지 마다 그런 클라라의 면모를 잘 표현했는데 그런 이유에서 클라라에.. 더보기 VOO vs TIGER S&P500, 진짜 세금 비교 "TIGER가 세율이 낮다"는 말에 속으면 안 된다. 과세 구조를 알아야 진짜 답이 보인다.흔한 오해 — "15.4% 많은 투자자들이 단순히 세율 숫자만 비교해서 국내 ETF가 유리하다고 생각한다.하지만 이건 틀린 프레임이다. 세율이 아니라 과세 구조 자체가 다르다.핵심 차이 1 — 과세 분류구분 VOO (해외 ETF) TIGER S&P500 (국내 ETF)과세 유형양도소득세 22%배당소득세 15.4%종합과세 합산❌ 분리과세✅ 합산 대상연간 기본공제250만원없음손익통산해외주식 간 가능불가운용보수0.03%0.07%핵심 차이 2 — 금융소득종합과세의 함정TIGER의 매매차익은 세법상 배당소득으로 분류된다.따라서 연간 금융소득이 2,000만원을 초과하면 다른 소득과 합산되어 최대 49.5%(지방세 포함) 세율.. 더보기 헷갈려서 남기는 JWT 서명 JWT는 .으로 구분된 3파트로 이루어져 있어요.eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1dWlkLTEyMyJ9.X2vMTMaGvVrFoGMGmCWBJvTpFE4Wnj8LkBdPqRs1234─────────────────────.──────────────────────────.──────────────────────────────────────────── Header Payload Signature서명이 만들어지는 과정:1. Header 인코딩 { "alg": "HS256" } → Base64 → eyJhbGciOiJIUzI1NiJ92. Payload 인코딩 { "sub": "uuid-123.. 더보기 tmux 완전 정복 — 개발자를 위한 명령어 치트시트 tmux(Terminal Multiplexer)는 하나의 터미널 창에서 여러 세션·윈도우·패널을 관리할 수 있는 도구다.SSH 접속이 끊겨도 세션이 살아 있어 서버 작업에 필수적이다.📌 기본 개념Session ─┬─ Window 1 ─┬─ Pane 1 │ └─ Pane 2 └─ Window 2 ─── Pane 1개념설명Sessiontmux의 최상위 단위. 독립적으로 유지됨Window세션 안의 탭. 전체 화면을 차지Pane윈도우를 분할한 작은 터미널 영역Prefix 키: 기본값 Ctrl + b (이후 로 표기)🚀 세션 (Session)터미널에서 (tmux 밖)tmux # 새 세션 시작tmux new .. 더보기 # Java 개발자를 위한 Python 문법 정리 Java 개발자를 위한 Python 문법 정리AI Agent 프로젝트에서 실제로 사용한 문법 중심으로 정리1. 변수와 타입# Java: String name = "홍길동";name = "홍길동" # 타입 선언 없음, 그냥 대입# Java: int age = 30;age = 30# Java: boolean isActive = true;is_active = True # True/False (대문자 시작)# Java: String text = null;text = None # null → None# 타입 힌트 (선택사항, Java처럼 명시 가능)# Java: String name = "홍길동";name: str = "홍길동"age: int = 30is_ac.. 더보기 OS 4편 - 실무 병목 찾기 에러 로그도 없는데 특정 시간대에 API가 느려진다. 이걸 어떻게 찾아야 할까. 지금까지 배운 OS 개념을 전부 연결하는 파트다.1. 전형적인 장애 패턴스케줄러 대용량 쿼리 실행└── DB 커넥션 오래 점유 └── HikariCP 커넥션 풀 소진 └── 일반 API 요청들이 커넥션 대기 └── 스레드 점유 시간 길어짐 └── Tomcat Thread Pool 소진 └── 전체 API 느려짐 (에러는 없음)에러가 없으니 로그만 봐선 원인을 못 찾는다. 스레드와 커넥션 풀 상태를 직접 봐야 한다. 2. Tomcat 스레드 풀 확인Spring Actuator로 현재 스레드 상태를 볼 수 있다. yaml# app.. 더보기 OS 3편 - Race Condition, synchronized (feat. volatile) 여러 스레드가 같은 메모리를 동시에 건드릴 때 생기는 문제다. 로컬에선 안 터지다가 운영에서 트래픽 몰릴 때 갑자기 데이터가 이상해지는 버그의 주범이다. 1. Race Condition이란count++ 한 줄처럼 보이지만 CPU 입장에선 3단계다.1. count 값을 메모리에서 읽어옴 (READ)2. 1을 더함 (ADD)3. 결과를 메모리에 저장 (WRITE)스레드 2개가 동시에 실행되면 이 사이에 끼어들 수 있다.스레드 1 스레드 2READ → count = 0 READ → count = 0ADD → 0 + 1 = 1 A.. 더보기 OS 2편 - 동기 vs 비동기, 그리고 언제 써야 하는가 스레드가 "기다리는 시간"을 어떻게 쓰느냐의 차이다. 단순히 빠르고 느린 게 아니라, 상황에 따라 골라 써야 한다.1. 동기(Synchronous)란동기 방식에서 스레드는 작업이 끝날 때까지 그 자리에서 기다린다. DB 쿼리를 날리면 응답이 올 때까지, 외부 API를 호출하면 결과가 올 때까지 스레드는 아무것도 못 하고 점유만 한다. 이걸 블로킹(Blocking) 이라 한다.스레드 1├── 요청 받음├── DB 쿼리 날림├── ⏳ DB 응답 기다리는 중... (CPU 안 씀, 스레드 점유 중)├── ⏳ 기다리는 중...├── DB 응답 옴├── 결과 가공└── 응답 반환DB 쿼리 100ms 중 실제 CPU를 쓰는 시간은 5ms 정도다. 나머지 95ms는 그냥 대기다. 그런데 스레드는 그 시간 내내 자리를.. 더보기 이전 1 2 3 4 ··· 18 다음