개발
-
API 연동으로 문자 보내기 메시지 전송 문자 발송개발 2023. 11. 14. 11:56
플랫폼 개발 중 SMS, LMS, MMS, 알림톡 연동 사 교체가 필요하여 테스트를 해본경험을 공유 합니다. 메시지 발송 업체는 SK C&C에서 서비스중인 메시지투고를 이용했습니다. 최근 런칭했는데 비용이 매리트가 있어 교체하게 되었습니다. 기존 사용중인 메시지 비용이 생각보다 비싼 감이 있었습니다. 최근 메시지 사용량이 대폭 증가하는 서비스가 있었느데 비용절감에 도움이 되었습니다. https://message.to-go.io 메시지투고 통합 메세징 솔루션, 심플하고 빠른 기업 메시징 솔루션, 문자 발송, 메시지 발송 message.to-go.io 1. API Key 발급 메시지투고 회원가입을 하고나면 API Key 를 발급받을 수 있습니다. 결제나 별도 절차 없이 테스트 문자 발송이 가능합니다. 추후 ..
-
Airflow 의 Celery executor 의 custom configuration개발/Airflow 2023. 1. 9. 17:47
Airflow의 executor 를 celery 로 사용중에 configuration 을 수정해야할 경우가 있다. 예를 들어, database engine options 를 추가한다던지.. 이번 case는 celery의 result_backend 로 사용하는 mysql 과의 연결 관리를 위해 custom option을 추가한 case로 추가 설정에 대한 내용과, custom_celery_config를 적용하는 방법을 기술하도록 하겠다. celery config를 설정하는 방법은 세가지 정도로 파악을 했는데, celery config 파일을 수정 python dag 파일에서 직접 celery config를 import Airflow configuration을 통해, celery config 파일을 impo..
-
Use Airflow broker with redis sentinel개발/Airflow 2023. 1. 9. 11:10
Airflow 를 운영하며, HA에 대한 요건이 발생하여 단일 redis 로 사용중이던걸 redis sentinel 모드로 구성하였다. 8s 클러스터에 Airflow 를 구성하고, k8s 노드 fail 이 발생했을 시 단일 redis 의 container의 fail 이 동반하면 airflow의 기능이 동작하지 않기 때문에, 이를 방지하고자 여러 노드에 master, slave를 분산하여 HA를 보장하고자 하였다. Airflow was operated, and requirements for HA occurred, so what was being used as a single redis was configured in redis sentinel mode. Airflow is configured in the ..
-
How to use Airflow celery executor with redis sentinel개발/Airflow 2021. 5. 21. 00:59
Airflow 를 사용할 때 병렬화 처리가 필요하다면, celery executor나 kubernetes excutor의 사용이 필요하다. 이때 queue에 대한 broker 로 rabbitMQ나 redis를 사용할 수 있는데 이 글은 redis를 broker로 사용할때에 대한 이야기를 하려고 한다. Broker로 더 추천되는건 rabbitMQ이나 High Availability(HA)의 필요성이 있을때 redis가 구성에 잇점이 있다. Redis master-slave cluster를 구성한 후 Sentinel을 붙여 Redis의 고가용성을 보장하고, Airflow 의 read/write를 위하여 master로 연결하기위해 HAProxy를 연결할 수 있다. HAProxy역시 고가용성 구성을 위해 act..
-
Oracle 홈페이지에서 JDK 다운로드시 오류개발 2020. 5. 7. 08:34
This site is experiencing technical difficulty. We are aware of the issue and are working as quick as possible to correct the issue. We apologize for any inconvenience this may have caused. To speak with an Oracle sales representative: 1.800.ORACLE1. To contact Oracle Corporate Headquarters from anywhere in the world: 1.650.506.7000. To get technical support in the United States: 1.800.633.0738...
-
Pyspark feature engineering. Robust Scaler개발/AI 2020. 3. 31. 13:13
#Pyspark #FeatureEngineering #RobustScaler Spark 3 버전에는 pyspark RobustScaler가 제공이된다. 하지만 spark 2버전에는 제공되지 않아 직접 구현을 해야한다. 너무 간단한건지, 아무도 이렇게 까지해서 사용하지 않는지 모르겠지만 구글링을 해도 쉽게 찾을 수 없어 구현해봤다. RobustScaler의 equation은 다음과 같이 정말간단한데, 처음 구현했을때 왜인지 데이터가 spark 3.0에서 제공하는 robustScaler와 일치하지 않아 삽질을 엄청 했다. scalar 3.0에서 robustScaler을 standardScaler를 통해 구현을 해놨던데.. 왜그렇게 했는지는 의문? 대표사진 삭제 사진 설명을 입력하세요. 우선 Robust Sc..
-
Product category classification개발/AI 2020. 1. 9. 14:50
"전체 는 맨아래 github링크를 따라가세요." 매월 초 하나더 앱의 상품정보를 각 편의점 홈페이지에서 crawling하여 업데이트를 한다. 이때 상품의 카테고리정보는 제공되지 않기 때문에 직접 수작업으로 분류를 해줘야 한다. 매달 등록되는 행사상품의 갯수는 약 2000여개이고, 이를 수작업으로 분류시 1건당 2~5초의 시간이 소요된다고 했을때 약 2시간의 작업 시간이 소요된다. 이를 해소하기 위하여 우선 기존 전통적인 방법으로, 단어 유사도 검색을 통한 1차 분류를 다음과 같이 진행했다. def similar(a, b): return SequenceMatcher(None, a, b).ratio() simalarity = similar('기존등록품명', '신규등록품명') if ( simalarity >..
-
앱스토어 리젝) Guideline 2.3.1 - Performance (splash screen stuck)개발/Flutter 2019. 8. 27. 10:21
새로 출시한 행복전도사 앱이 앱스토어에서 이주일넘게 리젝을 당했다. 개인 프로젝트이고, 신규출시라 일정에 큰 문제는 없었지만, 상용앱이었다면.. 끔찍. 다름아닌 splash screen 혹은 launch screen 에서 멈추고 앱실행이 되지 않는다는것이었다. 우선, 첫번째 로딩과정에서 일어나는 일들을 체크해보았다. 1. firebase initialize 2. admob initialize 3. 기본적인 앱내 object들 initialize 위 작업들중 1번이나 2번에 대한 네트웍 차단을 의심했다.. 앱스토어 리젝 메세지에도.. 네트웍관련 가이드를 주길래 그러나 심지어 내 시물레이션이나.. 아이폰 physical device에서는 오프라인에서도 앱로딩이되는 상태.. 두번째 리뷰어의 환경문제, ipad..