본문 바로가기

개발이야기

애드몹 광고 차단 ( Test 디바이스 등록 , 애플 IDFA flutter) 애드몹 광고가 차단 되었다. ㅠ.ㅠ iPhone의 경우 IDFA  값을 알아오는 것이 번거로워서 애드몹의 테스트 디바이스 등록을 미루고 있었는데 ...결국 애드몹 광고가 차단 되었다. ㅠ.ㅠ  의도적으로 어뷰징을 하진 않았지만 ... 상대적으로 유저수가 적은 상태에서 혼자 앱을 주로 많이 쓰다보니 애뷰징으로 차단 당했나 보다. 한달동안 바른생활(?)을 하면 차단이 자동으로 풀리거나 혹은 3개월이나 6개월 까지 차단 될수도 있고 심하면 영구차단을 당하기도 한다고 한다. ㅠ.ㅠ  일단 의지를 보여주기 위해 애드몹에 Test Device 등록을 했다. 테스트 디바이스 등록을 위해서는 내 기기의 IDFA 값을 알아야 하는데다소 번거롭지만 아래와 같이 Flutter 코딩을 해서 내폰 에서 앱을 실행 시켜봐야 알수.. 더보기
구글 플레이 콘솔 심사기간? (3달만에 리뷰 통과) 플러터로 심플한 앱을 하나 만들었다. 애플 앱스토어와 구글 플레이마켓에 앱을 등록 하려는데 애플의 악명을 예전 부터 들어서 알고 있었기에 우선 앱스토에 먼저 등록을 했다. 애플 앱스토어 등록 후기 앱을 등록 하자 단 몇시간 만에 심사 리젝 결과를 받았는데 리젝 사유와 함께 스크린샷 까지 첨부해줘서 비교적 쉽게 리젝 사유를 파악하고 수정할수 있었다. 재심사 역시 금방 피드백이 왔고 삼수 만에 애플은 무사히 앱스토어에 등록이 되었다.  그 뒤로 약 10회의  추가 업데이트를 진행 했는데 모두 다 몇 시간 만에 승인 처리가 되었다.애플은 심사 완전 빠름 ~~  !!  구글 플레이 심사 3달째 검토중 .. ㅠ.ㅠ 앱스토어도 앱등록 화면이 직관적이지는 않았지만,, 구글 플레이마켓은 앱린이의 시각으로 봤을때는 애.. 더보기
flutter 앱 패키지명 수정 flutter 개발하다가 앱패키지명 수정 하느라 고생했었는데 플러터엔 좋은게 참 많더라 . 1.  change_app_package_name 설치 flutter pub add -d change_app_package_name 2. 커맨드 실행 flutter pub run change_app_package_name:main com.new.package.name Meta Atiq Samtia– @AtiqSamtia – me@atiqsamtia.comDistributed under the MIT license.https://github.com/atiqsamtia/change_app_package_name 더보기
구글 스프레드시트 에서 빈값 찾아서 채우기 (find & replace ) 구글 스프레드시트 사용하면서 빈값 채우는 방법. 1. 노가다 빈값만 보이도록 필터링 한 후에 특정값 입력 2. 찾기 및 바꾸기 영역 선택후 정규식으로 빈값만 찾아서 치환 하기 빈값은 다음 정규식으로 찾는다 : ^(\s*)$ 사용예제 더보기
javascript로 gpt api 호출 하는 프로그램 만들기 ChatGPT 에게 물어봤다. I want to make an app using OPENAPI in javascript. 그랬더니 chatGPT가 자세히 알려주더라. === 아래는 ChatGpt 답변 내용 1. 먼저 OpenAI의 API에 가입하고 API 키를 받아야 합니다. OpenAI 웹사이트에서 무료 계정을 등록하고 API 키를 받을 수 있습니다. 2. 다음으로 자바스크립트용 OpenAI SDK를 설치해야 합니다. npm과 같은 패키지 관리자를 사용하여 SDK를 설치할 수 있습니다 : `npm install openai` 3. SDK를 설치한 후에는 OpenAI API에 요청을 시작할 수 있습니다. 다음은 SDK를 사용하여 OpenAI의 GPT-3 모델을 사용하여 텍스트를 생성하는 방법의 예시입니다.. 더보기
비동기 엑셀 다운로드 모듈 ( SPA ajax async excel download ) SPA 기반의 웹 어플리케이션 에서 ajax로 데이터를 가져와서 excel로 저장 ( 파일 다운로드 ) 하려고 한참 고생 했었는데 누군가 벌써 근사 하게 모듈을 만들어서 공개해주고 있다. SheetJS 비동기 엑셀 다운로드 모듈 ( 무료 ) https://github.com/SheetJS/js-xlsx​ Vue나 react 컴포넌트 하나 잘 만들어놓으면 어드민툴 같은 곳에서 여기저기서 가져다 쓰기 좋다. 가장 큰 장점은 엑셀 다운로드 기능을 위해 별도의 코드 개발 없이 기존의 REST API를 재사용 가능 하다는거. 속도 빠르고 UX나 반응성도 좋다. ​다만 엑셀다운로 시점에 PASSWD 넣어서 다운로드 하게 하려면 유료버전을 구매해야 한다. 패스워드 지정 기능을 안쓰면 무료버전 만으로 너무 훌륭하다. .. 더보기
자주쓰는 git 명령어 목록 리모트 브랜치 보기 git branch -r 리모트 브랜치 에서 체크아웃 git checkout -b test origin/test 리모트 브랜치 연결 git branch -u origin/branchName 리모트 브랜치 연결 해제 git branch --unset-upstream 브랜치 삭제 git branch -d/-D branchName 리모트 브랜치 삭제 git push origin :branchName 리모트 상태 git remote show origin 리모트 브랜치 clean up git remote prune origin 로컬브랜치를 리모트로 푸시 git push origin 브랜치명 로컬 피쳐 브랜치를 마스터로 푸시 git push origin 피쳐브랜치:master git log --.. 더보기
JPA batchSize 설정 해도 N+1 쿼리가 발생 해요 JPA batchSize 설정 해도 N+1 쿼리가 발생 해요~ 라고 지인이 물어봐서 같이 디버깅을 해줬다. Entity 매핑은 ManyToOne 양방향 관계로 가장 심플한 구조다. OneToMany 관계 조회시 N+1 쿼리가 발생하지 않도록 BatchSize를 설정했는데 어떨때는 batchSize 설정한 만큼 inQuery가 잘 실행 되는데 어떨때는 inQuery가 N번 발생하는 이상한 케이스 였다. 문제원인> select * from entity limit 10 과 같이 10건의 데이터를 조회 하고 batchSize 설정대로 In query가 수행 되었다. 하지만 oneToMany 관계의 테이블에 데이터가 제대로 들어가 있지 않아서 inQuery 결과 값이 제대로 연결이 안됨 아마도 entityMana.. 더보기