일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기술공부
- 코테공부
- 플러터 공부
- 코테준비
- 스프링
- JPA스터디
- 스프링부트공부
- querydsl
- 스프링부트
- JPA 공부
- DDD
- K8S
- 플러터 개발
- 알고리즘공부
- nestjs
- 기술면접공부
- Flutter
- 스프링공부
- JPA
- 프로그래머스
- Kafka
- 스프링 공부
- JPA예제
- 자바공부
- nestjs스터디
- Axon framework
- nestjs공부
- 자료구조공부
- JPA공부
- 카프카
- Today
- Total
목록분류 전체보기 (715)
DevBoi
1. 카프카 바이너리 파일 다운로드 https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 2.디렉토리 구조확인 kafka 2.8버전을 받았다. 2.12는 스칼라 버전이다. bin은 바이너리나 쉘 스크립트가 포함되어있다. config에는 설정에 필요한 여러 설정파일들이 libs 브로커를 실행할떄 필요한 라이브러리가 있다. 해당 폴더 내에 추가로 data 디렉토리를 생성한다. 이는 데이터를 적재하기 위함이다. 3. 내용 살펴보기 config/server.properties는 브로커를 실행할때 필요한 설정 들이다. # Licensed to the Apache So..
아파치 카프카 클러스터를 서버에 직접 설치하는 것은 가장 전통적이다. 세부적인 서버 설정을 통해, 최고의 성능으로 최적의 클러스터를 활용할 수 있다. 하지만, 시행착오가 필요하다. 따라서 Saas를 도입하는 형태도 많다. 아래 그림을 보면 이해가 편하다. 직접 관리영역이 적을수록, 편하지만 세부적인 설정은 점점 더 불가능해진다. 오픈소스로 직접 구축하면 32/6 기가로 세팅할수있다. 이유는 OS Page cache영역을 사용할 수 있기 떄문에, 오히려 더 빠르고 성능 좋게 처리할 수 있다. 개발용이더라도, 브로커 개수는 여러개로 두는 것이 좋다. 파티션은 한번 늘이면, 다시 줄일수 없지만 브로커는 줄일수 있기 때문이다.
카프카 클라이언트는 메타데이터를 요청하고 응답받는다. 클러스터는 브로커가 여러개일 수있다. 리더 파티션이 몇번 브로커에 있는지 알수있는 메타데이터를 요청하고 전달 받는다. 카프카 프로듀서 메타데이터 옵션 -metadata.max.age.ms : 메타데이터를 강제로 리프래시하는 간격, 기본 5분이다. -metadata.max.idle.ms : 프로듀서가 유휴 상태일 경우, 메타데이터를 캐시에 유지하는 기간이다. 카프카 클라이언트는 반드시 리더파티션과 통신해야한다. 그게 아니라면, Exception이 발생된다. 대부분, 메타데이터 리프래쉬 이슈로발생하고, 해당 리프레쉬 기간에 대한 재설정이 필요하다. 파티션과 리더파티션의 개념을 살짝 추가로 얘기하면 아래와 같다. 브로커는 파티션으로 이루어져있고, 이 파티션..
TestFlight 와 곂치는 부분은 링크로 대체, 해당 부분에서 확인 하면 된다. https://devboi.tistory.com/563 [Flutter] IOS 앱 빌드 및 배포 (TestFilght) 1. 앱 식별자 등록 developer.apple.com > 식별자 관리 > Bundle Id에 대한 추가를 해줘야 한다. 아래와 같이 만들고, 새앱으로 이동해준다. 2.신규 앱 등록 해당 신규 앱을 추가하면, 아까 식별자로 등록한 devboi.tistory.com 1. 앱 식별자 등록 (Testflight 확인가능) Ios Bundle Id > ios/Runner.xcodeproj/project.pbxproj 파일에 있는 PRODUCT_BUNDLE_IDENTIFIER 속성에 들어있다. 2.신규 앱 등..
1. 슬라이드로 밀면 삭제되는 위젯은 Dismissed 로 감싸주면 된다. 기존 소스에서 아래로 바꿨다. child: Dismissible( key: UniqueKey(), onDismissed: (direction) { if(list.length == 1){ list = []; } else { list.removeAt(index); } memoInterface.saveList(list); }, child: Container( height: 80, margin: const EdgeInsets.symmetric( horizontal: 16, vertical: 4, ), decoration: BoxDecoration( color: list[index].completeYn == "N" ? Colors .blu..
SharedPreferences에 대한걸 정리한다. 동기/비동기에 대한 처리를 제대로 하지않아, 오류가 발생했다. 목표 : SharedPreferences에 데이터를 넣고, 해당 데이터가 업데이트 될때마다, 리스트뷰에 추가해준다. 1. 저장 객체 선언 class Memo{ int? id; String content=''; String? completeYn; Memo(int id,String content,String completeYn){ this.id = id; this.content = content; this.completeYn = completeYn; } Map toJson() { return { 'id': this.id, 'content': this.content, 'completeYn': th..
1. 의존성 추가 shared_preferences: ^2.2.0 2. 텍스트 받을 위젯 세팅 final _contentEditController = TextEditingController(); child: TextField( controller: _contentEditController, style: TextStyle(color: Colors.black), decoration: InputDecoration( border: InputBorder.none, hintText: '메모를 입력해주세요', hintStyle: TextStyle(color: Colors.grey[300])), cursorColor: Colors.blue, ), 3. 인스턴스 초기화 (대부분 State단에서 선언) final Futu..
1. 별도 메소드 작성 Future _dialogBuilder(BuildContext context) { return showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: const Text('Basic dialog title'), content: const Text( 'A dialog is a type of modal window that\n' 'appears in front of app content to\n' 'provide critical information, or prompt\n' 'for a decision to be made.', ), actions: [ TextButton( sty..
Spring boot 3.2 버전으로 올렸다. 스웨거 관련 다양한 설정방법들이 난무해서 어떤게 문제인지 알기 쉽지않다. 그리고 swagger설정에 시간투자를 많이하면 귀찮기도하다. 그래서 정리하자면 단순히 아래 의존성만 주입해도된다. implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' 아래 주소로 확인 가능하다.(로컬 빌드 기준) http://localhost:8080/swagger-ui/index.html 패키지 스캔도 자동으로하고, 여러가지 자동으로 지원해준다. 더 세세한 설정방법등은..사실 뭐 있겠지만.. 사실 나는 스웨거에 별로 시간투자를 안하려고한다 (할게 많다..)
java.sql.SQLNonTransientConnectionException: (conn=48) Got a packet bigger than 'max_allowed_packet' bytes 오류가 발생할 수 있다. 아래 두개의 커맨드를 입력해서 디비 설정 값을 바꿔주면 된다. set global max_allowed_packet=1000000000; set global net_buffer_length=1000000;