전체 글
2,120개의 글
Tomcat 11 가상 스레드 켜기와 maxThreads 스레드풀의 차이 - 처리량과 메모리 비교
Tomcat 스레드풀 이야기를 하면 늘 maxThreads=200 을 몇으로 올릴지가 화제였다. 블로킹 I/O가 많은 서비스에서 요청이 몰리면 스레드 200개가 다 대기에 물려 큐가 쌓이고, 그렇다…
자바 Union-Find로 Kruskal 최소 신장 트리와 사이클 판정 구현하기
코딩테스트에서 그래프 문제를 풀다 보면 "두 정점이 이미 연결되어 있나"를 계속 묻는 상황을 자주 만난다. 이걸 매번 BFS나 DFS로 확인하면 시간초과가 나기 쉽다. 이럴 때 꺼내는 자료구조가 U…
Hardware삼성 SPC-1500 - SPC-1000을 잇는 국산 Z80기, SR-BASIC과 그래픽 강화, MAME로 다시 켜기
지난달 국산 8비트기 자료를 뒤지다 SPC-1500 롬 세트를 다시 만났다. SPC-1000은 중고 시장에 종종 나오지만 그 후계기인 SPC-1500은 실물도 자료도 훨씬 귀하다. 몇 안 남은 문서…
Claude 모델별 차이점 (Haiku, Sonnet, Opus, Fable)
작년 12월에 ChatGPT와 Claude의 차이점 을 정리한 적이 있는데, 그새 Claude를 도입한 팀들에게서 받는 질문의 결이 싹 달라졌다. 예전에는 "뭘 쓸까"였다면 지금은 "Claude 모…
aibo깡통 아이보로 할 수 있는 일 - 베이직 플랜을 적용하지 않은 ERS-1000의 경계선 긋기
중고 장터에서 ERS-1000 매물을 보다 보면 "플랜 만료", "플랜 없음" 같은 단서가 붙은 개체가 눈에 걸린다. 국내 수집가들 사이에서 흔히 "깡통 아이보"라고 불리는 상태다. 클라우드 구독을…
[LENA] LENA Valve와 비동기 처리
LENA는 주요 사용 패턴인 AJP 프로토콜과 동기 처리 환경에 최적화되어 있고, LENA v 1.3.4.1까지는 기본적으로 LENA의 Valve는 asyncSupported="false"로 적용되…
[LENA] Web에서 간헐적 Proxy Error(502) 발생하는 경우
보통 미들웨어 전환 시에 주로 발생하는 현상이며, 글쓴이의 경우에는 Oracle OHS - LENA Web으로 전환 후 간헐적 Proxy Error(502)가 발생하는 현상을 겪었으며 이에 대해 원…
Operating SystemMS-DOS 3.3 살펴보기 - 확장 파티션과 주요 명령, 에뮬레이터로 돌려보기
인프라 운영을 하다 보면 폐기 목록에 3.5인치 플로피나 옛 DOS 설치 디스크가 섞여 들어온다. 그때마다 이 매체를 읽으려면 어떤 DOS가 필요한지, 하드디스크 파티션은 어떻게 잡혀 있을지부터 따…
MariaDB/MySQL DDL이 'Waiting for table metadata lock'으로 멈출 때 원인 찾고 푸는 법
운영 중인 서비스에 컬럼 하나 추가하려고 ALTER TABLE 을 던졌는데 커서만 깜빡이고 프롬프트가 안 돌아온 경험은 DBA라면 한 번쯤 겪는다. 더 곤란한 건 그 사이에 해당 테이블을 읽으려던 …
aibo소니 aibo 음성 명령어 목록 정리 - ERS-1000 공식 헬프가이드와 구형 ERS-7 커맨드
AIBO 27년치 연표를 정리하고 나서 정작 확인하지 못한 것이 남았다. 이 개가 알아듣는 말이 정확히 무엇인가. 소니 공식 헬프가이드와 2000년대 ERS-7 매뉴얼을 나란히 열어 목록을 대조해 …
외부 서비스 웹훅을 로컬에서 테스트하고 서명 검증하기: smee, ngrok, HMAC, 재전송 방어
외부 서비스 연동을 붙이다 보면 웹훅(webhook) 처리에서 한 번은 멈춘다. 결제 완료, 저장소 push, 메시지 수신 같은 이벤트를 상대 서비스가 우리 서버로 POST해주는 구조인데, 문제는 …
HardwareCommodore 64 하드웨어 구조와 부팅 과정, VICE로 디스크/PRG 돌려보기
얼마 전 창고를 정리하다 옛 카세트 테이프 몇 개가 나왔다. C64용 게임 로더가 담긴 물건인데, 실기가 없어 결국 에뮬레이터로 확인했다. 1982년에 나온 기계를 2026년의 노트북에서 그대로 돌…
mongodump와 oplog로 MongoDB 백업하고 장애 직전 시점으로 복구(PITR)하기
운영 중인 MongoDB에서 누군가 db.orders.drop() 을 잘못 날리는 사고는 생각보다 흔하다. 새벽에 받아둔 풀 백업만 있으면 그 시점으로는 돌아가지만, 백업 이후 낮 동안 들어온 주문…
Apache Tomcat과 Spring Boot의 차이 - WAS와 프레임워크, 내장 톰캣까지 관계 정리
톰캣 설치나 커넥터 설정을 정리해두면 현장에서 꼭 따라오는 질문이 있다. 스프링 부트를 쓰는데 톰캣을 따로 깔아야 하는지, 둘 중 무엇을 먼저 익혀야 하는지 같은 것들이다. 신입 개발자만 묻는 것도…
aibo소니 AIBO 27년사: 1999년 ERS-110부터 2018년 부활, 그리고 2026년 판매 종료 발표까지
2026년 6월 25일 소니가 aibo ERS-1000의 일본 국내 판매를 재고 소진 시점에 종료한다고 공지했다. 20년 넘게 지켜본 사람이라면 두 번째 작별이다. 첫 번째는 2006년이었고, 그때…
Hardware6502와 65C02의 차이 정리 - 버그 수정, 추가 명령, 소비전력, 그리고 Apple IIc
Apple II 관련 자료를 뒤적이다 보면 "65C02 필요"라는 단서가 붙은 소프트웨어를 자주 만난다. 같은 6502 계열인데 왜 굳이 칩을 가려 받는지 궁금해서 두 칩의 차이를 한 번 정리해 두…
HardwareApple Newton MessagePad 2100 - StrongARM 최후의 뉴턴과 Einstein으로 오늘 다시 켜보기
서랍 정리를 하다 오래된 뉴턴 관련 자료를 다시 들춰봤다. MessagePad 2100은 애플이 PDA 시장에서 손을 떼기 직전에 내놓은 물건이라, 지금 보면 실패한 제품 라인의 마지막 페이지 같은…
쿠버네티스에서 GPU 한 장을 여러 파드가 나눠 쓰기: Time-Slicing vs MIG
GPU 노드를 처음 붙이고 나면 곧 이런 상황을 만난다. A100 한 장이 노드에 꽂혀 있는데, 추론 파드 하나가 그걸 통째로 물고 있고 나머지 파드는 Pending 으로 줄을 선다. GPU 메모리…
Spring Boot @Async 스레드 폭증과 큐 적체 잡기: ThreadPoolTaskExecutor 설정과 MDC 전파
@Async 하나 붙였다가 운영에서 스레드가 이상하게 늘거나 응답이 밀리는 상황은 자주 온다. 그런데 그 원인을 검색하면 "@Async는 요청마다 스레드를 무한 생성해서 서버가 죽는다"는 설명이 많…
삼보 트라이젬 20: 세운상가 시대의 애플 II 호환기, 원본과 무엇이 같고 달랐나
오래된 국산 컴퓨터 이야기를 하다 보면 트라이젬이라는 이름이 빠지지 않는다. 세운상가에서 애플 II 조립품이 손바뀜하던 시절, 대기업이 정식 브랜드를 달고 애플 호환기를 내놓았다는 점에서 트라이젬 …
자바 Trie(트라이) 자료구조로 자동완성과 접두어 검색 구현하기
검색창 자동완성이나 사전 조회 기능을 만들다 보면 접두어로 후보를 빠르게 찾아야 하는 순간이 온다. 그럴 때 매번 문자열 목록 전체를 startsWith 로 훑으면 데이터가 늘수록 느려진다. 이 문…
macOS launchd로 주기적 백그라운드 작업 등록하기 - cron 대신 LaunchAgent/LaunchDaemon 쓰기
맥에서 백업 스크립트나 정리 작업을 정해진 시각에 돌리려고 crontab -e 를 열었다가, 요즘 macOS에서는 cron이 권장 도구가 아니라는 걸 뒤늦게 알게 되는 경우가 많다. cron은 아직…
HardwareMacintosh Plus 완전정리: SCSI와 1MB RAM을 처음 담은 콤팩트 맥, Mini vMac으로 System 6/7 되살리기
얼마 전 창고에서 베이지색 콤팩트 맥 한 대를 꺼내 먼지를 닦다가, 뒤판에 박힌 DB-25 SCSI 커넥터를 보고 다시 이 기종을 정리해두고 싶어졌다. 1986년의 애플은 아직 작은 회사였고, 이 …
iptables에서 nftables로 방화벽 규칙 마이그레이션하기 - iptables-translate 변환과 nft 검증
RHEL 9와 최신 데비안 계열로 서버를 올리다 보면 방화벽 백엔드가 이미 nftables로 넘어가 있다. iptables 명령은 여전히 먹지만 실제로는 nftables 위에서 도는 호환 계층이다.…