슬기로운 개발생활
-
데이터 적재 시스템 구축슬기로운 개발생활 2024. 2. 5. 19:41
신규 데이터 분석을 위해, 선발된 데이터들을 BigQuery와 Mixpanel에 등록해야 한다. ■ As-is BigQuery에 주기적으로 데이터를 insert, update해야한다. EC2 to BigQuery는 전송 가능하지만, EC2 to Mixpanel은 보안상 전송할 수 없다 ■ Challenge 주기적으로 데이터를 전송하도록 Jenkins Scheduler사용. BigQuery to Mixpanel로 데이터를 전송하도록 결정. GCP의 vm instance에 cron으로 GCP Scheduler 사용. bq 명령어를 사용하여 Buckit에 전송 데이터 적재. Cloud Function의 Trigger를 사용하여 Buckit Update시 Mixpanel로 데이터 전송. ■ To-be 신규 데이..
-
백오피스가 필요해요!슬기로운 개발생활 2024. 2. 5. 18:53
50개가 넘는 외부 업체와 1명의 Biz팀이 소통을 하는데, 백엔드팀 작업일 경우가 많았다. ■ As-is 외부 업체의 요청중 백엔드팀의 작업이 필요한 작업이 많다. 백오피스가 없어 Biz팀이 직접 작업을 할 수 없다. 백엔드팀의 업무가 많아져 실시간으로 처리를 할 수 없다. Biz팀은 외부 업체와 백엔드팀 사이에서 조마조마 기다릴수 밖에없다. 백엔드팀에서도 데이터베이스를 직접 Query를 입력해야 해서 휴먼에러가 발생할 확률이 높다. ■ Challenge 해당 서비스를 사용할 Biz팀과의 인터뷰를 통해 백오피스를 만들기로 결정. MSA환경의 모든 서비스와 통신해야하고, 추후 통신관련이 계속 변경될 수 있기 때문에 Hexagonal 아키텍쳐 적용. 변경 이력을 저장하고, 롤 백도 할 수 있어야 한다. 변..
-
API가 없는 회사와의 통신슬기로운 개발생활 2024. 2. 5. 18:31
회사의 신규 서비스 개발 중 외부 업체의 비지니스 로직을 통한 계산이 필요한 기능이 필요했다. ■ As-is 외부 업체는 IT업체가 아니기 때문에 사내 개발자와, API 서버가 존재하지 않는다. 외부 업체는 제휴를 통해 계속해서 늘려나가야 한다. (다른 외부 업체는 개발자와 API서버가 존재할 수도 있다.) ■ Challenge 외부 업체에서 만들어야 할 시스템을 우리 회사 내부 로직으로 만들기로 하였다. 기준 데이터들과 도메인 지식을 활용하여 내부 로직으로 구현. 기준 데이터가 주기적으로 변경되기 때문에 로직에 직접 넣는 것이 아닌 RDB에 값을 넣고 확인. 추후 통신을 할 수 있는 외부 업체가 있을수도 있으니, 통신이라는 Interface를 사용하여 Factory Pattern으로 작성. 외부 업체의..