본문 바로가기

개발이야기

파이썬 코드 샘플 - 대량메일 발송 하기 CSV 에 발송한 메일주소와 컨텐츠에 들어갈 내용을 미리 편집한후 파이썬 코드 실행 회사 동료분이 만들어주셨던 건데 살짝 수정해서 유용하게 사용했습니다. ;; #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Created by josh.z on 2021/02/22. import csv import logging import smtplib import sys import time from datetime import datetime from email.mime.text import MIMEText from email.header import Header ######### 수정필요 ########################################## SENDER.. 더보기
파이썬 코드 샘플 1. PDF to Audio import pyttsx3,PyPDF2 pdfreader = PyPDF2.PdfFileReader(open('story.pdf','rb')) speaker = pyttsx3.init() for page_num in range(pdfreader.numPages): text = pdfreader.getPage(page_num).extractText() ## extracting text from the PDF cleaned_text = text.strip().replace('\n',' ') ## Removes unnecessary spaces and break lines print(cleaned_text) ## Print the text from PDF #speaker.say(cl.. 더보기
정규식은 항상 헷갈림 특히 정규식 ADN 조건 .. -_-;; httpSecurity .regexMatcher("^(/api/(?=(?!ping))(?=(?!v1/cs)).*|/logout)") 더보기
테스트 컨테이너 ~ 굿 ! 도커 만으로도 충분히 편했는데.... 이건 땡큐 베리 머취 입니다. www.testcontainers.org/ Testcontainers  Testcontainers About Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. Testcontainers make the followi www.testcontainers.org 더보기
MockMvc Test 대신 실제 Url 호출 테스트 (서블릿 필터 테스트) 서블릿 필터를 테스트 하고 싶었는데 ... mockMvc 테스트로는 제대로 호출을 할수가 안됨. @SpringBootTest를 이용해 랜덤포트로 띄우고 restTemplate 으로 호출하면 되더라. 간단한건데 바로 생각이 안나서 좀 삽질했음. @ActiveProfiles("sandbox") @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) class FilterTest @Autowired constructor( val restTemplate: TestRestTemplate ) { val internalUrl = "/api/v1/internal/use" @Test @DisplayName("appGw 통해서 internal.. 더보기
JPA 업데이트 동시성 문제 (feat. @DynamicUpdate) JPA 업데이트 동시성 문제 (feat. @DynamicUpdate) 최근에 담당하는 서비스에서 이상한 케이스가 발생해서 조금 자세히 확인을 해봤습니다. 비지니스 플로우는 아래와 같습니다. 1. Insert into table_A ... 2. update table_A set terms_agreed_at = now() 3. update table_A set token_bound_at = now() 1~3 번 까지 순차적으로 발생 해야 하는데 실제 DB에 쌓인 데이터는 1번(인서트)와 3번(업데이트)만 처리되고 2번이 누락되어 terms_agreed_at 칼럼이 null 로 남아 있는 경우가 종종 발생했네요. 서버 로그를 확인해보면 .. 2번 API 호출이 정상적으로 실행 되었음에도 실제 데이터는 누락 되.. 더보기
When should you use 'private static final' 'private static final variable' vs 'private final variable' When should you use the 'static' keyword? What is the difference between 'private static final variable' and 'private final variable'? The static keyword is used when all instances of the class must have the same value. It is better to use it separately from instance variables. 더보기
DateTimeFomatter 에서 밀리세컨드 노출 여부 DateTime 이나 OffSetDateTime을 출력할때 별도의 포맷터를 지정하지 않거나 ISO DateTime 포맷터 같은걸 사용 하면 밀리세컨드가 표시될때도 있고 누락될때도 있음. 000ms 인경우 표시 없이 초 까지만 표기함 무조건 밀리세컨드 까지 표기 하려면 반드시 포맷터에 밀리세컨드 (SSS) 표기를 명시해줘야 함. 더보기