전체 글 (107) 썸네일형 리스트형 python-pptx 로 만든 장표에서 글자가 겹칠 때 (상자 높이와 글자 높이는 다르다) 좌표를 다 맞게 넣었는데도 자동 생성한 장표에서 글자가 겹치는 이유와, 그걸 미리 잡아내는 방법을 알아보는 글입니다.스크립트로 장표를 만들고 열어봤더니 아래쪽 글자가 위 글자를 뚫고 올라와 있었습니다.좌표를 다시 확인했습니다. 상자 위치도 높이도 계산한 대로 들어가 있었습니다. 겹칠 이유가 없는 값이었습니다.원인은 상자가 아니라 그 안에 들어간 글자였습니다. 상자 높이보다 글자가 더 컸습니다.- 상자 크기와 글자가 실제로 차지하는 크기는 다르다- python-pptx 는 글자를 그려보지 않으므로 그 크기를 모른다- 좌표만 비교하는 검사는 이 겹침을 못 잡는다- 실제 크기는 파워포인트에 물어봐야 알 수 있다- 물어볼 수 있으면 자동으로 잡아낼 수 있다1. 좌표는 맞는데 결과가 겹칩니다상자를 아래위로 나란히.. AES 암호화 결과가 매번 다를 때 (암호문 앞에 붙는 랜덤 IV) 같은 평문에 같은 키를 넣었는데 암호문이 매번 달라지는 이유와, 그래서 뭘 조심해야 하는지 알아보는 글입니다.같은 값을 두 번 암호화해 봤는데 결과가 서로 달랐습니다. 키도 같고 입력도 같은데 나온 문자열이 다릅니다.처음에는 코드를 의심했습니다. 키가 매번 새로 만들어지나, 인코딩이 섞였나 하고 한참을 봤습니다.그런데 복호화해 보면 둘 다 원래 값이 정확히 나왔습니다. 깨진 게 아니었습니다.- 암호문이 매번 다른 건 버그가 아니라 정상이다- 매번 같이 나오는 쪽이 오히려 위험한 설정이다- 암호문 앞부분에 매번 새로 만든 값이 붙어 있다- 그래서 암호문끼리 비교하는 코드는 반드시 틀린다- 검색이나 중복 확인이 필요하면 다른 장치를 따로 둬야 한다1. 결과가 매번 달라지는 게 정상입니다같은 입력에 같은 키를.. 3.3% 떼고 받았는데 5월에 또 신고하라고 할 때 (원천징수는 세금이 아니라 선납) 떼고 받았으니 끝난 줄 알았는데 5월에 신고 안내가 오는 이유를 알아보는 글입니다.용역비를 받을 때 3.3%를 떼고 입금됩니다. 세금을 낸 것처럼 보이니 그걸로 끝났다고 생각하기 쉽습니다.그런데 다음 해 5월이 되면 종합소득세 신고 안내가 옵니다. 이미 뗐는데 왜 또 하라는 건지 의아해집니다.이유는 간단합니다. 3.3%는 세금이 아니라 미리 걷어둔 돈이기 때문입니다.- 3.3%는 선납이지 완납이 아니다- 실제 세금은 5월에 정산해서 확정된다- 수입이 적었다면 돌려받을 수도 있다- 신고를 안 하면 그 환급을 못 받는다- 직장을 다니면서 받았다면 합산해서 다시 계산한다1. 3.3%는 왜 떼는 걸까요돈을 주는 쪽이 미리 떼서 대신 납부해 주는 제도입니다. 원천징수라고 부릅니다.받는 사람이 1년 뒤에 알아서 낼.. AWS SES 535 Authentication Credentials Invalid 로 메일 발송이 막힐 때 (IAM 액세스 키와 SMTP 자격증명 차이) 키를 분명히 새로 받았는데 인증만 계속 실패할 때, 어디를 봐야 하는지 알아보는 글입니다.메일 발송 계정 정보를 갱신하고 나서 발송이 전부 막혔습니다. 로그에는 535 하나만 반복해서 찍혔습니다.정확히는 javax.mail.AuthenticationFailedException: 535 Authentication Credentials Invalid 였습니다.키는 방금 발급받은 것이고 오타도 없었습니다. 그런데도 서버는 계속 자격증명이 틀렸다고 답했습니다.원인은 단순했는데, 콘솔에서 받은 값을 그대로 쓰면 안 되는 자리가 하나 있었습니다.- 535는 자격증명이 틀렸다는 뜻이지 권한이나 네트워크 문제가 아니다- SMTP 비밀번호는 IAM 시크릿 키가 아니다. 별도 변환이 필요하다- 사용자명은 AKIA...로 .. ssh-keygen 한 번에 개인키를 날렸을 때 (덮어쓰기 함정과 복구 경로) 옵션 하나를 빼먹어서 유일한 접속 키를 잃은 과정과, 그때 확인해야 할 곳들을 정리한 글입니다.서버가 비밀번호 로그인을 막아 두어서 공개키를 새로 만들어야 했는데, 아무 생각 없이 ssh-keygen 만 치고 엔터를 눌렀습니다.기본 저장 경로를 묻길래 그대로 넘겼고, 그 다음에 나온 덮어쓸지 묻는 줄에서 y 를 누른 순간 기존 키가 사라졌습니다.문제는 그 키가 그 서버에 들어갈 수 있는 유일한 수단이었다는 것이고, 이미 접속해 있던 창 하나만 살아 있는 상태가 됐습니다.- ssh-keygen 은 -f 를 안 주면 기본 파일을 덮어쓴다- 덮어쓰기 확인 줄이 유일한 방어선인데 그냥 지나치기 쉽다- 개인키는 어디에도 자동 백업되지 않는다- authorized_keys 는 >> 로 붙인다(> 는 기존 키를 전부.. python-pptx로 투명도와 그라데이션 넣기 (안 먹는 속성 대신 XML 직접 쓰기) 라이브러리가 제공하는 속성인데 파일에는 반영되지 않는 경우와, 그 자리를 XML 한 조각으로 메우는 방법입니다.HTML 로 만든 시안을 파워포인트로 옮기면서 반투명 카드와 배경 그라데이션을 그대로 살리려고 했는데, 속성은 분명히 있고 에러도 안 나는데 결과물에는 아무 변화가 없었습니다.값을 바꿔 가며 몇 번을 다시 만들어도 똑같아서 처음엔 제 코드를 의심했는데, 생성된 파일을 풀어 보니 XML 에 아예 안 들어가 있었습니다.라이브러리가 못 하는 걸 하려는 게 아니라 포맷에는 있는데 라이브러리가 안 써 주는 상황이라, 그 부분만 직접 넣어 주면 되는 문제였습니다.- fill.transparency 는 값을 넣어도 XML 에 반영되지 않는다- 파워포인트 파일은 zip + XML 이라 직접 열어 확인할 수 있.. 자바 8에서 AES-256이 갑자기 안 될 때 (JCE 정책 파일과 8u161 경계) JDK를 갈아 끼웠더니 암호화가 깨지는 이유와, 예전 서버에서만 되던 진짜 원인을 찾는 방법입니다.32비트 JDK로 돌던 서비스를 64비트로 옮기는 김에 같은 버전끼리 맞춰 놓았는데, 기동은 되는데 로그인만 하면 암호화 쪽에서 예외가 떨어졌습니다.버전도 같고 설정도 같은데 예전 것에서는 되고 새 것에서는 안 되니 한참을 헤맸는데, 원인은 소스도 설정도 아니고 JDK 안에 들어 있는 정책 파일 두 개였습니다.누군가 몇 년 전에 그 파일을 바꿔 놓았고, 그 사실이 어디에도 적혀 있지 않아서 JDK를 새로 깔면 그대로 재현되는 함정이 되어 있었습니다.- 자바 8은 버전에 따라 AES-256 사용 가능 여부가 갈린다- 경계는 8u161 이고, 그 이전이면 정책 파일을 직접 갈아 끼워야 한다- 갈아 끼울 파일은 .. 개인정보 안전성 확보조치, 실무에서 자주 걸리는 항목만 (점검 전 자가 체크리스트) 법령을 다 읽기는 부담스럽고 점검은 다가올 때, 어디부터 보면 되는지 실무 기준으로 정리한 글입니다.1. 법을 몰라서 막히는 게 아니다개인정보를 다루는 시스템을 운영하면 주기적으로 점검을 받게 되는데, 여기서 흔히 겪는 어려움은 규정을 이해하지 못해서가 아닙니다. 조치는 해 뒀는데 그걸 보여줄 게 없어서 막힙니다.점검에서 실제로 오가는 대화는 대체로 "했느냐"가 아니라 "했다는 걸 어떻게 확인할 수 있느냐" 입니다. 그래서 준비의 방향도 규정을 외우는 쪽이 아니라 화면이나 파일로 보여줄 수 있는 상태를 만드는 것이 됩니다.아래는 실무에서 자주 지적되는 순서대로 정리한 것이라, 위에서부터 훑어보시면 됩니다.2. 접근 권한 - 준 기록보다 뺀 기록권한을 부여한 기록은 대개 남아 있는데, 회수한 기록이 없어서.. 이전 1 2 3 4 ··· 14 다음