백엔드 개발과 운영에서 직접 부딪힌 문제를 기록합니다.

Java · Spring · Database · Infra · AI tools

Reading Paths

처음 온 개발자를 위한 기본 경로

CS 감각부터 Linux와 배포까지 흐름을 잡습니다.

Start
20 posts2 steps

AI 도구를 개발에 붙이는 경로

AI 개념부터 Spring 연동과 운영 판단까지 연결합니다.

New
39 posts2 steps

Recent Posts

License·2026년 10월 26일

정보처리기사 실기 2026년 3회 후기: 기출 21회차를 분류해 보니 이론은 재출제였다

2026년 1·2·3회 정보처리기사 실기 이론·SQL 문항 중 예전 기출과 같은 문제·개념의 수를 나타낸 누적 막대 차트. 1회 13문항 중 8개, 2회 13문항 중 9개, 3회 12문항 중 9개가 재출제다.

정보처리기사 실기 2026년 3회 후기를 남긴다. 4월 1회 실기에서 떨어졌고, 7월 2회는 준비가 부족해 접수만 하고 넘겼다. 3회를 앞둔 마지막 이틀은 새 개념을 넓게 보기보다 '기출이 어떻게 다시 나오는지'를 데이터로 확인하고, 그에 맞춰 공부 순서를 다시 짜는 데 썼다. 결과부터 말하면 가채점은 20문항 중 13개, 65점이다. 이 글은 그 이틀 동안 확인한 것과 시험장에서 실제로 … 더 읽기

License·2026년 10월 25일

정보처리기사 실기 2026년 3회 정답과 해설: 복원 20문항 풀이와 가채점 정답표

2026년 1·2·3회 정보처리기사 실기 이론·SQL 문항 중 예전 기출과 같은 문제·개념의 수를 나타낸 누적 막대 차트. 1회 13문항 중 8개, 2회 13문항 중 9개, 3회 12문항 중 9개.

정보처리기사 실기 2026년 3회 정답과 해설을 정리했다. 3회 실기를 직접 치고 나서, 수험생들이 복원한 20문항의 답을 하나씩 다시 확인했다. 복원 글에 적힌 답을 그대로 옮기지 않고 코드 8문항은 컴파일해 실행했고, SQL 2문항은 Oracle에서 돌렸고, 서브넷은 계산으로 확인했다(실행 검증은 Claude Code로 했다). 전부 복원 정답과 같았다. 2026-10-26 기준이다. 문항은 정처기감자 두근두근 문제 복원에서 문항마다 공감이 가장 … 더 읽기

Backend & Spring·2026년 10월 8일

ddl-auto가 지어주지 않는 테이블: 감사 로그를 PostgreSQL 파티셔닝으로 설계한 날

월별 칸으로 나뉜 기록 보관함에서 오래된 1월 서랍 하나를 통째로 빼내 보관 창고로 옮기는 그림

그 테이블은 누가 설계하지 지난 글은 질문 하나를 남기고 끝났다. 롤백에서도 살아남는 기록이라면, 그 기록이 눕는 테이블은 누가 설계하지? 적어도 ddl-auto는 아니었다. 고백하자면 나는 테이블을 거의 직접 만들어 본 적이 없다. 엔티티 클래스에 필드를 적으면 JPA의 ddl-auto가 알아서 CREATE TABLE을 날려 준다. 회원, 게시글, 주문처럼 행이 생기고 고쳐지고 지워지는 평범한 테이블이라면 그걸로 충분했다. 엔티티가 곧 … 더 읽기

Backend & Spring·2026년 7월 21일

롤백돼도 남아야 하는 기록: 트랜잭션을 REQUIRES_NEW로 쪼갠 이유

완공된 창고 일러스트. 정문에는 방명록 받침대가 놓였고, 쓰기 문 위에는 CCTV가, 측면의 좁은 뒷문 위에는 보완 카메라가 달려 있다.

“실패한 시도도 남겨라” 내가 운영에 참여하는 시스템(농산물 생산 이력 관리, 규제 산업)의 감사 로그 요구에는 처음 들으면 갸웃하게 되는 조항이 하나 있었다. 실패한 시도도 남겨라. 로그라는 건 보통 '일어난 일'의 기록인데, 이 요구는 일어나다 만 일 — 시도됐지만 실패해서 데이터에는 아무 흔적도 남기지 못한 일 — 까지 적으라고 말한다. 규제 산업에서는 '누가 무엇을 시도했고 실패했는가'도 … 더 읽기

Backend & Spring·2026년 7월 17일

남의 이름으로 기록된 로그인: ThreadLocal에 남은 유령

청소가 생략된 호텔 객실에 새 투숙객이 들어와, 금고 안에 남아 있는 이전 투숙객의 반투명한 신분증을 발견하는 일러스트.

고백부터 하겠다 우리 시스템은 한동안, 어떤 로그인을 남의 이름으로 기록하고 있었다. B가 로그인했는데 기록에는 A가 남는 식으로. 먼저 말해두면 이 결함은 원인 규명과 수정이 끝난 '과거 사례'다. 그러니 이 글은 취약점 공지가 아니라 부검 기록 — 사고의 경위와 원인, 재발 방지책을 남기는 포스트모템이다. 시리즈 이름에 SQL이 붙어 있지만 이번 범인은 SQL이 아니다. 그래도 이 시리즈가 … 더 읽기

Backend & Spring·2026년 7월 14일

WITH RECURSIVE로 범인 찾기: 코드 한 줄 안 고치고 끝난 장애

탐정이 손전등으로 카드 트리를 비추는 일러스트. 말끔한 카드들 사이에서 맨 아래의 낡고 갈라진 카드 하나가 불빛에 걸려 있다.

“삭제 버튼이 안 먹어요” 운영 시스템에서 이런 신고를 받으면 머릿속에는 대개 같은 순서로 생각이 흐른다. 최근 배포에 뭐가 들어갔더라. 저 기능을 마지막으로 만진 게 누구더라 — 설마 나인가. 신고를 다 읽기도 전에 커밋 기록부터 뒤지는 것. 코드 쓰는 사람의 오래된 반사신경이고, 대개는 그 반사신경이 맞는다. 이 글은 그 반사신경이 틀렸던 어느 사건의 기록이다. 그리고 이 … 더 읽기