Engineering 301

Spring @Async 사용 예제

다음과 같은 코드가 있다. DB 에서 처리할 작업 목록을 가지고 와서 하나씩 처리하는 코드인데, 한번에 하나씩 즉, 동기식으로 동작한다.@Sl4j@Componentpublic class ScheduledTask { private final DoService doService; private final DoMapper doMapper; @Scheduled(fixedDelayString = "300000") public void analyze() { Job job; while((job = doMapper.findJobsWithNotRunning()) != null) { int rs = doMapper.updateJobStatusIfNotRun..

Engineering/Spring 2025.06.09

Spring의 빈(Bean) 관리와 AOP(Aspect-Oriented Programming) 프록시의 작동 방식

Spring의 빈(Bean)과 프록시Spring 컨테이너의 빈: Spring 컨테이너는 애플리케이션 시작 시 @Service, @Repository, @Component 등으로 선언된 클래스의 인스턴스를 생성하고 관리합니다. 이 인스턴스들을 "빈"이라고 부릅니다.@Async와 AOP 프록시 생성:어떤 서비스 클래스(예: MyServiceA)의 특정 메소드(예: asyncMethod())에 @Async 어노테이션이 붙어 있고, @EnableAsync가 활성화되어 있다면, Spring 컨테이너는 MyServiceA의 실제 인스턴스(myServiceA_real)를 생성하는 것 외에, MyServiceA의 프록시 객체(myServiceA_proxy)를 생성합니다.이 프록시 객체는 myServiceA_real을 ..

Engineering/Spring 2025.06.09

Pdf Creator 1.0.0 - 사진 이미지를 PDF 로 변환

디지털 도서를 다운받을 수 없는 경우, 개인용으로 가지고 있기 위해 한장씩 캡쳐를 했다. 사진 파일들이 많아지니깐 관리가 안되서 하나의 pdf 로 담아둘려고 Cursor 로 윈도우 앱을 제작해 봤다. 텍스트 검색을 지원하는 OCR 까지 같이 넣을려고 Tesseract-OCR 도 적용해 보았지만 투명한 텍스트 레이어를 코드에 적용 작업이 쉽지 않았다. 그래서 어쩔 수 없이 이미지 파일들을 하나의 pdf 파일로만 변환해주는 앱만 flutter 로 제작했다. 나중에 능력이 되면 텍스트 검색이 되게 하고 싶다. 1. 프로그램 설치 2. 설치 후 바탕화면 앱 아이콘을 클릭해서 앱을 실행합니다. 3. 왼쪽 하단의 "이미지 선택" 버튼을 클릭해서 이미지들을 선택하고, "이미지 생성" 버튼으로 작업을 시작합니다. 4...

Engineering/Etc 2025.05.30

Inno Setup 예제

플러터로 제작한 윈도우 앱을 Inno Setup 을 사용해서 설치 실행 파일로 만들때 내용을 정리해 본다. Inno Setup 은 처음 시작할때는 "New.." 버튼을 눌러서 Wizard 기능을 이용해서 설치할 실행 파일을 선택하는 화면이 나오고 필요한 리소스까지 다 선택할 수 있는데, 매 선택화면에서 이거다 싶은거를 입력하고 나서 setup 실행 파일을 만들고 나서 직접 설치해보면 의도랑 안 맞는게 나올수 있다. 그렇다고 매번 Wizard 기능을 사용할 수도 없다. 생성한 setup 스크립트 파일인 .iss 로 어떻게 다시 Wizard 로 나오게 하는지 잘 모르겠더라. - 실행 파일 및 필요한 리소스 포함 - "flutter build windows --release" 배포용 실행 파일 생성: 실행 ..

Engineering/Flutter 2025.05.28

Cloud SQL 운용 비용 비교 in GCP

GCP Cloud SQL 비용 비교 ★ vCPU: 10, mem : 64 GB, 4대 운용, HDD 타입, 데이터 크기 무시 => 1일 204,000 원대 ★ vCPU: 1, mem : 3.75 GB, 4대 운용, HDD 타입, 데이터 크기 무시 => 1일 94,000 원대 (이전 보다 54% 절감) ★ vCPU: 1, mem : 3.75 GB, 4대 중지 상태, HDD 타입, 데이터 크기 무시 => 1일 86,000 원대 (이전 보다 9% 절감) - DB 하드웨어 스펙만 변경해도 비용 절감된다. 설정 변경 반영할때 가이드 문서에도 나오지만 정말 5분 안으로 리부팅이 완료된다.- Cloud SQL 서비스 사용안한다고 중지만 하지 말고 비용은 계속 나가니깐 바로 삭제하자.

Engineering/Etc 2025.05.07

쿠팡 파트너스 연결

- 골드 박스https://link.coupang.com/a/crRmPs 쿠팡이 추천하는 골드박스 관련 혜택과 특가쿠팡이 추천하는 골드박스 관련 특가를 만나보세요. 로켓와우 회원은 다양한 할인과 무료 배송 및 반품 혜택도 누릴 수 있어요.pages.coupang.com - 로켓 와우https://link.coupang.com/a/crRnOs "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

Engineering/Etc 2025.05.03

GCP SQL 인스턴스 구성(hw 사양) 변경시 "Setting flag innodb_buffer_pool_size to 37580963840 exceeds the available memory for the instance's machine type e2-custom-2-8192" 오류 해결

서비스가 점점 노후화되서 GCP SQL 서버 사양을 낮출려고 vCPU, 메모리 수치를 변경하려고 하니 "Setting flag innodb_buffer_pool_size to 37580963840 exceeds the available memory for the instance's machine type e2-custom-2-8192" 오류가 나면서 실패했다. 메시지를 보아하니 innodb_buffer_pool_size 설정값을 높게 했다가 낮은 사양으로 바꿀려고 하니 수치가 안맞는다는 건데, 직접 최소 수치를 넣었는데도 적용이 안되어서 어떻게 변경해야 할지 난감했다. (GCP 다 보니 허들이 있다.) 그런데, 생각해보니 gemini 에서 질문하면 답이 나올거 같아서 해보니 정답이었다. 메모리 설정 계산..

Engineering/Etc 2025.04.24

ytdown 1.0.0 - 유튜브 영상 다운로드

youtube 자주 보는 영상을 다운로드 하기 위해서 yt-dlp 프로그램을 많이 사용하는 편입니다.그런데, yt-dlp 도 업데이트를 안하니깐 파일 다운로드가 실패하는 현상이 나오더군요. (https://firstboos.tistory.com/509)그래서 한번 만들어봤습니다. 원래는 실행 파일(exe) 하나 짜리로 만들고 싶었으나, Cursor AI 를 이용해서 플러터로 제작하다보니 실행하기 위해서는 기본으로 포함되어야하는 dll 들이 꼭 있어야 하네요. 어쩔수없이 inno setup 프로그램을 이용해서 설치 프로그램 형태로 제작했습니다. 1. 프로그램 설치 (ytdown-setup.exe) 2. 프로그램 실행 (ytdown.exe) - 유튜브 영상 주소 입력 3. 비디오 정보 가져오기 4. 비디오..

Engineering/Etc 2025.04.21

최신 IT 도서 무료 증정 신청 방법

신청 후 추첨을 통해서 IT 도서를 받을 수 있는 있는 곳이다. 신청 절차는 다른 도서 출판사와 달리 위키에 로그인해서 받아 보고 싶은 책 "제목"을 댓글로 한 줄 추가만 하면 된다. 구구절절히 사연을 등록할 필요도 없고 단 한줄만 작성하면 된다.(그러나 나도 아직 책 한권 당첨된적이 없다. 그만큼 빡센(?) 경쟁률인듯) https://wikidocs.net/book/11269 출판사와 함께하는 도서 증정 이벤트위키독스와 출판사가 함께하는 도서 증정 이벤트입니다. **도서 지원 출판사 목록** * 이지스퍼블리싱 (매월 1주차) * 제이펍 (매월 2주차) * 한빛미…wikidocs.net 도서 증정 이벤트 한거를 보면 거의 매주 진행한듯하다. 항상 금토일에 진행하니, 최신 IT 책 좋아하시는 분들은 ..

Engineering/Etc 2025.03.27

삼성폰 안드로이드폰 공장 초기화 방법 - 리커버리 모드 진입

가족이 사용하던 삼성 안드로이드폰(A35)을 사용하기 위해 초기화를 하려고 네이버/구글에서 검색하면 온갖 광고에 챗GPT 로 작성한 듯한 글 밖에 안보이지만 꾸욱 참고 찾다보면, 거의 모든 내용들이 폰에 들어간 시점부터 설정에서 초기화하는 방법을 알려준다. 그러나, 문제는 핀번호(비밀번호)를 까먹어서 도저히 폰에 들어갈 수가 없는 상황이다. 검색하면 나오는 광고의 홍수글에서 찾아낸 리커버리 모드로 진입하는 방법은 전원 연결하고 볼륨버튼 + 전원버튼을 꾸욱 누르고 있다가 로고 나오면 손을 떼라는 것이었는데, 부팅하고 나면 계속 핀 번호 입력하는 화면으로만 나온다. 분명히 아주 옛날에는 초기화하는 과정이 버튼 조작으로 잘됐던거 같은데, 먼가 방식이 바뀐듯하다. (본인은 아이폰을 사용중이어서 어떤일이 있었는..

Engineering/Android 2025.03.24