분류 전체보기148 [Kafka] Kafka Connect 란? - 카프카란? https://mystudylab.tistory.com/105 KafkaConnectKafka Connect는 손쉽게 Kafka를 이용하는 pipeline을 구성해주는 도구.생성되는 Data pipeline은 데이터 이동과 변환이 목적이며 , 분산된 환경에서 수행하기에 고가용성과 부하분산을 구현.다양한 source와 target을 지원하며, source 데이터를 target 에 적재합니다. 구성요소1. Connector- Source connector: 데이터 소스에서 데이터를 추출해 카프카에 데이터 적재- Sink connector: Kafka에서 데이터를 목적지로 전송2. Task- 커넥터는 하나 이상의 작업을 가질 수 있음- Task는 실제로 데이터를 이동시키는 단위이며,여러 작업은.. 2024. 6. 5. [Redis] 레디스 데이터 백업 방법 TL;DR- RDB와 AOF 두 가지 백업 방식을 지원한다.- 레디스 복구 시점은 재시작될 때뿐이며, AOF or RDB 존재하면 파일 로드한다. 데이터 영구 저장- 레디스 모든 데이터는 메모리에서 관리된다.- 장애로 인스턴스가 재시작되면 데이터가 손실될 수 있다.- 가용성을 위한 복제 구조이지만 백업과 복제는 목적부터 다르다는 것을 알아야한다.(복제는 가용성, 백업은 장애 상황에서 데이터 복구) - 의도하지 않게 데이터를 삭제하는 커맨드가 실행되는 경우는 데이터를 안전하게 유지할 수 없음 AOF, RDBAppend Only File- 처리한 모든 쓰기 작업을 차례대로 기록- 복원 시에는 파일을 다시 읽어가며 데이터 세트 재구성- RESP 형태로 저장- 파일 크기가 크고 주기적으로 압축 필요하지만 원.. 2024. 6. 2. 이벤트 기반 아키텍처(Event Driven Architecture, EDA) Event Driven Architecture시스템 구성 요소들이 이벤트와 이벤트 핸들러로 서로 소통하는 구조. 관심사를 분리해 전체적인 결합도를 낮추기 위해 사용.유연한 구조, 뛰어난 확장성이 특징추가적인 컨슈머 필요하면 구독만 추가하면 됨.구성 요소 4가지이벤트이벤트 발행자이벤트 리스너버스 (통로)Internal Event vs External EventInternal Event시스템 내 컴포넌트 간 통신목적내부 도메인 로직과 부가적인 정책을 분리하기 위해서long transaction 분리External Event시스템 간 통신카프카와 같은 이벤트 스트리밍 플랫폼, 혹은 메시지 브로커를 이용해서 처리관련 영상우아한형제들 EDA 예시(외부이벤트, 스프링)https://www.youtube.com/wa.. 2024. 5. 29. [연동] Stripe Stripe?온라인 결제 처리 솔루션다양한 결제 방식과 금융 서비스를 통합하여 비즈니스가 더 쉽게 결제를 수락하고 관리할 수 있다. 개념Customer- 고객 Invoice- 청구서- 만료 기한이 있음 Payment- 결제 건- 결제 대기, 환불 등 다양한 상태가 있음 Payment Link- 특정 목적을 가지고 결제 링크를 생성할 수 있음.- 다수가 하나의 링크를 결제 가능 개발 SDKhttps://www.npmjs.com/package/stripe stripeStripe API wrapper. Latest version: 15.8.0, last published: 5 days ago. Start using stripe in your project by running `npm i stripe`. Th.. 2024. 5. 29. [Socket] 웹소켓 (WebSocket) 웹소켓(WebSocket)?- 양방향 통신 웹소켓은 웹 브라우저와 서버 간의 양방향 통신을 가능하게 하기 위해 설계된 프로토콜 과정1. 핸드셰이크(Handshake)- 웹소켓 연결은 표준 HTTP(S) 요청을 통해 초기화됨.- 클라이언트가 서버에 웹소켓 연결을 요청하고, 서버가 이를 수락하면 HTTP 연결이 웹소켓 연결로 업그레이드됨. - 클라이언트가 서버에 보낸 HTTP 요청에는 Upgrade: websocket 헤더가 포함 - 서버가 이를 수락하면 응답에 101 Switching Protocols 상태 코드와 함께 웹소켓 프로토콜로의 업그레이드를 명시// 클라이언트 요청 예시GET /chat HTTP/1.1Host: example.comUpgrade: websocketConnection: Upgr.. 2024. 5. 28. [Socket] 소켓? 소켓(Socket)?- 네트워크 상에서 두 프로그램 간의 통신을 가능하게 하는 소프트웨어 엔드포인트.- 다른 기기, 같은 기기 내의 프로세스 간에 데이터를 주고받을 수 있음.- 소켓은 OSI 모델의 전송 계층(Transport Layer)에 위치, TCP/IP 또는 UDP/IP와 같은 프로토콜을 통해 데이터를 전송.소켓의 종류1. TCP 소켓 (스트림 소켓)- 연결 지향적(연결을 설정하고 통신을 시작)- 신뢰성 있는 데이터 전송 (데이터 순서 보장, 손실 시 재전송)- 예: 웹 브라우징(HTTP), 이메일(SMTP), 파일 전송(FTP) 2. UDP 소켓 (데이터그램 소켓)- 비연결 지향적(연결을 설정하지 않고 통신)- 신뢰성 없는 데이터 전송 (데이터 순서 보장 없음, 손실 시 재전송 없음) 예: 실시.. 2024. 5. 28. [Redis] 레디스를 메시지 브로커로 사용하기 메시지 브로커의 필요성- 여러 모듈이 서로 느슨하고 적절하게 연결시킨 구조를 선호하는데, 이떄 탄탄한 상호작용이 필요해 메시지 브로커를 필요로 한다.- 서비스 간 커넥션이 실패하는 상황은 언제나 발생할 수 있으며, 되도록 비동기 통신하는 것을 권장한다.- 메시지를 어딘가에 쌓아 둔 뒤 나중에 처리할 수 있는 채널을 만들어 주는 것, 이것이 메시지 브로커의 핵심 역할이다. 메시지 브로커 타입1. 메시징 큐- Producer: 데이터를 생성하는 쪽- Consumer: 데이터를 수신하는 쪽 2. 이벤트 스트림- Publisher: 데이터 생성- Subscriber: 데이터 조회 이벤트 큐 vs 이벤트 스트림1. 방향성- 메시지 큐는 생산자가 소비자 큐로 데이터를 직접 푸시. 2곳에서 필요하면 생산자는 2곳으.. 2024. 5. 27. [망상] AI 시대에서 살아남는 방법 고민 망상글입니다.AI 발전과 대체얼마전 GPT-4o 출시 후 적지 않은 충격을 받았다. 사용해보니 대답 속도도 빠르고 정보 질도 좋으니 사람보다 나을 수 있겠더라. AI가 아직은 특정 부문에서 인간을 대체하기 이르다는 것에 동의한다. 다만 시간이 흘러도 그럴까? 나는 머지 않은 미래에 대부분의 인간은 대체할 수 있을 정도로 기술, 성능이 발전할 것이라 생각한다. (정책과 규제를 제외하고) 로봇과 전쟁로봇 공학 역시 AI와 결합하여 기술 발전 속도가 빨라지고 효용도 늘고 있다. 그릇 수거, 서빙 로봇은 이미 상용화되어 사용되고 있지 않은가? 근데 이것이 인류에게 좋게 작용을 할까? 기술이란 건 결국 필요한 곳에 쓰이기 마련이고 제약은 더 강한 동기가 있다면 의미가 사라지는 것이라 생각하는데... 이 기술은 좋.. 2024. 5. 18. [회고] 백번 깨우침보다 한 번 행함이 낫다 *백문이 불여일견(百聞而 不如一見)이요, (*백번 듣는 것보다 한번 보는 게 낫고,)*백견이 불여일각(百見而 不如一覺)이며, (*백번 보는 것보다 한번 깨우침이 나으며,)*백각이 불여일행(百覺而 不如一行)이라. (*백번 깨우침보다 한번 행함이 낫다) 완벽한 계획보다 한 번 행함이 낫다. 나는 계획 세우는 걸 꽤 좋아하는 편이다. 인생에서 가장 재미있는 순간이 계획 세울 때 아닐까? 다만 살아온 날을 되짚어보니 꽤 많은 계획들이 시간이 흘러 쓸모가 사라지거나 부채감으로 남아있더라. 그래서 가끔은 내가 세운 계획에 짓눌려 위축되기도 했던 거 같다. 몰입을 위한 큰 그림은 필요하다. 다만 너무 깊은 고민과 계획은 사치라는 것이 내 결론이다. 인생도 애자일하게 살아야한다. 헷갈리지 말자, 계획을 세우지 말자는.. 2024. 5. 18. [iOS] rsync error: some files could not be transferred 증상아카이브 시 아래 에러 출력rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4f964b34-e7b8-11ee-80f6-fe8bc7981bff/Library/Caches/cohttp://m.apple.xbs/Sources/rsync/rsync/mai 해결1. Readlink 코드 수정https://jpointofviewntoe.tistory.com/157 2. Cocoapod 버전 업그레이드https://github.com/NativeScript/NativeScript/issues/10259#issuecomment-1514613194 2024. 5. 12. 이전 1 2 3 4 5 6 7 ··· 15 다음