분류 전체보기
-
[Kafka] Kafka란?오픈소스/kafka 2021. 7. 5. 22:37
Kafka 여러 대의 분산 서버에서 대용량의 메세지를 처리하는 분산 메세징 시스템 특징 스트리밍 데이터를 다루는 미들웨어 가용성과 확장성 데이터 영속성 Pub/Sub 모델 지원 Kafka 구성 요소와 특징 Topic과 Partition 메세지는 Topic으로 분류되고, Topic은 여러 개의 Partition으로 나눠질 수 있다. Partition 내의 한 칸을 로그라고 하고, 데이터는 한 칸의 로그에 append 된다. 메세지의 상대적 위치를 나타내는 것이 offset이다. 여러 개의 Partition을 나누는 이유? 여러 개의 Partition을 두면 쓰기가 병렬로 처리됨 한 번 늘린 파티션은 절대로 줄일 수 없기 때문에 파티션을 늘릴 때 충분히 고려되어야 한다. Producer와 Consumer P..
-
[MongoDB] MongoDB란?데이터베이스/mongodb 2021. 7. 4. 19:53
NoSQL Not Only SQL NoSQL 탄생 배경 수평 확장 가능한 분산 시스템 Schema-less 완화된 ACID MongoDB MongoDB C++로 짜여진 오픈 소스 데이터베이스 문서 지향적(Document-Oriented)으며 뛰어난 확장성과 성능을 자랑 MongoDB 특징 가용성, 확장성, 성능 Document 기반 데이터베이스 Database > Collection > Document > Field 계층으로 이루어 짐 ObjectId (12 bytes) - UNIX Timestamp (4 bytes) + Random Value (5 bytes) + Count (3 bytes) RDBMS의 Primary Key와 같이 고유한 키를 의미 차이점은 Primary Key는 RDBMS가 직접 부..
-
[git] command line 명령어관리 배포/git 2021. 7. 2. 10:15
원격 저장소 branch 최신 사항 업데이트 $ git remote update branch 리스트 확인 # 원격 저장소의 branch 리스트 출력 $ git branch -r # 로컬, 원격 저장소의 모든 branch 리스트 출력 $ git branch -a 원격 저장소의 branch 가져오기 # 원격 저장소의 branch 이름과 동일하게 로컬 저장소에 branch 생성 $ git checkout -t origin/develop # 원격 저장소의 branch를 가져와서 특정 이름으로 로컬 저장소에 branch 생성 $ git checkout -b [생성할 branch 이름] [원격 저장소의 branch 이름] 원격 저장소에 Pull, Push 시 username, password 생략하기 $ git c..
-
[네트워크] CORSCS/네트워크 2021. 7. 1. 15:16
CORS (Cross-Origin Resource Sharing) 다른 출처 간의 리소스 공유 CORS는 브라우저의 구현 스펙에 포함되는 정책 출처 서버를 찾아가기 위해 가장 기본적인 것들을 합쳐 놓은 것 프로토콜 + 호스트 + 포트 http://uchupura.tistory.com:80 CORS 동작 절차 브라우저에서 요청을 보낼 때 요청 헤더에 Origin이라는 필드에 요청을 보내는 출처를 함께 담아 전달 서버가 이 요청에 대한 응답을 할 때 응답 헤더의 Access-Control-Allow-Origin 필드에 "이 리소스를 접근하는 것이 허용된 출처" 정보를 담아 전달 브라우저에서는 요청 시 보냈던 Origin 필드와 응답으로 받은 Access-Control-Allow-Origin 필드를 비교하여 ..
-
[JAVA] GC 튜닝CS/개발 언어 (JAVA) 2021. 6. 26. 11:27
GC 튜닝의 두 가지 목적 Old 영역으로 넘어가는 객체의 수 최소화 하기 G1 GC를 제외한 Oracle JVM에서 지원하는 모든 GC는 Generational GC이다. Eden 영역에서 객체가 처음 만들어지고, Survivor 영역을 오가다가, 끝까지 남아 있는 객체는 Old 영역으로 이동한다. Old 영역의 GC는 Young 영역의 GC에 비하여 상대적으로 시간이 오래 소요되기 때문에 Old 영역으로 넘어가는 객체의 수를 줄이면 Full GC가 발생하는 빈도를 줄일 수 있다. Young 영역의 크기를 잘 조절함으로써 효과를 볼 수 있다. Full GC 시간 줄이기 Full GC 실행에 시간이 오래 소요되면(1초 이상) 연관된 여러 부분에서 타임아웃이 발생 할 수 있다. Old 영역의 크기를 줄이면..
-
[Redis] centos redis-cli 설치오픈소스/redis 2021. 6. 25. 12:28
Redis를 설치 후 정상적으로 설치되어 있는지 확인해보기 위해서 Redis CLI를 설치해서 접속해보는 방법에 대해서 알아보겠습니다. Step01. make를 하기 위해 gcc를 설치 $ sudo yum install -y gcc Step02. redis-cli 설치 및 make $ sudo wget http://download.redis.io/redis-stable.tar.gz && tar xvzf redis-stable.tar.gz && cd redis-stable && make Step03. redis-cli를 /usr/bin에 추가해서 어느 위치에서든 사용 가능하도록 등록 $ sudo cp src/redis-cli /usr/bin Step04. 설치가 끝나면 Redis가 정상적으로 설치되어 구동..
-
[JAVA] Garbage Collection 모니터링CS/개발 언어 (JAVA) 2021. 6. 21. 23:36
GC 모니터링 JVM이 어떻게 GC를 수행하고 있는지 알아내는 과정 Young 영역에 있는 객체를 Old 영역에 언제 얼마나 이동했는지, stop-the-world가 언제 얼마나 일어났는지에 대한 정보를 알 수 있음 GC 모니터링 방법 jstat VMID (Virtual Machine ID) 동작하고 있는 VM을 가리키는 ID jstat을 통해서 모니터링을 하기 위해서는 vmid 정보를 argument로 전달 필요 VMID를 확인하기 위해서는 아래와 같이 jps 명령어를 통해서 확인 가능 $ jsp 2981 auth-api.jar GC 관련 jstat 옵션 옵션 기능 gcutil 각 힙 영역에 대한 사용 정도를 백분율로 보여준다. 아울러 총 GC 수행 횟수와 누적 GC 시간을 알 수 있다. gc 각 힙(..