반응형

전체 글 2167

로컬 LLM, 4090 있는데 DGX Spark 살까

로컬 LLM 장비는 먼저 모델이 메모리에 들어가는지 보고, 그다음 대역폭을 본다. RTX 4090 24GB가 있어서 DGX Spark 128GB는 구매 검토 단계까지만 가고 아직 사지 않았다.DGX Spark는 보유한 적이 없어서 공식 사양으로만 비교한다. 맥미니 M6 32GB는 2026년 9월 말에 샀고 LLM은 보조 실험 수준이다. 직접 측정한 값은 4090 쪽에만 있다. 맥미니를 개발용으로 쓴 이야기는 별도 글에 정리했다. 로컬 LLM에서 용량은 왜 입장권인가모델 가중치에 context(KV cache)를 더한 크기가 쓸 수 있는 메모리 안에 들어가야 한다. 안 들어가서 RAM으로 넘어가면 실행은 돼도 매일 쓸 속도는 아니었다.4090에서 Qwen3-Coder 30B(MoE, Q4 계열 약 17G..

IT/Data · AI 18:00:00

Cursor rules 안 먹힐 때, 범위부터 봤다

Cursor rules가 안 먹히면 규칙 내용보다 적용 범위와 설정부터 본다. 기존 프로젝트 패턴과 다른 코드가 계속 나오는 걸 보고 알았다.이 글은 범위를 나누는 법, Cursor에서 쓰는 Live Preview 계열 미리보기 대신 npm run dev로 확인하는 기준, Agent·Auto·Cloud Agent를 맡기는 선을 적는다. Cursor rules를 만들면 항상 적용되는 줄 알았다규칙은 만들었다고 항상 들어가는 게 아니라, 유형마다 들어가는 조건이 다르다..cursor/rules에 적어두면 항상 적용되는 줄 알았다. 그런데 Spring 프로젝트에서 이미 비슷한 구현이 있는데도 Agent가 새 dependency나 별도 abstraction을 붙이는 일이 계속 나왔다. 기존 프로젝트 패턴과 다..

IT/AI Tools 12:00:53

OpenAI 모델 종료, 200 OK인데 달라지는 것

OpenAI 모델 종료 대응에서 가장 쉬운 실패는 model_not_found다. 더 위험한 건 새 모델도 정상 응답해서 migration이 끝난 줄 알았는데, JSON 계약이나 tool 선택이 조용히 달라지는 경우였다.그래서 지금은 종료 공지를 보면 문자열부터 치환하지 않는다. 사용처를 inventory하고, 새 모델을 golden set에 먼저 돌리고, side effect가 있는 agent는 검증 전 자동 fallback하지 않는다. 일정은 표 하나로 모았고, 나머지는 이 절차 이야기다. 10월 23일 종료 목록은 이 표 하나로 본다2026-10-23에 gpt-3.5-turbo, o4-mini 등이 종료된다. 공식 표는 별칭과 날짜 스냅샷을 같은 행에 적고 있어서, 스냅샷으로 고정해도 종료는 피할..

IT/AI Tools 06:00:21

HTTP 402 Payment Required 한도부터

HTTP 402는 향후 사용을 위해 예약만 된 상태 코드다. 그래서 일반 클라이언트가 unexpected status 402 payment required를 받았을 때 기본값은 자동 재시도하지 않는 것이다. 예외는 x402다. 결제한 뒤 다시 요청하는 프로토콜을 402 위에 정의한다.x402로 AI 에이전트에게 결제를 맡기려면 결제 방법보다 지출 한도를 먼저 정해야 한다는 게 이 글의 결론이다.2026년 10월 확인 기준이다. 개인 POC에서 직접 만든 가드와, 이후 정리한 판단을 나눠 적는다. 상용 결제 서비스를 운영한 경험이 아니라 테스트넷·소액 범위에서 결제 흐름을 확인한 POC였다. HTTP 402는 왜 429처럼 재시도하면 안 될까RFC 9110은 402를 미래 사용을 위해 예약된 상태 코드로..

Python 3.15 cp949 CSV 열리나 깨지나

Python 3.15가 바꾸는 것은 CP949가 아니라, encoding을 안 적었을 때 파이썬이 고르는 기본값이다. encoding 없이 cp949 파일을 읽던 코드는 3.15에서 UnicodeDecodeError로 멈춘다. pandas read_csv는 경로를 넘기는 한 이 변경과 상관없지만, open() 핸들을 넘기면 영향을 받는다.로캘 인코딩이 cp949인 환경(macOS 시뮬레이션)에서 같은 스크립트를 3.14.8과 3.15.0rc3로 돌려 비교했다. 바뀌는 것은 CP949가 아니라 encoding을 안 적었을 때의 결정이다3.15가 바꾸는 것은 CP949 지원이 아니라, encoding을 안 적은 텍스트 I/O가 고르는 기본값이다.3.15는 UTF-8 Mode를 기본으로 켠다(PEP 686)..

IT/Programming 2026.10.08

Java REST API 프레임워크, 스프링 고른 이유

Java REST API 프레임워크로는 Spring Boot를 골랐다. 작은 REST API만 놓고 보면 Spring Boot보다 가벼운 Java 프레임워크는 분명히 있고, 나도 Quarkus와 Micronaut를 직접 띄워봤다.그런데 팀의 Spring Security·JPA·관측·테스트·배포 자산까지 비용으로 넣자 결론이 달라졌다. 시작 시간 차이보다, 장애가 났을 때 팀이 어디까지 내려가서 고칠 수 있는지가 더 비쌌다. 직접 띄워 본 Java REST API 프레임워크는 무엇인가Jersey, Quarkus, Micronaut를 endpoint까지 직접 띄워봤고, 길게 운영한 프레임워크는 Spring Boot뿐이다.Jersey: @Path @GET @POST @Produces로 resource를 쓰고..

Next.js use client, 에러만 지운 대가

Next.js에서 에러를 없애려고 상위 컴포넌트에 'use client'를 붙이면 빌드는 통과한다. 대신 서버에 남겨도 될 영역까지 client boundary 안으로 들어간다. App Router로 개인 서비스와 내부 POC를 여러 번 배포하면서, 나는 목록 페이지에서 이 일을 겪고 검색창·필터·모달만 Client Component로 쪼갰다.strict 오류와 Vercel 빌드 실패에서도 "에러가 사라졌는가"와 "이유를 아는가"는 따로였다. AI 코딩 에이전트가 같은 길로 가는 것도 봤다. 'use client'를 상위 컴포넌트에 붙이면 무슨 일이 생기나'use client'는 그 파일을 client bundle의 경계로 선언하는 지시어다. 파일이 import하거나 직접 렌더링하는 컴포넌트가 clie..

IT/Programming 2026.10.08

프론트엔드 프리랜서·외주, 스택 말고 기존 코드를 본다

프론트엔드 프리랜서를 맡기는 쪽이 먼저 보는 것은 기존 코드를 이해하고 수정 범위를 통제하는지다. 프론트엔드 외주를 맡기기 전에 확인하는 기준을 아래에 정리했다. 프리랜서로 수주해 본 경험이 아니라 맡기는 쪽에서 본 기준이다. 프론트엔드 외주를 맡길 때, 스택 이름보다 먼저 보는 것맡기는 쪽이 먼저 보는 것은 기존 코드베이스를 이해하고, 그 방식에 맞춰 수정 범위를 통제할 수 있는지다.회사에서 외부 개발자·협력 인력의 결과물을 받아보거나 함께 개발한 적이 있다. 내가 직접 본 사례는 Java/Spring 백엔드 작업이다. 기준은 프론트엔드에도 같다."Spring을 할 줄 안다"는 말은 판단 재료가 못 된다. 기존 구조, 공통 라이브러리, 테스트 방식, 배포 과정을 파악하고 있는지가 중요하다. "Reac..

IT/Career 2026.10.08

herdr·cmux 전에, 에이전트 3개부터의 병목

병렬 에이전트가 3개를 넘으면 병목은 터미널이 아니라 사람의 주의력이다. Claude Code와 Codex를 tmux에서 합쳐 2~4개 돌려보고 내린 판단이다.pane을 더 만드는 건 문제가 아니었다. 다른 pane을 보는 동안 한 에이전트가 승인 대기로 멈춘 걸 늦게 알아챘고, 결과가 한꺼번에 나오면 diff를 읽는 사람 쪽에 큐가 생겼다. 그래서 새 도구를 볼 때도 "몇 개를 띄울 수 있나"보다 "어디에 내 주의력이 필요한지 얼마나 빨리 알려주나"를 먼저 본다.범위부터 밝힌다. tmux는 수년간 사용했고, 현재 로컬 개발에서는 Ghostty도 쓴다. herdr와 cmux는 설치해서 짧게 직접 써 본 범위까지만 확인했다. Orca는 써보지 않아 공식 자료만 정리했다. worktree를 써도 남는 .en..

IT/AI Tools 2026.10.07

코딩테스트 부정행위, AI 사용은 어디까지 되나

코딩테스트에서 AI를 써도 되는지는 그 시험의 안내문이 정한다. 금지라고 적혀 있으면 쓰지 않는 것이 경계다. 준비 단계에서는 먼저 직접 푼 뒤에 AI로 다른 풀이를 확인하는 쪽이 안전하다고 본다.먼저 내 위치를 밝혀둔다. 실제 채용 코딩테스트에서 AI로 풀거나 답안을 받아 제출한 적은 없다. AI는 이직 준비 중 연습 문제와 모의 코딩테스트를 푼 뒤 풀이를 비교하는 데만 썼다. 준비 중에는 먼저 직접 풀고, AI는 그다음에 쓴다준비 중에는 먼저 직접 풀고 테스트까지 끝낸 뒤에 AI로 다른 접근과 놓친 edge case를 비교하는 순서가 안전하다고 본다.해시맵으로 중복을 처리하는 연습문제가 기억에 남는다. 혼자 연습하던 문제였고, 먼저 직접 푼 뒤 AI에게 정답을 묻는 대신 내 풀이를 깨뜨리는 최소 반..

IT/Career 2026.10.07

MySQL 데드락 로그, 롤백된 쪽이 범인이 아니다

Deadlock found when trying to get lock; try restarting transaction. Spring 쪽 예외만 봤을 때는 DB가 느려져 락을 오래 기다린 문제인가 싶었는데, root cause에 이 문장이 있었다.1213은 timeout이 아니고, 롤백된 쪽은 범인이 아니며, 재시도는 복구일 뿐 고칠 것은 락 순서였다. 1213은 timeout이 아니었다1213은 InnoDB가 순환 대기를 감지해 transaction 하나를 바로 롤백한 사건이고, 1205는 락을 기다리다 대기 시간이 초과된 사건이다. 에러 문구도 ERROR 1213 (40001)과 Lock wait timeout exceeded로 다르다.처음 Spring 쪽 예외만 봤을 때는 락을 오래 기다린 tim..

채용공고 AI 점수를 믿었다가 틀린 두 방향

Apify로 채용공고를 모아 Claude에 넣는 POC를 직접 돌렸다. 올여름부터는 사람인·원티드·점핏 등의 AI 엔지니어 공고를 스프레드시트에 손으로 정리해 일부를 AI로 대조했다. 이 과정에서 채용공고 AI 점수를 지원 여부의 판정기로 쓴 것이 두 방향으로 틀렸다. 지금은 무엇부터 읽을지 정하는 정렬값으로만 쓴다.POC 규모는 수십 건~100건 안팎이다. 비용과 작업시간은 기록하지 못했다. 이 글은 자동 지원 가이드가 아니다. 점수를 매기기 전에 무엇이 먼저 막혔나점수보다 전처리가 먼저 막혔다. 마감·중복·표기 불일치·불필요한 문구를 정리하지 않으면 점수의 근거부터 오염된다.막힌 점은 다섯 가지였다.이미 마감된 공고가 섞여 들어왔다.같은 공고가 URL과 문구만 달리해 중복으로 잡혔다.신입·경력 표기..

IT/Career 2026.10.07

Kafka lag, consumer 늘리기 전 확인순서

Kafka lag이 오르면 consumer부터 늘리지 않는다. partition별 lag, 처리시간, partition revoked/assigned 로그를 이 순서로 먼저 본다.회사 Spring Boot 서비스에서 Spring Kafka consumer를 운영하며 중복 처리, lag 급증, 리밸런싱 반복을 모두 겪었다. lag 급증과 리밸런싱 반복은 서로 다른 별개의 사건이다. consumer group은 partition 12개 정도에 평상시 instance 3개였다. broker 운영 전담은 아니고, 이 글의 경험은 classic consumer group 기준이다. Kafka 중복·lag·리밸런싱, 무엇부터 확인하나세 증상은 보는 곳이 다르다. lag은 partition별 lag과 처리시간, 리..

IT/Cloud · DevOps 2026.10.06

이중화와 백업 차이: replica는 실수도 복제한다

replica가 정상이라는 말은 데이터가 안전하다는 뜻이 아니었다. 잘못된 DELETE도 정상적으로 복제된다는 걸 직접 확인한 뒤로, 가용성·복제·백업·PITR을 같은 체크박스의 다른 이름으로 보지 않는다.이중화(Redundancy)·replica·Multi-AZ는 장애를 버티게 하고, 백업·PITR은 과거로 돌아가게 한다.여기서 redundancy는 정리해고가 아니라 시스템 이중화를 뜻한다. DB를 다루는 백엔드 개발자를 기준으로 쓴다. 이중화·복제·백업은 뭐가 다른가이중화는 부품이 죽어도 계속 돌게 하는 복사본, 복제는 변경을 그대로 따라가는 복사본, 백업은 과거 시점이 남아 있는 복사본이다.Microsoft Learn은 redundancy를 디스크에 가두지 않고 서비스 컴포넌트 단위(VM·API ..

IT/Cloud · DevOps 2026.10.06

git worktree 병렬 에이전트, 파일만 격리된다

git worktree로 Claude Code와 Codex를 병렬로 돌렸더니 파일 충돌은 줄었다. 대신 .env와 포트, DB가 깨졌다.worktree는 에이전트 격리가 아니라 working tree 격리다. 실패를 겪고 나서야 구분하게 됐다. 같은 폴더에서 에이전트 둘을 돌렸더니 diff가 섞였다git worktree는 에이전트가 아니라 working tree만 나눈다. 파일 diff는 분리되지만 환경·포트·DB 같은 실행 상태는 따로 준비해야 한다.처음엔 worktree 없이 같은 폴더에서 Claude Code와 Codex에 서로 다른 수정을 맡겼다. 한쪽이 파일을 고친 상태에서 다른 쪽이 같은 저장소의 git diff를 보고 작업했고, 자기가 만들지 않은 변경까지 현재 작업의 일부로 받아들였다.c..

컴공 졸업 후 취업 막막할 때, 지원 늘리기 전 점검

신입 개발자 취업이 막막하고 연락이 없을 때는 지원 수를 늘리기 전에 어느 단계에서 막혔는지부터 가르는 게 먼저다. 서류에서 멈춘 건지, 맞는 공고가 없는 건지, 코딩테스트나 면접에서 끊긴 건지에 따라 바꿀 것이 전혀 다르다.이 글은 면접 이전 단계를 중심으로 다룬다. 나는 현직 백엔드 개발자고, 채용 과정에서 지원자의 이력서와 프로젝트 자료를 직접 검토했고 기술면접에도 면접관으로 들어갔다. 11~12학번 컴퓨터공학과로 학교를 다녔고 졸업 전후에는 나도 신입 개발자 취업을 준비했다.그 경험은 2026년의 정답이 아니라 비교 기준이다. 시장 자료와 공고는 2026년 10월에 확인했다. 신입 개발자 취업이 막막할 때, 어느 단계에서 막혔는지 어떻게 가르나지원 후 연락이 없으면 서류, 적합한 공고, 코딩테스..

IT/Career 2026.10.06

Primary Key Unique Key 차이

Primary Key(PK, 기본키)는 행 하나를 대표하는 키다. 값이 중복되지도 NULL이 되지도 않고 테이블에 하나만 둔다. Unique Key(UK, 유니크키)는 중복만 막는다. NULL을 몇 개 받는지는 DBMS마다 다르다.등록 전에 exists로 확인했으니 중복은 안 생길 거라고 믿었던 적이 있다. 동시 요청 두 개가 그 믿음을 깼고, 그 뒤로 UNIQUE의 NULL 처리까지 따로 확인하게 됐다. 이 글은 그 두 가지를 중심으로 PK와 UK의 차이를 정리한다. 기본키와 유니크키, 무엇이 다른가기본키(PRIMARY KEY)는 중복과 NULL을 모두 막는 행의 대표 식별자이고, 유니크키(UNIQUE 제약)는 중복만 막는다. 기본키는 테이블당 하나, UNIQUE는 여러 개 걸 수 있다. 항목PRIM..

IT/Programming 2026.10.05

DDL DML DCL 차이, DDL도 롤백될까

DDL은 테이블 같은 구조를, DML은 그 안의 데이터를, DCL은 권한을, TCL은 COMMIT·ROLLBACK 같은 트랜잭션을 다룬다. 이 중 롤백 여부가 가장 크게 갈리는 쪽은 DDL이고, 그 답은 DBMS마다 다르다.MySQL에서 START TRANSACTION 안에서 ALTER TABLE을 하고 ROLLBACK했는데 변경이 그대로 남아 있던 적이 있다. 그 일을 중심으로 분류, 롤백 경계, 실무에서 바뀐 판단을 정리한다. DDL·DML·DCL·TCL은 각각 무엇이 다른가DDL은 구조(스키마)를 정의하고, DML은 데이터를 다루고, DCL은 권한을 제어하고, TCL은 트랜잭션을 확정하거나 취소한다. 기준은 명령이 무엇을 대상으로 하느냐다. 분류대상대표 명령교재·DBMS별 분류 차이DDL테이블·인..

IT/Programming 2026.10.05

Claude effort 비용, 내 작업으로 재는 법

Sonnet 5.5(claude-sonnet-5-5)로 같은 코드 수정 작업을 low, medium, high에서 5회씩 돌렸다. 내 기록에서 low는 첫 호출이 가장 쌌다. 하지만 5회 중 2회는 테스트가 깨져 재호출이 필요했고, 그 두 건은 합계가 medium 1회보다 비쌌다.그래서 claude effort 비용은 단가표가 아니라 성공한 작업 1건당 비용으로 봐야 한다고 본다. Anthropic 발표문의 'up to 30% less per task'(Sonnet 5 대비 작업당 최대 30% 저렴)는 자체 테스트의 상한이라 내 측정과 비교 대상이 다르다. 이 글은 그 값을 확인하지도 반박하지도 않는다. effort별 작업당 비용은 어떻게 재야 비교가 되는가snapshot, prompt, 경로, 캐시 ..

IT/AI Tools 2026.10.05

Agent SDK 세션, 저장과 context는 다르다

Claude Agent SDK의 세션 기능을 쓰든 직접 loop를 짜든, 에이전트 세션 관리는 세 문제로 나눠야 했다. 대화를 저장하는 것, 모델에게 다시 보여줄 context를 고르는 것, 작업 상태를 복구하는 것이다. 나는 이 셋을 하나로 취급하다 직접 만든 loop에서 두 번 막혔다. Agents API, Managed Agents, Agent SDK, 직접 loop는 뭐가 다른가네 갈래는 기능 목록이 아니라 상태를 어디에 두고 누가 책임지느냐로 갈린다. 이 글은 그 한 축만 비교한다.아래 표는 2026년 10월 공식 문서 기준이다. 시간이 지나면 가장 먼저 낡는 부분이다. OpenAI Agents APIClaude Managed AgentsClaude Agent SDK직접 loop세션 저장 ..

IT/AI Tools 2026.10.05
반응형