
개발자와 운영자를 위한 기술 아카이브 & 커뮤니티 — 기사 2,023건과 게시판이 기다립니다.
Flyway로 Spring Boot 스키마 버전 관리
운영 DB 스키마를 누가 언제 어떻게 바꿨는지 추적이 안 돼서 곤란했던 경험은 대부분 있을 것이다. 개발 DB에서는 되던 쿼리가 운영에서 컬럼이 없다고 터지고, ALTER 문은 누군가의 로컬 메모나 슬랙 스크롤 어딘가에만 남아 있다. 애플리케이션 코드…
🧵 최근 게시판 토픽
게시판 전체 보기 →최근 글
전체 보기 →반다이 마스코트 로보 하로 시리즈, 말하는 1/4 하로
건담 굿즈 중에서 하로만큼 일찍 상품이 됐어야 할 물건도 드문데, 정작 하로 자체를 세워 파는 완구가 나온 것은 TV판 방영으로부터 20년도 더 지난 2002년이었다. 마스코트 로보 하로(マスコット…
Hardware올드맥 시리즈 4편, Power Macintosh 5200 LC
1994년 첫 PowerPC 3종을 1편 6100 , 2편 7100 , 3편 8100 으로 마쳤다. 출시 순서대로 이어가면 다음 차례는 1995년 4월의 Power Macintosh 5200 LC다…
Hardware팜파일럿 프로페셔널을 POSE로 다시 켜기
셀빅을 다룬 김에 그 맞은편에 있던 물건을 마저 정리한다. 1990년대 후반 국내 PDA 시장은 제이텔 셀빅과 미국에서 건너온 팜파일럿이 양분했고, 사무실 책상마다 둘 중 하나가 크래들에 꽂혀 있었…
RHEL 9에서 Podman rootless 컨테이너 운영하기
사내 서버를 Rocky 9로 올리면서 Docker를 그대로 쓸지 고민하는 상황이 종종 생긴다. RHEL 계열에는 이미 Podman이 기본 저장소에 들어 있고, 데몬을 띄우지 않는 구조라 운영 부담이…
Hardware올드맥 시리즈 3편, Power Macintosh 8100
1994년 첫 PowerPC 맥 3종을 한 대씩 훑는 시리즈의 마지막 편이다. 1편에서 보급형 피자박스 Power Macintosh 6100 을, 2편에서 중형 데스크톱 Power Macintosh…
GPT-6 Astra 달라진점
새 모델이 나오면 제일 먼저 하는 일이 가격표와 모델 문서 두 페이지를 나란히 열어놓고 지금 쓰는 모델과 비교하는 것이다. 발표문에 붙은 벤치마크 표는 대체로 좋아 보이게 그려져 있어서, 실제로 갈…
ExecutorService로 병렬 호출하면 왜 스레드가 새는가 - JDK 25 구조적 동시성 StructuredTaskScope로 실패 시 자동 취소
서비스 하나가 화면을 그리려고 회원 정보, 주문 내역, 추천 목록을 각기 다른 API에서 끌어오는 구조는 어디에나 있다. 순차로 부르면 느리니 병렬로 묶는데, 이때 ExecutorService 와 …
Nginx 502 'upstream sent too big header' - proxy_buffer_size, proxy_buffers, busy_buffers_size로 큰 응답 헤더 받기
1. 개요 백엔드 WAS 앞에 Nginx를 리버스 프록시로 두는 구성은 흔하다. 평소 잘 돌던 경로가 어느 날 특정 사용자, 특정 API에서만 502를 내뱉을 때가 있다. 로그인 직후나 세션이 커진…
Kafka 스키마를 안전하게 바꾸기 - Schema Registry와 Avro로 호환성 지키고 배포 순서 사고 막기
메시지 스키마에 필드 하나 추가하는 일은 사소해 보인다. 그런데 카프카처럼 프로듀서와 컨슈머가 따로 배포되는 구조에서는 이 사소한 변경이 컨슈머를 멈춰 세우는 원인이 된다. 예전에 JSON 문자열을…
Langfuse 자체 호스팅으로 LLM 앱 관측하기 - 트레이스 계측, 토큰 비용 추적, 프롬프트 버전과 평가 대시보드
LLM 애플리케이션을 운영에 올리고 나면 항상 같은 질문을 받는다. "이번 달 OpenAI 요금이 왜 이렇게 나왔나", "어제 그 답변이 왜 이상하게 나갔나", "프롬프트를 바꿨는데 품질이 좋아진 …
HAProxy L7 로드밸런싱 - balance 알고리즘 고르기, httpchk 헬스체크(기본은 OPTIONS), sticky 세션과 stats 대시보드
서버를 두 대 이상으로 늘리고 나면 그 앞에 뭘 세울지가 다음 고민이 된다. 클라우드 관리형 로드밸런서(ALB, NLB)를 쓰면 편하지만, 온프레미스나 단일 VM 위에서 프로세스를 여러 개 띄워 분…
쿠버네티스에 Argo CD로 GitOps 파이프라인 깔기 - Application, 자동 sync, self-heal로 kubectl apply 손절하기
클러스터를 몇 명이서 나눠 쓰다 보면 어느 순간 아무도 지금 떠 있는 게 Git의 어느 커밋인지 자신 있게 말하지 못하는 상태가 된다. 누군가 급해서 kubectl edit 로 replicas를 바…
🔥 인기 글
yum을 이용한 Ansible Installation (CentOS 기준)
본 문서는 CentOS 기준으로 작성되었으며, yum을 이용하여 설치합니다. (1) 아래 명령문을 실행합니다. sudo yum install ansible (2) 설치에 성공하면 아래와 같이 Com…
golang REST API 서버 컨테이너 빌드
개요 golang으로 간단한 REST API 서버를 작성하고, 다중 스테이지(Multi stage) Dockerfile로 빌드하여 컨테이너로 배포한다. API 서버 모듈 임포트 REST API 서버…
column 위치에 따른 select 성능 비교
TABLE 의 컬럼 위치에 따른 select 성능 차이가 있는지 궁금하여 알아보던 중 좋은 글을 발견하여 테스트 해본 결과 입니다. --1. TEST 환경 구성 1) 250 개 COLUMN 테이블 …
Nginx 주요 설정 (nginx.conf)
1. 개요 지난 번 포스팅을 통해 OS X에서 Nginx 1.4.4를 설치 하여 보았습니다. 강철지그님께서는 계속 작업을 해주고 계십니다. Linux에서 Nginx 1.4.5 설치 Linux에서 N…
오라클 접속 정보 설정(listener.ora, sqlnet.ora, tnsnames.ora)
- 오라클 접속 정보 설정(listener.ora, sqlnet.ora, tnsnames.ora)- ♣ listener.ora - 위치: 서버에서 $ORACLE_HOME/network/admin/l…
Tomcat 업그레이드 후 server.xml 설정 변경.
최근 Apache Tomcat의 AJP 취약점 발표이후, 해당 취약점에 대응하는 업그레이드 버전이 나왔다. 관련 취약점은 다음과 같다. Apache Tomcat AJP 취약점 보안 조치 권고(2차)…