목차 FastAPI와 SQLAlchemy, 그리고 Pydantic을 이용한 토이 프로젝트를 진행하던 중 PostgreSQL을 사용해야 할 일이 생겼다. 그냥 MySQL을 사용했어도 되지만, SQLAlchemy와 궁합이 좋은 디비가 PostgreSQL이라길래. 찍먹 하듯이 잠깐 사용하고 넘어가게 될 테지만, 그래도 이렇게 만난 것을 기념으로 블로그에 정리를 해두기로 했다. PostgreSQL, 시작해 보자. Brief History PostgreSQL의 독음은 '포스트그레스큐엘'이다. MySQL을 '마이 에스큐엘'이라고 부르는 것과 차이가 있는데, 포스트그레스큐엘의 개발 과정을 살펴보면 그 이유를 알 수 있다. 포스트그레스큐엘은 캘리포니아대학 버클리분교의 Ingres 프로젝트에서 시작되었다. 이후 문제점을..
지속적으로 추가할 예정. 실행중인 도커로 진입 docker container exec -it kafka-kafka-broker-1-1 bash 특정 토픽 내용 확인하기 kafka-console-consumer --bootstrap-server localhost:9092 --topic topicA31 --from-beginning 특정 토픽 생성 kafka-topics --bootstrap-server localhost:9092 --create --topic topicA01 --partitions 1 --replication-factor 1 특정 토픽 삭제 kafka-topics --bootstrap-server localhost:9092 --delete --topic test-topic 특정 그룹 토픽 ..
목차 벡터 데이터베이스는 벡터 검색 기반 환경을 만들고자 하는 개발자를 위한 것이다. 개발자는 임베딩으로 생성된 벡터를 벡터 데이터베이스에 인덱싱 할 수 있으며, 이를 통해 인접 벡터를 쿼리 하여 유사한 데이터를 찾을 수 있다. 위 설명은 AWS 공식문서에 쓰인 번역문이다. https://aws.amazon.com/ko/what-is/vector-databases/ 벡터 데이터베이스란? 벡터 데이터베이스 설명 - AWS 정보는 다양한 형태로 제공됩니다. 텍스트 문서, 리치 미디어, 오디오와 같이 비정형 정보도 있고 애플리케이션 로그, 테이블, 그래프와 같이 정형화된 정보도 있습니다. 인공 지능과 기계 학습( aws.amazon.com 그러니까 한 마디로 말하자면 고차원 데이터를 벡터 형태로 임베딩 하여 ..
목차 https://pages.cs.wisc.edu/~akella/CS744/F17/838-CloudPapers/Kafka.pdf Kafka: 로그 처리를 위한 분산 메시징 시스템 이 논문은 카프카가 처음 만들어진 후(2011) 발간된 첫 논문이다. 정확하게는 논문이라기 보다는 내부 기술문서의 형태를 가지는데, 기념할만한 문서라 생각해서 읽고 정리해 보았다 당연히 전문 번역은 아니고 요약에 가깝다. Abstract 데이터 파이프라인에서 로그 처리는 중요한 구성요소가 되었다. 큰 용량의 데이터를 낮은 지연시간으로 수집하고 전달하기 위한 분산 메시징 시스템으로써 카프카를 소개한다. 이 시스템은 기존의 로그 집계기와 메시징 시스템의 아이디어를 통합하고, 오프라인/온라인 메시지 소비에 모두 적합하다. 카프카는 ..
목차 회사에서 카프카를 사용한 데이터 파이프라인을 스터디하다 보니 데이터 추적을 위한 스키마의 필요성을 깨달았다. 그리고 검색을 해 본 결과 내가 찾던 대상이 레지스트리 스키마이며, 카프카를 사용하는 데 있어서는 사실상의 필수라 했다. 바쁘게 구현하느라 코드의 품질이 떨어지긴 하지만 그나마라도 다음 글에 올려두기로 하고, 이 글에서는 스키마 레지스트리와 Avro에 대해 짧게 짚고 넘어가자. Schema Registry 스키마 레지스트리는 일종의 데이터 저장소이다. RDBMS와 같이 스키마를 만들어서 중간에 자료를 저장하는 역할을 한다. 특별히 여러 언어와 서비스에서 사용하는 Avro 스키마를 저장 및 버전관리를 해주는 앱으로 보면 된다. 이를 통해 데이터의 생산(Produce)과 소비(Consume)가 ..
목차 지난 글에서, 도커로 카프카를 실행하고 자바 프로젝트의 yml파일을 아래와 같이 구성했다. spring: kafka: topic: myTopic: test-topic consumer: bootstrap-servers: localhost:9092 group-id: test auto-offset-reset: earliest producer: bootstrap-servers: localhost:9092 이번 글에선 위 설정을 바탕으로 실제 프로듀서와 컨슈머를 구현한 뒤, 간단한 사칙연산을 구현해 보겠다. 들어가기 전에 먼저, 위 설정은 보안과 관련된 부분이 전부 제거된 상태이기 때문에 MSK 사용 시 해당 설정을 추가해야 한다. KafkaProducerConfig 먼저 프로듀서에 대한 설정이다. 굉장히 ..
목차 한 달쯤 전에 올렸던 글에서, 야심 차게 MSK를 도입하겠노라고 선언을 했었다. [Cloud]Java 17 + WebFlux 환경에 AWS MSK 도입하기(1) - MSK? [Cloud]Java 17 + WebFlux 환경에 AWS MSK 도입하기(1) - MSK? 목차 Apache Kafka 아파치 카프카는 그 유명한 링크드인에서 개발해 11년에 공개한 오픈소스 메시지 브로커 프로젝트이다. Message Broker 오픈소스는 그렇다 치고 메시지 브로커라는 단어를 처음 보니 gnidinger.tistory.com 그 이후 이리 구르고 저리 구르다가 알게 된 사실은, 로컬 환경에서 MSK로 접근하는 건 불가능한 것은 아니지만 쉽지 않다는 것. 가장 쉽게 MSK에 접근하는 방법은 같은 VPC안에 EC..
목차 Apache Kafka 아파치 카프카는 그 유명한 링크드인에서 개발해 11년에 공개한 오픈소스 메시지 브로커 프로젝트이다. Message Broker 오픈소스는 그렇다 치고 메시지 브로커라는 단어를 처음 보니 정리하고 지나가자면, 브로커라는 단어 뜻 그대로 프로그램 간의 메시지를 전달하는 중개인 역할을 하는 앱이라고 생각하면 된다. 출처: https://www.g2.com/articles/message-broker 특히 카프카는 복잡한 시스템에서 컴포넌트 간의 통신을 담당하며, 이 과정에서 컴포넌트들이 직접 통신하는 대신 카프카를 통해 메시지, 즉 요청과 응답을 주고받는다. 이를 통해 시스템은 컴포넌트 사이의 결합도를 낮추는 동시에, 확장성과 유연성을 동시에 높일 수 있게 된다. Key Featur..
목차 이 글은 2023년 7월 9일 기준, OAuth 2.0 구현을 위한 클라이언트 아이디/시크릿 발급 방법을 정리한 것이다. 지금 진행 중인 노드/타입스크립트/Express로 게시판 만들기에서 길어져 분리된 글이며, 처음 하는 사람에게 설명하듯이 아주 상세하게 설명되어 있기 때문에, 잘 아는 사람은 굳이 읽을 필요가 없다. Google 구글부터 시작하자. 먼저 구글 클라우드에 로그인한다. https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 그러면 아래와 비슷한 화면이 보이는데, 새로운 프로젝트를 생성하자. 이름을 정해주고 만들기를 누르면, 잠시 후에 프로젝트가 생성된다. 프로젝트 선택을..
작은 프로젝트를 개발하면서는 만날 일이 없지만, 의외로 회사에서 일하다 보면 3분이 넘는 요청을 처리해야 하는 경우가 종종 있다. 스프링 부트의 경우, application.yml에 명시적인 타임아웃 설정이 없다면 연결 타임아웃은 기본 30초, 읽기 타임아웃은 기본적으로 무제한으로 설정된다. 하지만 AWS를 이용해 배포를 하는 경우, 특별히 설정을 해주지 않으면 60초 만에 타임아웃 에러가 뜨는데, 이런 경우 .yml 파일에 명시적으로 타임아웃을 길게 적어도 해결되지 않는 것을 확인할 수 있다. 해결 방법은 AWS의 어느 서비스를 사용하느냐에 따라 다르겠지만, 나의 경우 EC2, ELB, Route53을 사용하고 있다. 이런 경우 해결책은 생각보다 허무한데, 우선 AWS 콘솔에 로그인한 뒤, EC2에서 ..
- Total
- Today
- Yesterday
- 남미
- 맛집
- 자바
- Algorithm
- 알고리즘
- 유럽여행
- spring
- 스트림
- RX100M5
- Python
- 칼이사
- 리스트
- 세계일주
- 면접 준비
- Backjoon
- 중남미
- 스프링
- 백준
- 기술면접
- 동적계획법
- 유럽
- BOJ
- 세모
- 야경
- 파이썬
- 지지
- java
- a6000
- 여행
- 세계여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |