분류 전체보기
-
-
카프카 프로듀서카테고리 없음 2024. 2. 26. 21:35
[ 목차 ] acks 옵션 프로듀서가 전송한 데이터가 카프카 클러스터에 얼마나 신뢰성 높게 저장할지 지정할 수 있다. 0, 1, all(-1) 값을 가질 수있다. 복제 개수가 1인 경우 acks 옵션에 따른 성능 변화는 크지 않다. 그러나 안정적 운영을 위해 대부분 복제 개수가 2 이상인 경우가 많다. acks=0 프로듀서가 리더 파티션으로 데이터를 전송했을 때 리더 파티션으로 데이터가 저장되었는지 확인하지 않는다는 뜻이다. 리더 파티션은 데이터가 저장된 이후에 데이터가 몇 번째 오프셋에 저장되었는지 리턴하는데, acks가 0으로 설정되어 있다면 프로듀서는 리더 파티션에 데이터가 저장되었는지 여부에 대한 응답 값을 받지 않는다. retries 설정을 해도 전송하자마자 성공으로 간주해 재전송할 일이 없다...
-
OAuth카테고리 없음 2024. 2. 10. 21:17
[ 목차 ]OAuth 란OAuth 는 Open Authorization 의 약자로 인터넷 사용자가 비밀번호를 제공하지 않고, 다른 웹사이트에서 자신의 정보에 대해 웹사이트나 애플리케이션의 접근권한을 부여할 수 있는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준 (protocol) 이다. OAuth 이전에는 외부사이트와 인증기반 데이터를 사용할 때 사용자 ID/PWD 인증방식을 사용했지 때문에 비밀번호 노출 위험이 있었다. OAuth는 API 를 제공하는 서버에서 인증을 진행하고, Access Token을 발급해 3rd party에서 해당 서버의 API 를 안전하고 쉽게 사용할 수 있게 한다. 현재는 OAuth 2.0 으로 많이 구현되어 있지만 1.0 과 비교해서 살펴보겠다.OAuth 1.0..
-
카프카 기본 개념카테고리 없음 2024. 1. 16. 22:11
[ 목차 ] 토픽과 파티션 토픽이름은 데이터의 얼굴이다. 카프카 클러스터의 브로커에서 데이터를 관리할 때 기준이 된다. 리더 파티션, 팔로워 파티션으로 구성될 수 있다. 토픽의 네이밍은 아래와 같이 역할을 쉽게 이해할 수 있도록 하는 것이 좋다. 1. 환경.팀-명.애프리케이션-명.메세지-타입 ex) prd.marketing-team.sms-platform.json 2. 프로젝트-명.서비스명.환경.이벤트명 ex) commerce.payment.prd.notification 3. 환경.서비스명.jira번호.메세지타입 ex) dev.email-sender.jira-123.email-vo-custom 4. 카프카클러스터명.환경.서비스명.메세지타입 프로듀서 데이터를 발행한다. bootstrap.servers 에 ..
-
성능 테스트 개론카테고리 없음 2023. 4. 10. 13:51
시스템 성능 검증 테스트는 검증 범위에 따라 단위, 통합, 임계, 장시간 테스트로 구분된다. 단위 성능테스트 테스트 대상 단위 업무에 대한 성능 목표치를 달성할 수 있는지 여부를 검증하기 위해 수행한다. 스트레스 테스트 형태로 진행되며, 측정된 최대 업무량(throughput)과 단위 성능테스트 목표와 비교해 목표 미달일 경우 튜닝 테스트 대상이 된다. 설사 목표 달성을 하지 못하더라도 오래 매달리지 않는다. 통합 성능테스트 테스트 대상 전체 업무들에 대한 성능 목표치를 달성할 수 있는지 여부를 검증하기 위해 수행한다. 본 테스트를 통해 구축된 시스템에 대한 최종 성능을 검증한다. 총체적인 관점에서 접근한다. 임계 성능테스트 테스트 대상 시스템이 SAL(Service Level Agreement) 를 만..
-
엔티티 와 VO카테고리 없음 2023. 4. 7. 16:51
엔티티 : DB 와 매핑되는 핵심 클래스. 외부에서 함부로 데이터에 접근/변경하지 못하도록 제한해야하며, persistence, buseniss, presentation 중 persistence tier 에 속한다. 데이터 일관성을 위해 불변객체로 만들거나, 변경 로직일 경우 명확한 목적과 이름을 가진 메서드를 제공한다. VO(Value Object) 값 객체, 핵심 역할이 equals , hashcode 오버라이딩 해 값이 같은 것을 검증한다., DTO 는 계층 간 데이터 교환을 위한 객체이다. 로직이 없는 순수한 데이터 객체이다. Vo 와 DTO 둘 다 데이터 전달 객체이지만, VO 는 비지니스 로직의 결과를 갖고 객체 비교 등 로직에 필요한 메서드를 가진다. DTO 는 layer 간 통신용 단순한 ..
-
MAT카테고리 없음 2023. 3. 13. 15:08
상황 : 320 만건 정도 되는 테이블이 2.5GiB 정도 되는 크기인데 8GB 인 서버에 데이터를 올리면 OOM 에러가 난다. jconsole 로 heap 사용량 확인해봐도 충분한 용량. jstat 으로 2초 마다 GC 정보 확인 - 데이터가 어느정도 로드된 후에는 GCT 가 점점 늘어난다. - S0 , S1 은 Survivor 영역인데 S0은 0, S1은 계속 100프로로 고정되어 나온다. * Minor GC가 발생할 때 Eden 에 있는 obj 들이 S0 혹은 S1 로 이동하고, * Minor GC가 발생하면 S0 -> S1 혹은 S1 -> S0 으로 데이터가 옮겨지며 obj 의 age가 늘어나고, 한쪽은 완전히 비워진다. * Meta 도 꽤 높이 차지하고 있다. 98-9% 였다가 MaxDirect..
-
아파치 이그나이트카테고리 없음 2023. 3. 7. 21:48
- 인메모모리 컴퓨팅 플랫폼으로 데이터베이스와 사용자 애플리케이션 사이에 위치시킬 수 있습니다. - 아파치 이그나이트에는 몇 가지 특징이 나와있는데, 요점은 Persistence Mode 를 on/off 해서 off일 때는 Ram 에만 데이터를 저장하는 캐싱기능을 가진 in-memory storage로 사용할 수도 있고, on을 하면 디스크에도 데이터를 저장해 persistence layer 로도 사용할 수 있다는 것입니다. - 캐시를 key-value API 로도 사용할 수 있고, SQL 쿼리를 작성해 캐시를 사용할 수도 있다. 이에 따라 (IMDB) in-memory database 혹은 (IMDG) in-memory data grid로써 동작한다고 합니다. - OS 의 가상메모리와 비슷하게 동작하지..