SUP

만들고, 고치고, 배우는 것들을 짧은 글로 남길려고 합니다.

112026-07-04

자전거 국토종주

대학생 때 자전거 타본 지 오래된 둘이 중고 자전거 한 대로 급작스럽게 3박4일 633km 국토종주에 도전해 아라서해갑문부터 이화령의 고생과 긴 밤, 개에게 쫓기고 서로의 자존심으로 완주를 이어간 이야기를 담았다. 정상의 성취감과 도착 직후의 허탈함, 사고 소식에 웃음이 나던 순간까지, 피곤하지만 돌아보면 묘한 보람이 남았던 여정이었다.

102026-06-25

가비아 ssl 인증서 갱신

가비아에서 받은 인증서 파일을 윈도우 환경의 nginx에 맞게 cert.pem, chain.pem, privkey.pem으로 정리하고 fullchain.pem을 만들어 교체하는 과정을 정리한 글입니다. 백업을 먼저 하고 nginx 설정 검사를 한 뒤(권한 문제로 reload 대신) 재시작해 브라우저와 스크립트로 새 인증서가 반영되었는지 확인한 것이 핵심입니다.

092026-06-08

좋은 설계란 무엇일까?

객체지향책을 다시 읽으면서 깨달은 건, 좋은 설계란 단순히 클래스를 예쁘게 나누는 게 아니라 변경이 생겼을 때 덜 흔들리는 구조를 만드는 일이라는 점이다. 그래서 이제는 데이터보다 먼저 객체들이 어떤 행동을 하고 어떤 책임을 질지, 메시지는 어떻게 오갈지를 고민해 변경이 퍼지는 방향을 좁히는 쪽으로 설계하려 한다.

082026-05-28

SQL Server Logical Reads 기반 조회 쿼리 개선기

측정 데이터 목록 조회에서 최신 20건만 필요함에도 조인 순서 때문에 수집 로그 테이블에서 불필요한 읽기가 많이 발생하고 있었다는 문제를 STATISTICS IO/TIME으로 확인했습니다. 인덱스를 넣어 측정 테이블 읽기를 줄이고, 결국 먼저 20건을 뽑아서 그 결과만 로그와 대상자 테이블에 조인하는 구조로 바꿔 전체 logical reads를 약 98% 줄였습니다.

072026-05-27

JPA와 MyBatis를 같이 쓰기로 한 이유

레거시 iBatis 기반 프로젝트를 Spring Boot 3로 옮기며 등록·수정·삭제처럼 도메인 규칙과 변경 의도가 코드에 드러나는 부분은 JPA로 옮기고, 대시보드·검색·통계처럼 결과 모양을 SQL이 직접 만들어내는 조회는 MyBatis로 유지하기로 했습니다. 핵심은 기술을 섞는 것이 목적이 아니라 전환 리스크와 기능 성격에 따라 바꿀 것과 유지할 것을 명확히 나누는 현실적인 결정이었습니다.

062026-05-14

레거시 권한 정책 이식하기

레거시 eGov·XML 기반 권한을 Spring Security로 옮기면서 로그인은 되는데 이후 권한 동작(메뉴 노출 vs URL 접근 제어, 로그인 정책, 세션 연계 등)이 기존과 달라지는 문제가 생겼습니다. 해결은 단순 데이터 이식이 아니라 Authentication·SecurityContext·세션·URL 필터와 로그인 전 정책 검사(IP, 중복 로그인 등)를 다시 연결해 권한 흐름 전체를 복원하는 쪽으로 접근한 것이 핵심이었습니다.

052026-05-07

CQRS 작게 시작하기

DDD 맥락에서 CQRS를 꼭 인프라 분리로 시작할 필요는 없다는 이야기입니다 — 쓰기와 조회의 관심사가 달라지며 서비스가 비대해질 때 같은 DB를 쓰더라도 CommandService와 QueryService로 책임을 분리해 코드를 더 명확하게 만들면 된다는 결론입니다.

042026-04-27

레거시 화면 이식하기

레거시 화면을 Spring Boot 3로 옮기며 겉은 비슷해 보여도 조회 결과, 권한·세션 처리, 메뉴 노출 등에서 기존과 다른 동작이 나와 단순 코드 복사가 통하지 않는 문제를 겪었습니다. 그래서 어떤 URL·Controller·세션·SQL·DB가 결합해 결과를 만드는지 기준을 정하고 문서화한 뒤 Controller/Service 분리와 JPA/MyBatis 기준을 적용해 결과를 비교·조정하며 옮겼습니다.

032026-04-26

데이트

2주 만에 여자친구와 가볍게 동네 데이트를 하고 현대백화점과 교보문고를 천천히 둘러본 하루를 기록한다. 침착맨 팝업에서 웃긴 티셔츠를 찍고, 기억이 희미해진 책을 다시 사서 보고 라멘집에서 밥을 먹는 소소한 풍경이 오래 남을 만한 풍요로움으로 다가왔다.