반응형 전체 글156 PostgreSQL 이중화·삼중화 설정 — 복제부터 주 서버 전환까지 DB를 세 대 띄워도 Master 서버가 멈추면 새 데이터를 저장할 곳이 사라진다.복제 서버 가운데 어느 한 대를 새 Master로 바꾸고, 나머지 서버와 앱의 연결도 함께 옮겨야 다시 저장할 수 있다. PostgreSQL의 Master(Primary) 서버에 복제 서버 한 대를 붙이면 이중화, 두 대를 붙이면 삼중화 구성이 된다.이번에는 복제 서버를 하나씩 중지하고 Master도 교체한 뒤, 새 Master 서버 1대와 복제 서버 2대로 다시 구성했다. 먼저 Docker를 실행하고 터미널을 연다.아래 명령으로 실습용 주문 테이블을 만들고, 복제와 서버 전환을 순서대로 진행한다.먼저 세 대의 역할부터 나누기컨테이너처음 역할전환 뒤 역할pg-ha-primary쓰기·읽기 Master 서버중지 상태 유지pg-.. 2026. 11. 8. Java HttpClient 타임아웃 설정 API 주소는 맞는데 프로그램이 다음 줄로 넘어가지 않는다.서버가 응답할 때까지 기다리는 코드라면, 상대 서버가 멈춘 동안 호출한 쪽도 같이 묶인다.연결 제한을 1초로 넣었는데도 계속 기다리는 경우가 있다.연결을 맺는 시간과 응답을 기다리는 시간은 서로 다른 설정이기 때문이다.두 설정을 나누고, 응답 본문까지 늦어졌을 때 빠져나오는 코드로 정리했다.제한 시간은 어디에 거는 걸까설정예제 값대상HttpClient.connectTimeout1초새 연결을 맺는 단계. 기존 연결을 재사용하면 적용되지 않음HttpRequest.timeout2초해당 HTTP 요청. 본문까지 적용되는 범위는 JDK 버전 차이가 있음responseFuture.get3초응답 문자열을 받을 때까지 호출 스레드가 기다리는 시간1초, 2초, .. 2026. 11. 7. PostgreSQL 접속 권한 설정 PostgreSQL 계정을 만들었는데 접속이 안 되거나, 접속한 뒤에도 테이블을 읽지 못하는 경우가 있다.비밀번호 문제처럼 보여도 막힌 위치에 따라 고칠 곳이 달라진다. 접속 주소 → 인증 규칙 → 테이블 권한 순서로 나누면 원인을 찾기 쉽다.설정 파일 수정과 GRANT도 이 순서대로 진행한다.담당하는 곳결정하는 내용반영 방법postgresql.conf의 listen_addresses서버가 어느 주소에서 연결을 받을지변경 후 PostgreSQL 재시작pg_hba.conf어느 IP·DB·계정에 어떤 인증을 적용할지파일 검사 → reload → 새 연결GRANT / REVOKEDB 접속, 스키마 사용, 테이블·시퀀스 권한트랜잭션 확정 후 적용. 서버 reload 불필요실습용 DB와 접속할 클라이언트 만들기D.. 2026. 11. 7. PostgreSQL 중복 저장 오류 해결 — ON CONFLICT로 건너뛰거나 갱신하기 상품 가격을 다시 올리려는데 같은 상품코드가 있다는 오류가 나왔다.처음 등록은 됐지만, 같은 상품을 한 번 더 넣으면서 중복 키에 걸린 것이다. 이미 등록한 상품이라면 기존 값을 유지할지, 새로 받은 값으로 바꿀지부터 정하면 된다.두 경우를 ON CONFLICT로 나눠 처리해 보았다. 예제 상품은 코드가 P001인 머그컵으로, 처음 가격은 5,500원이고 새 가격은 6,000원이다.가격을 다시 저장하고 같은 요청도 반복해서 보내 보았다.상품과 가격은 설명을 위한 예제 데이터다.접속하고 임시 테이블부터 만들기아래 SQL은 다른 SQL 편집기에서도 실행할 수 있지만, 임시 테이블이므로 처음부터 끝까지 같은 연결을 유지해야 한다. 이 실습에서 사용하는 값은 다음과 같다.NAMESPACE: defaultNAME.. 2026. 11. 6. 엑셀 두 파일 비교하기 — 바뀐 값과 추가·삭제된 행만 뽑기 엑셀 파일을 새로 받았는데 행 순서까지 달라져 있으면 비교하기가 귀찮아진다. 어제 파일의 2행과 오늘 파일의 2행이 같은 상품이라는 보장이 없기 때문이다.그렇다고 전부 정렬해 놓고 하나씩 볼 수도 없고… 이번에는 상품코드를 기준으로 두 파일을 맞춰 보았다. 바뀐 값은 변경, 새로 들어온 상품은 추가, 빠진 상품은 삭제 시트에 따로 담는다. 원본 두 개는 읽기만 하고 결과 파일을 새로 만든다.행 번호 대신 상품코드로 맞추기첨부한 before.xlsx와 after.xlsx는 각각 네 행짜리 예제다. 시트 이름은 둘 다 재고이고, 첫 행에는 상품코드·상품명·단가·재고·비고가 있다. 실제 거래 자료가 아니라 비교하기 쉽게 만든 문구류 목록이다.상품코드달라진 내용00123볼펜 단가 1,000 → 1,200 / 재.. 2026. 11. 6. PDF 필요한 페이지만 추출하기 — 파이썬으로 2~4쪽과 7쪽만 저장 PDF가 길어도 필요한 건 몇 쪽뿐일 때가 있다. 앞부분에서 세 쪽, 뒤에서 한 쪽. 이 정도를 보내려고 문서 전체를 전달할 필요는 없다.이번에는 8쪽짜리 PDF에서 2~4쪽과 7쪽을 골라 한 파일로 저장했다. 결과는 2, 3, 4, 7 순서의 4쪽짜리 PDF다. 원본은 건드리지 않고 새 파일을 만든다. 필요한 쪽이 바뀌면 코드 대신 실행 명령의 번호만 바꾸면 된다.아래 예제는 macOS의 Python 3.12.14와 pypdf 6.21.4에서 실행했다. 예제 PDF는 페이지 순서를 구분할 수 있게 만든 자료다. 문서가 외부 사이트로 전송되는 코드는 없다. 패키지를 설치한 뒤 PDF를 읽고 저장하는 작업은 내 컴퓨터 안에서 이뤄진다.쪽 번호부터 맞춰 두기여기서 2쪽은 PDF 파일 안의 두 번째 페이지다... 2026. 11. 5. 이전 1 2 3 4 ··· 26 다음 반응형