분류 전체보기

ETC

RabbitMQ와 Kafka

메시지 큐 (Message Queue) 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 통신 방법 End-Point 간 직접 통신이 아닌 중간의 Queue를 통해 데이터를 통신 Kafka LinedIn에서 개발한 메시지 큐 방식 기반, 분산 메시징 시스템 kafka 용어 설명 Broker : 각각의 kafka server를 이야기 함 Topic : Producer에서 전달한 메시지가 저장되는 곳, 메시지들의 카테고리 Partition : Topic은 여러 파티션으로 구성되어 있음, topic내에서 메시지가 분리되어 실제로 저장 Offset : 하나의 메시지 단위를 레코드라고 표현, 이러한 레코드들의 ID가 오프셋, 배열의 Index 개념 Zookeeper : Kafka Cluster에..

ETC

Tokenizer란?

Tokenization(토큰화) 란? Text를 여러 개의 Token으로 나누는 것 Tokenizer 입력된 텍스트를 모델에서 처리할 수 있는 데이터로 변환하는 것이 목적 모델은 숫자만 처리할 수 있으므로, 토크나이저는 텍스트 입력을 숫자 데이터로 변환 단어 기반 토큰화(Word-based Tokenization) 각 단어에는 0부터 시작하여 어휘집(Vocabulary) 크기 사이의 ID가 할당 모델은 위에서 할당된 ID를 활용하여 단어 식별 “dog”와 “dogs”가 다르게 식별 되기 때문에 엄청난 양의 토큰이 생성됨 모델은 연관성 판단이 안되기 때문에 단어 사이의 유사성을 알 수 없음 어휘집에 없는 단어는 “unknown” 토큰으로 표현 어휘집을 만들 때 unkown 토큰을 최대한 적게 출력하는 것이..

DB/SQLD

SQLD 시험 완

오늘 SQLD 시험을 보고 왔다. 결과는... 음 .. 기대를 안 하는게 낫겠다. 평소 아는대로만 일단 풀었는데 공부를 전혀 못 했다보니 기대는 안 하기로 했다. 다음엔 준비좀 해서 봐야지

ETC

FastAPI가 뭘까?

파이썬 3.6 이상에서 작동하는, 표준 파이썬 타입 힌트를 바탕으로 한, 현대적이고 빠른 API 서버 웹 프레임워크 Flask와 비슷한 구조를 가짐 기본적으로 비동기식으로 작성되어 있어 빠른 성능을 보여줌 FastAPI 장점 공식 블로그의 장점에는 아래와 같은 설명이 기재되어 있다. Node.js, Go와 비슷한 수준의 빠른 성능 Go는 태생부터 C와 속도 경쟁할 만큼 빨랐는데, 이러한 Go와 비견될 정도의 속도라면 충분히 장점이 될 것 개발 속도 200%~300% 향상 코드 버그 40% 감소 쉬운 사용 부가적인 기능 자동으로 API Documentation을 지원하기 때문에, 서버를 구동하고 /docs 로 접속하면 Swagger UI가 나옴 데이터의 타입을 명시해줄 수 있음 아래 예시는, 데이터를 정의..

JAVA

Spring의 WebSocket

WebSocket 기존 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜 TCP/IP 레이어(4계층)를 사용하는 Socket과 달리 HTTP 레이어(7계층)에서 동작 80 포트를 사용하므로 방화벽에 제약이 없으며 WebSocket이라고 불림 HTTP 프로토콜을 사용하여 연결을 한 뒤, 자체적인 WebSocket 프로토콜을 활용하여 통신 진행 실시간 양방향 통신을 위해 사용 HTTP와 WebSocket의 차이 출처 : https://kbj96.tistory.com/46 HTTP는 Response 이전에 Request가 반드시 존재해야 함 하지만 이럴 경우, 채팅과 같은 경우에는 서버에 주기적으로 Request를 전송하여 메시지가 왔는지 확인해야 함 → 매우 비효율적 WebSo..

ETC

MSA(MicroService Architecture) 의 통신 방법

일대일(One-to-One) : 하나의 요청이 하나의 서비스를 실행할 경우 일대다(One-to-Many) : 하나의 요청이 여러 서비스를 실행할 경우 위와 같이 호출 하는 쪽과 호출을 받는 쪽으로 구분을 하거나 동기(Synchronous) : 요청을 보내고 응답이 올 때 까지 기다리는 방식 비동기(Asynchronous) : 요청을 보내고 응답을 기다리지 않고 다음을 실행 로 구분 일대다 일대일 일대다 동기 1) 요청/응답(Request/response) - 비동기 2) 알림(Notification) 4) 퍼블리시/구독(Publish/subscribe) 3) 요청/비동기 응답(Request/async response) 5) 퍼블리시/비동기 구독(Publish/async responses) 요청/응답 : ..

ETC

In-Memory Database

In-Memory Database 디스크가 아닌 주 메모리에 데이터를 보유하고 있는 데이터베이스 장점 자료 접근 및 처리가 빠름 메모리상에 인덱스를 넣어 필요한 모든 정보를 메모리상의 인덱스를 통해 빠르게 검색 가능 단점 휘발성이기 때문에 꺼지면 데이터들이 삭제됨 속도 때문에 사용하는 것이라 압축을 하지 않음, 이에 따라 RAM 용량이 넉넉하지 않을 경우 가상메모리를 사용하게 되어 역효과가 일어나기도 함 특징 ACID 중 영속성(Durability)를 보장하기 위해 INSERT, UPDATE, DELETE된 값들은 디스크에 로그로 기록 DBMS가 재구동될 때 디스크로부터 로그 파일을 읽어와 메모리에 재구축 가능 💡 ACID : 트랜젝션을 정의하는 4가지 속성 원자성(Automicity) - 트랜잭션에 속..

JAVA

자바의 Collection

java.util 패키지 다수의 데이터를 쉽게 처리하는 방법 제공 → DB처럼 CRUD 중요 List 특징 순서가 있는 데이터의 집합 순서가 있으므로 데이터의 중복을 허락 주요 메서드 List friends = new ArrayList(); public void createTest(){ friends.add("홍길동"); friends.add("홍길동"); friends.add("장길산"); friends.add("임꺽정"); friends.add(0,"이몽룡"); //끼워넣기 } 배열과 ArrayList 배열의 장점 가장 기본적인 형태의 자료 구조로 간단하며 사용이 쉬움 접근 속도가 빠름 배열의 단점 크기를 변경할 수 없어 추가 데이터를 위해 배열을 만들고 복사해야 함 비 순차적 데이터의 추가, 삭제에..

D_Helloper
'분류 전체보기' 카테고리의 글 목록 (8 Page)