앱스토어에 앱 소개를 작성할때 분명 한국어로 작성했고, 언어도 한글로 작성했는데, 언어가 영어로 되어있다.혹시 내가 잘못적은건가? 하고 appstoreconnect 에 가서 눈을 뜨고 봐도 한국어로 선택했다.하지만, 앱스토어상의 앱정보는 "영어" 인 문제...문제확인이건 결론부터 말하면 xcode 에서 기본언어를 건드리지 않고 빌드 및 배포해서 그런거였다. 저기에 있는 정보는 내가 입력한 정보가 아니라 빌드시점에 정해지는걸로 보인다. 결과론적으로는 프로젝트에서, Loccalizations 에 English 만 존재할텐데...한글을 추가하고, 해당 값을 Default 값으로 만들면된다. 나는 flutter 로 제작했으므로, app/ios/Runner/ko.lproj 폴더에 LanchScreen.stri..
앱을 만들고 광고를 붙이면, 앱스토어 세부정보 정보를 넣어주면 쉽게 해결된다.하지만, 앱인증의 경우는 주의해야할게 좀 많아서 정리를 하고자 한다. 1. app-ads.txt 만들기가장 첫번째 허들이 app-ads.txt 를 만들어 붙여야 하는건데, 무료로 가장 효율적인건 구글의 blogspot 을 만들고, 그걸 이용하는것이다.블로거를 만들고, 설정에 가보면 수익창출에 ads.txt 라는 곳에 애드몹에서 제공한 텍스트 문구를 넣어주면 된다.그러면, "https://.blogspot.com/ads.txt" 같은 주소로 해당 값을 확인할 수 있게 된다. 2. app-ads.txt 로 연결하게 하기애드몹에서는 ads.txt 가 아니라 app-ads.txt 로 연결이 되어야 한다.즉, "https://.blogs..
airflow 에서 DAG 의 의존성을 거는 방법은 task 의 set_upstream / set_downstream 메소드를 사용하는 방법이 있다.하지만, 실제는 연산자 오버로딩이된 >> 혹은 https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/tasks.html 그런데, 다음과 같은 의존성을 만들때, task a, b, c 를 표현하기위해 변수에 대입하여 거는 실수를 하면 안된다. 변수 대입을 잘못써서 의존성을 건 케이스위와 같은 DAG 를 그릴때 아래와 같이 변수에 대입하여 잘못 의존성을 거는 실수를 할 수 있다.아래와 같이 대입하여 DAG 를 그리면 어떻게 나올까?mport datetimeimport pendulumfrom ai..
소셜로그인을 붙여보려고 flutter_appauth 라이브러리 의존성을 한번 넣어봤더니 오류가 발생했다.사실 한참 헤메다가 나중에 오류를 발견한건데, 사실 기능구현을 하려고 의존성만 추가했는데 빌드가 안되서 한참 헤맸다.특히 소셜로그인을 붙이려고 잠깐 코드 짜다가 잘안되서 dart 코드만 원복하고 의존성은 유지했는데 이랬다./Users/유저명/StudioProjects/프로젝트명/android/app/src/debug/AndroidManifest.xml Error: Attribute data@scheme at AndroidManifest.xml requires a placeholder substitution but no value for is provided. 의존성때문에 영향받는것소셜로그인은 구..
airflow 에서 logical_date 와 schedule 을 고려하면 월배치를 돌리려면 말일 기준의 logical_date 기준으로 배치가 돌아야 한다. 하지만 다 알고 있는것처럼 월말은 1월은 31일이요, 2월은 28 혹은 29일, 3월은 31일 등등 이런식이라 처리하기가 어렵다.제대로 처리하려면 Airflow 2.4.x 이상버전에서는 Timetables 을 직접 구현하는게 가장 베스트인걸로 보인다.하지만, 여기서는 AirflowSkipException 과 schedule 의 crontab 표현을 이용해 해결하는 방법을 알려주고자 한다. 쉽게 생각해서 crontab 에서 매월 28,29,30,31 에 스케쥴을 활성화 하고,월말을 계산해서 아닌날은 스케쥴을 넘기는 형태로 해결하는 방법이다. 해결방법..
airflow 2.x 로 올라가면서 ui 에서 타임존을 고려한 처리가 좋아지긴했는데, DAG 를 만들때 logical_date 를 이용해 값을 유도할때 우리가 의도한 값이 안나올때가 있다. 우선 airflow 의 환경변수기반으로 구성했다는 가정으로 타임존을 아래와 같이 구성하고export AIRFLOW__CORE__DEFAULT_TIMEZONE="Asia/Seoul"export AIRFLOW__WEBSERVER__DEFAULT_UI_TIMEZONE="Asia/Seoul" DAG 선언할때도 start_date 값에 타임존까지 잘 지정했다면 반은 성공한것이다. 근데 , 2024-01-02 00:00 가 되면 2024-01-01 00:00 의 logical_date 가 바인딩될것으로 기대되는데 이상하게{{ l..
airlfow 에서 한국시간으로 사용하기위해서 은근히 번거로운일이 많다, start_date 에 타임존을 지정하고, 설정에 타임존을 지정하더라도 의도한 값을 뽑아내려면 logical_date 를 타임존에 맞춰 변환후 사용해야 제대로 값을 추출할 수 있는 경우가 많다.근데 이걸 매번 DAG 코드에 넣는건 비효율적이기 때문에, Plugin 에 jinja template 으로 커스텀 필터를 추가해서 사용하는 방법을 제안한다. 커스텀 필터 추가하기참고로 airflow 2.9.x , 2.10.x 버전에서 동작 테스트 했었고, plugins 폴더에 넣어주면 사용가능하다.아래와 같이 커스텀 필터를 추가하면 jinja template 에서 쉽게 변환이 가능하다.from airflow.plugins_manager imp..
월별 지표를 만들기위해 말일에 스케쥴을 어떻게 할지 고민하다가, crontab 표현으로 28~31 활성화 하고, 체크로직을 넣어 실행을 제한하는식으로 접근을 했는데 마지막날이 스케쥴 안되는 문제가 발생했다. 예를 들어, 아래와 같이 스케쥴을 걸면 10/28 , 10/29, 10/30, 10/31 이 스케쥴이 활성화 되면서 실행되길 기대했는데...31일 스케쥴이 활성화가 안되는 상황이다.with DAG( dag_id="sample_dag", start_date=datetime.datetime(2024, 10, 1, tzinfo=pendulum.timezone("Asia/Seoul")), schedule_interval="0 0 28-31 * *", # 매월 말일 실행 max_act..