Data Engineer
-
모놀리스/마이크로서비스Data Engineer 2024. 8. 28. 08:54
모놀리스가능한 한 많은 것을 한 지붕 아래에 포함하는 것 - 기술 결합(아키텍처 계층)과 도메인 결합(도메인이 결합하는 방식)의 두 가지 방식으로 살펴볼 수 있다다중 계층 아키텍처에는 다양하게 계층이 분리된 애플리케이션이 있지만, 여러 도메인을 공유할 수도 있다.단일 도메인을 제공하는 단일 계층 아키텍처를 사용할 수도 있다. 모놀리스의 강한 결합은 컴포넌트의 모듈화가 부족하다는 것을 의미아키텍처 전체에서 컴포넌트를 재사용하기 어렵고, 불가능하다 마이크로서비스복잡하게 뒤얽힌 서비스, 중앙 집중화, 서비스 간의 강한 결합과 같은 모놀리스 속성과 정반대- 개별적이고 분산되어 있으며 느슨하게 결합된 서비스로 구성, 각 서비스는 특정 기능이 있으며 도메인 내에서 운영되는 다른 서비스와 분리- 한 서비스가 일시적으..
-
Schema On ReadData Engineer 2024. 8. 20. 15:55
Legacy : Schema on Write(RDBMS)관계형 데이터베이스와 연동된 기존 시스템에서는 RDBMS에 데이터를 배치하기에 앞서 데이터 스키마를 완벽하게 확정하는 데 모든 노력을 집중데이터 스키마를 확정하려면 시스템 성능과 데이터 사용 패턴 등의 여러 사항을 사전에 고려해야 했고, 시스템 성능과 데이터 사용 패턴 등의 여러 사항을 사전에 고려데이터가 복잡한 경우 데이터 스키마 합의에 상당한 시간이 소요되어 데이터 입수 및 분석 작업이 지연되는 결과를 초래 Schema on Read(NoSQL)입수된 데이터가 실행 시점에 해석됨데이터를 읽어들이는 스키마가 디스크에 저장된 데이터의 실제 구조와 분리 -> 데이터 저장/해석도 별개로 분리 가능데이터를 서로 다른 형식으로 저장하면서도 이를 동일한 테이..
-
GlobalEventBus ?Data Engineer 2024. 5. 2. 14:40
Global Event Bus : 소프트웨어 개발에서 사용하는 디자인 패턴 중 하나애플리케이션 전반에서 이벤트를 전파하고 처리하기 위한 중앙 집중식 이벤트 버스를 구현컴포넌트 간 통신을 단순화하고 애플리케이션의 유연성을 향상1. Publishing Events : 어떤 컴포넌트든지 이벤트를 GlobalEventBus에 발행할 수 있다.Ex . 사용자가 버튼을 클릭하면 해당 이벤트를 GlobalEventBus에 발행2. Subscribing to Events : GlobalEventBus를 통해 특정 이벤트에 대해 구독할 수 있다.이를 통해 여러 컴포넌트가 동일한 이벤트에 반응하도록 할 수 있음3. Event Handling : 발행된 이벤트를 수신하고 처리할 수 있는 메커니즘을 제공이를 통해 이벤트를 발..
-
NginxData Engineer 2024. 3. 28. 19:19
nginx : 기동 nginx -s stop : 정지 nginx -s reload : 재기동 nginx -t : 설정파일 체크 /etd/nginx : main 설정파일 위치 /etc/nginx/conf.d/ : 각 서버용 설정파일 위치 -?, -h nginx 명령어의 도움말 표시 -v nginx 버전 확인 -V nginx를 make 했을 시 컴파일러 또는 configure 옵션 표시 -t, -q nginx 설정파일 오류 체크 -s stop 강제종료 -s quit 실행중인 request 처리 종료하고 nginx 정리 -s reload 설정파일 다시 읽음 -s reopen nginx 재기동중 로그파일을 다시 오픈 -c 설정파일 지정한 설정파일로 nginx 기동(보통 부하시험 등에 사용되며, 보통 사용하지 않..
-
[Error] MySQL : Update 문 실수 시 조치 사항Data Engineer 2024. 3. 12. 12:07
혹시 update 문을 실수한 적이 있으신가요? 전 조건을 잘못 걸어서 DB 내에서 반영되어야 하지 않아야할 행에도 데이터 변경을 가해 문제가 생긴 적이 있었습니다.. 앞으로, 그런 일이 있지 않기 위해서, 오늘은 그 대응법을 공유해보려고 합니다. 저의 환경은 이러했습니다. - Cloud : Azure - DB 접근 순서 : VM 접속 -> 클라우드 내 Mysql 접속 - DB Client : DBeaver 먼저, 가장 주의해야할 점은 쿼리를 머릿속으로만 그리지 않고 확인 절차를 거치는 것이 좋습니다. 이때, 여러 방법이 있는데요. 1. SELECT 문을 통한 update 쿼리에 영향이 미칠 행 확인 2. TRANSACTION 실행 후 UPDATE, commit/rollback 지정 2번 방법에 대해 설..
-
Git action - 이론Data Engineer 2024. 3. 8. 08:49
소프트웨어 workflow를 자동화할 수 있도록 도와주는 도구 Test Code 쿼리를 날리고 데이터가 맞는지 정합성 체크 배포 기타 자동화하고 싶은 스크립트 다양한 파이썬 버전에서 실행되는지 확인 Workflow는 하나의 Repo에 최대 20개까지 등록 가능 Workflow 안에 존재하는 Job은 6시간 동안 실행될 수 있고, 초과시 자동으로 중지됨 Github Free는 Storage 한도 500MB, 월에 실행 시간 3000분 Worflow, Event, Job, Step, Action, Runner 등 존재 Workflow Event Job Step Action Runner Git Action 생성하는 흐름 코드 작성 코드 작성 후 Workflow 정의 정상 작동하는지 Test Workflow 정..
-
App UpdateData Engineer 2024. 3. 8. 08:47
강제 업데이트 앱이 새로운 버전으로 올라가면서 기존 앱과 호환이 불가하거나, 치명적인 버그가 있어 기존 앱의 이용자를 모두 필수적으로 새로운 버전의 앱을 사용하도록 할 때 사용 앱 실행 시 강제 업데이트가 필요한지의 여부를 판단 후, 강제 업데이트가 필요하다면 앱 진입을 막고 앱스토어로 연결하여 업데이트 할 수 있도록 안내 강제 업데이트의 경우 기존 앱은 사용할 수 없게 되어, 기존 사용자들의 사용성은 떨어지게 되므로 꼭 사용해야 하는 경우가 아니라면 선택 업데이트 사용을 권장해야 한다 선택 업데이트 앱이 새로운 버전으로 올라가지만 큰 변화가 없어서, 기존 앱과 호환이 가능하여 새로운 업데이트가 있다고만 안내 업데이트 안내 로직 사용자가 앱을 실행 or 백그라운드에서 포어그라운드로 진입 서버에서 앱 최소..
-
프로메테우스Data Engineer 2024. 3. 3. 21:43
Prometheus K8s 환경에 들어오며, 전체 인프라 환경과 Application에 대한 모니터링을 하는 것이 매우 중요해졌다 인프라에 대한 전체적인 가시성을 확보해야 k8s 내에 돌아가는 Application에 대한 가용성과 안정성을 확보 모니터링 결과를 통해 고도화된 Cloud Native 시스템을 구축할 때 사용하는 지표로 활용 기존 레거시 환경은 고사양 서버에 application을 크게 운영하는 방식으로 운영 고사양 서버에 Monitoring Agent를 서버에 설치한 후, Agent가 OS의 메트릭을 수집하여 Backend에 직접 전송하는 방식을 사용 Cloud native : 컨테이너 기반의 Application을 작게 운영하고 필요할 때마다 확장, 파괴하는 방식 선택 동적으로 확장하는 ..