Engineering 304

Google Play 앱 서명 기능을 사용시 발생한 오류 해결

Android 빌드할때 사용한 signing key 를 구글에서 관리하게 하기 위해 pepk.jar 와 공개키(encryption_public_key.pem) 를 다운받아서 개인 키를 암호화할 수 있다. test_keystore.jks : 빌드시 생성한 키 스토어 파일> java -jar pepk.jar --keystore=test_keystore.jks --alias=test_keyalias --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=encryption_public_key.pemEnter password for store 'test_keystore.jks':Error: Unable to export or e..

Engineering/Android 2025.07.24

CORS (교차 출처 리소스 공유) 오류 설명

웹 브라우저는 보안을 위해 동일 출처 정책(Same-Origin Policy)이라는 규칙을 따릅니다. 이 규칙은 웹페이지가 로드된 출처(Origin)와 다른 출처의 리소스에 접근하는 것을 제한한다. 여기서 "출처"는 프로토콜(http, https 등), 호스트(도메인 이름), 포트 번호를 조합한 것을 의미한다. 예를 들어, http://mywebsite.com:8080 에서 로드된 웹페이지는 http://anotherwebsite.com 에 있는 데이터나 https://mywebsite.com 에 있는 데이터에 바로 접근할 수 없다. 이는 악의적인 웹사이트가 사용자 모르게 다른 웹사이트의 정보를 빼가는 것을 막기 위한 보안 조치이다. - exchange.html 실시간 달러 환율 로딩 중....

안보이는 프로세스 찾기 on Windows

Windows 에서 가끔씩 발생하는 듯한데, 폴더 이름을 다른거를 바꾸거나 삭제하려고 할때 "다른 프로그램에서 열려 있으므로 작업을 완료할 수 없습니다" 라는 메시지가 나온다. 그런데, 해당 폴더에서 작업했던 프로그램들을 종료하고 명령 프롬프트(커맨트 창), 윈도우 탐색기도 다 닫았는데도 폴더 이름 변경이 안된다. 작업 관리자에서 확인해봐도 사용 했던 프로그램은 안보이는데, 폴더 이름 변경이 안된다. 종료 처리가 안된 프로세스가 폴더를 잡고 있나 보다 생각해서 이럴때는 보통 Windows 를 재부팅하면 되겠지만 재부팅을 못하는 상황도 있다. (중요한 작업을 돌리고 있거나 재시작하기에는 부담스러운 작업들...) 방법을 찾아보니 이런 상황에서 사용할 툴이 마이크로소프트에서 제공한다.- 프로세스 탐색기ht..

Engineering/Windows 2025.06.16

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