Spring @PostConstruct

스프링으로 개발하다 보면 객체가 생성될때 초기화 작업을 하고 싶을때가 있다. 이럴때 클래스의 생성자에 코드를 많이 넣는데 만약 value injection 된 값을 가지고 할경우에 두가지 방법이 있다. 첫번째로 생성자 부분에 @Value 어노테이션을 사용해 값을 주입하는 방법 두번째로 @PostContruct를 활용하는 방법 @PostContruct는 Injection이 끝난 후에 실행되기 때문에 가능하다.

Ubuntu에서 Docker로 서비스시 주의할점

얼마전 서버에서 돌고 있는 서비스가 이유(?)도 없이 죽어 있었다. 다행이 서비스 되고 있지 않은 서비스 이여서 큰 이슈는 없었지만, 물론 서비스 되어 있었다면 모니터링을 하고 있었겠지만.. 여튼 로그를 뒤져보니…. 헉… 시스템에 돌고 있는 기본 업데이트 서비스가 도커를 업데이트 할려고 서비스를 내려 버렸… 앞으로 저런일이 생기지 않도록… 업데이트 관련 서비스를 내렸다. 우분투로 서비스를 운영할때에는 systemctl list-timers… Read More »

Spring Config Server S3 Multi Load Config

spring config server를 사용하다 보면 common 적인 설정은 따로 모아서 관리하고 싶을때가 있다. a service – a-serivce-dev.yml – common-dev.yml b service – b-service-dev.yml – common-dev.yml 다른 서비스이지만 공통적인 설정 부분은 하나의 파일로 관리하고 싶을때. spring.cloud.config.name: a-service, common 요렇게 해주면 두개의 config 파일을 로딩이 가능하다. 하지만 config server의 backend가 s3일 경우에는 어느것의 설정도 찾이 못한다. 소스코드를… Read More »

Spring Security Custom Request Parameter 사용하기

username / password 이외에 추가 파라미터(ex: OTP 코드)를 처리하기 위한 방법이다. 간단히 요약하면 addFilterBefore 필터에 Custom UsernamePasswordAuthenticationFilter 를 추가하여 Custom WebAuthenticationDetails 로 변경하여 넘겨주는 방식 위 코드는 일부를 발췌한 내용이라 보고 참고 정도만 하세요.

Raspberry PI4 Adafruit_DHT issue

라즈베리파이를 최신으로 업데이트 후 갑자기 온/습도 데이터를 읽어오지 못하는 이슈 발생 원인 Adafruit_DHT/platform_detect.py 에서 플랫폼을 제대로 못 읽어와서 그러함 예전에는 괜찮았지만 최신 버전으로 raspberry 커널을 업데이트하면 모델명이 바뀐듯 해결 Adafruit_DHT/platform_detect.py 파일을 열어서 112번째 라인에 아래 항목 추가 Virtual ENV 기준 경로 : venv/lib/python3.7/site-packages/Adafruit_DHT/platform_detect.py 참고링크 : https://stackoverflow.com/questions/63232072/cannot-import-name-beaglebone-black-driver-from-adafruit-dht

Docker restart option

docker 나 docker-compose 로 restart 를 지정할때 옵션 no : 재시작 하지 않음.always : exit code와 상관없이 항상 재시작.on-failure : exit code가 0일 아닐때만 재시작unless-stopped : 컨테이너 상태를 수동으로 stop 하기전까지 재시작. 요런식을 사용 가능.