본문 바로가기
반응형

전체 글168

Java 할인 합계가 1원 다를 때 — BigDecimal 반올림 위치 맞추기 같은 할인인데 합계가 1원 다르면, 개별 상품과 전체 합계 중 어디에서 반올림했는지 먼저 맞춘다.이 예제는 상품 합계에서 할인한 뒤 마지막에 한 번 반올림해 4,498원으로 계산한다. 바로 이동문제 발생 · 해결방안 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 같은 상품 세 개가 4,497원 또는 4,498원 같은 입력값상품 가격1,999원수량3개할인율25% 한 개씩 할인·반올림하면 1,499원 × 3개 = 4,497원이다.세 개 합계에서 할인하면 5,997원 × 0.75 = 4,497.75원이고, 마지막에 반올림하면 4,498원이다. "> 2. 해결방안 — 중간 반올림을 빼고 마지막에 한 번 여기서는 합계 할인 후 원 단위 HALF_UP을 계산 규칙으로 정했다.프.. 2026. 11. 15.
PostgreSQL 최신 20건 조회 — 복합 인덱스로 200건 정렬 줄이기 고객 번호와 최신순 정렬을 함께 담은 인덱스가 있으면, 주문 200건을 정렬하는 대신 필요한 20건부터 읽을 수 있다.customer_id 인덱스만 있을 때와 복합 인덱스를 추가했을 때를 같은 조회로 비교한다. 바로 이동문제 발생 · 해결방안 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — LIMIT 20인데 먼저 200건을 읽는다 테이블은 orders, 고객 번호는 42다.고객 42에게 주문 200건이 있고, 화면에는 최신 주문 20건만 보여 주려 한다.처음 실행한다면 실습 준비·전체 코드에서 예제 DB부터 만든다. EXPLAIN (ANALYZE, BUFFERS, TIMING OFF) SELECT id,created_at FROM orders WHERE customer_.. 2026. 11. 15.
PostgreSQL EXPLAIN 읽기 — 20건 찾으려고 20만 행을 읽을 때 고객 번호 인덱스를 추가하면, 결제 20건을 찾으려고 20만 행을 훑는 일을 줄일 수 있다.같은 조회를 전후로 실행해 반환 건수는 그대로인지, 불필요하게 읽는 행과 블록은 줄었는지 확인해 보자. 바로 이동문제 발생 · 해결방안 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 20건을 찾고 199,980건을 버린다 실습 테이블은 payments, 조회할 고객 번호는 42다.처음 실행한다면 아래 실습 준비·전체 코드를 펼쳐 DB와 예제 자료부터 만든다. psql에서 다음 SQL을 실행한다.EXPLAIN 뒤의 SELECT가 실제 조회이고, 앞부분은 그 조회가 처리된 과정을 보여 준다. EXPLAIN (ANALYZE, BUFFERS, TIMING OFF) SELECT * FROM.. 2026. 11. 14.
Python SRT 자막이 1.5초 늦을 때 — 시간만 앞당겨 새 파일로 저장 자막이 처음부터 끝까지 1.5초씩 늦는다면, 모든 자막 시각에서 1500ms를 빼면 된다.input.srt는 보관하고, 시각만 바뀐 output.srt를 새로 만든다. 바로 이동문제 발생 · 해결방안 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 대사보다 자막이 일정하게 늦는다 아래 예제는 UTF-8 SRT와 Python 3.9 이상을 사용한다.영상 파일과 자막 문장은 바꾸지 않는다. 앞부분은 맞는데 뒤로 갈수록 차이가 커지는 자막은 이 방법의 대상이 아니다.이번에는 영상 전체에서 같은 1.5초 차이가 나는 경우만 다룬다. "> 2. 해결방안 — -1500ms로 새 자막 파일 만들기 실습 준비·전체 코드를 펼쳐 shift_srt.py와 input.srt를 같은 폴더에 .. 2026. 11. 14.
워해머 서바이버즈 티어·무기 조합 무기는 계속 늘어나는데 적이 잘 안 죽는다.보스는 살아 있고 뒤에서는 잡몹까지 밀려오니, 새 무기를 하나 더 고르면 나아질 것 같지만 업그레이드가 흩어지면 오히려 버티기 어려워진다.워해머 서바이버즈는 처음부터 가진 무기 하나를 진화시키고, 부족한 공격 범위를 두 번째 무기로 채우는 식으로 접근하는 편이 낫다.이번에는 Warhammer 40,000 쪽 초반 전투를 기준으로 캐릭터 선택, 무기 조합, 상자에서 진화가 나오지 않는 이유까지 정리했다.11월 10일 출시된 게임으로, 아래 내용은 Steam판 v2.1.6 기준이다.한국어를 지원하지만 아이템을 다른 공략과도 대조하기 쉽도록 영문 이름을 함께 적었다.처음에는 Malum Caedo로 진화 하나부터 완성처음 시작한다면 Malum Caedo와 Chainsw.. 2026. 11. 13.
PostgreSQL 접속 수 초과 해결 — 열린 연결을 찾고 반환하기 접속 수가 꽉 찼다면 먼저 사용 중인 연결을 찾아 정리한다.이 예제에서는 report_app 계정의 두 연결을 종료해, 막혔던 세 번째 접속이 다시 열리는지 확인한다. 바로 이동문제 발생 · 해결 방법 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 세 번째 접속이 거절된다 report_app 계정의 접속 한도는 2개다.두 터미널이 이미 접속해 있어 세 번째 접속에는 다음 오류가 나온다.FATAL: too many connections for role "report_app" 이 메시지는 해당 계정의 한도 초과다.서버 전체의 max_connections를 올려도 계정 한도 2개는 그대로 남는다. "> 직접 실행할 준비 아래를 펼치면 준비 명령, 전체 코드와 오류별 해결 방법을.. 2026. 11. 13.
반응형