일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테준비
- nestjs
- 코테공부
- 알고리즘공부
- 자료구조공부
- Flutter
- Kafka
- 자바공부
- JPA공부
- 스프링공부
- nestjs스터디
- JPA예제
- 기술공부
- 프로그래머스
- 스프링부트공부
- K8S
- JPA
- JPA 공부
- 카프카
- 기술면접공부
- querydsl
- DDD
- Axon framework
- 플러터 공부
- 스프링
- 스프링부트
- 스프링 공부
- 플러터 개발
- JPA스터디
- nestjs공부
- Today
- Total
목록분류 전체보기 (715)
DevBoi
kafka-configs 를 정리해보자 토픽의 일부 옵션을 설정하기 위해서는 kafka-configs.sh명령어를 사용해야한다. --alter와 --add-config 옵션을 사용하여, Min.insync.replicas옵션을 토픽별로 설정할 수있다. 관련 Config 명령어로 broker,all,describe옵션을 사용해서 조회가 가능하다. bin/kafka-configs.sh --bootstrap-server my-kafka:9092 --alter --add-config min.insync.replica=2 topic test bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --describe 예를 들어 위와 같이, ..
플러터는 관리를 안하면 한 화면에 너무 많은 위젯들이 담기게 되어 소스가 너무 길게 된다. 그래서 위젯별로 나눌수있도록 하는 방법에 대해서 알아보자 1. screen과 widget별로 나누는게 좋다. 버튼에 대한 코딩은 widget 폴더에, 화면 구성에 대한 패키지는 screen 하위에 두는 것이 좋은것같다. 나는 login 화면인, login.dart는 sreen에 이외 카카오버튼에 구성되는 widget은 별도로 뻈다. import 'package:boilerflutterapp/main.dart'; import 'package:boilerflutterapp/util/animations.dart'; import 'package:boilerflutterapp/util/const.dart'; import '..
소셜 로그인을 달아 놓을 거다. 카카오 개발자 계정 관련 세팅을 정리한다. 1. Kakao Developer 세팅 https://developers.kakao.com/docs/latest/ko/getting-started/app#platform Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 로그인 > 내 애플리케이션>애플리케이션 추가 추가한 애플리케이션 > 플랫폼 설정 하기 우선 IOS부터 진행하자 Bundle 아이디 찾는 법 : 해당 프로젝트 Runner.xcworkspace를 열고 아래 사진 처럼 확인 저장이 되면 아래와 같이 등록이 된다...
보일러 템플릿을 만들 것이다. 1. 하단 네비게이션 2. 소셜 로그인 3. 네비게이션 별 아이템 리스트로 불러오기 4. 외부 서버 호출모듈 일단 이런 기능이 있는 BoilerTemplate을 만들 예정이다. 모든 앱의 기초랄까.. 무튼 다음 글에는 해당 하나씩 구현해가는 글을 써보자
토픽은 디비의 테이블과 같다. 토픽을 생성하려면, 클러스터 정보와 토픽의 이름을 알고 있으면 된다. topic.sh를 활용해서 해당 토픽을 생성하거나,컨트롤 하면 된다. 파티션 개수, 복제 개수를 설정할 수 있지만, 안하면 브로커의 기본값으로 세팅된다. 우선 주키퍼와 브로커를 실행하자 실행파일은 bin 하위, config 파일은 config 폴더 하위에 있다. 파티션 개수를 줄일수 없는 특성 때문에, 해당 파티션의 개수를 줄여야 할 때는 방법이 없다. 이때는 그냥 새로 토픽을 만드는 것이 좋다. 일단. 주키퍼, 브로커를 실행하자 1) 주키퍼 실행 bin/zookeeper-server-start.sh config/zookeeper.properties 2) 브로커 실행 bin/kafka-server-star..
카프카를 다시 시작하면 종종 에러가 발생하게 된다. 기존에 클러스터에 대한 내용을 캐싱 형태로 가지고 있게 되는데, 이는 재시작을 위해 지워줘야 한다. 왜냐면, 해당 정보는 클러스터가 재시작될때 변경되는데, 이전의 클러스터 정보를 찾아가기 때문이다. (에러 내용) kafka.common.InconsistentClusterIdException: The Cluster ID HJcDo1HpS5-q4aZps1OlAQ doesn't match stored clusterId Some(E40mZS9sS4q0HuW9kidRqg) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wro..
공부를 막 시작한 친구를 위해.. 기록용 Spring 에서는 profile별로, 변수나 정적 값의 정보를 다르게 가져갈수 있다. 간단하게 파일 구조는 이렇게 분리가 가능하다. application-환경.yaml 이다. 흔히 Java를 런시거나, Jar파일을 실행할때, VM Options을 주게 되는데 이 Vm Option으로 환경변수에 대한 값을 지정해주면 해당 Profile로 분기처리를 하여, 동작을 제어할 수 있다. 인텔리제이를 예로 위 처럼 -D로 변수명,값을 Vm option으로 넘겨주게 되면 스프링이 기동될때 해당 프로파일에 대한 값으로 정보를 가져오게 된다. 이게 가장 흔하고 기본적인 내용이다. @ActiveProfile이나 등등 해당 프로파일을 가지고 빈의 값을 동적으로 분기처리하는.. 그런..
머리속에 들어있는 내용들을 정리한다. 1. 밸리데이션 관련 의존성 주입. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 간단한 테스트 @RestController @RequiredArgsConstructor public class MemberController { private final MemberMapper memberMapper; @RequestMapping("/member") public String mapperTest(@RequestBody @Valid MemberDto memberDto){ return "success!"; } } @Getter @Setter @AllArgsConstructor public..
기존에는 Aws Mariadb를 별도로 구성해서 사용했는데, 이제 Ec2에서 app, mariadb 두개의 컨테이너를 띄우고 사용할 것이다. 구조는 이렇다. 로컬에서 도커파일을 빌드해서 이미지를 Docker hub로 올리고 docker-compose 파일을 수정해준다. ec2에 scp로 docker-compose 파일을 보내고(추후에는 vi로 직접 수정) 해당 docker-compose 파일로 빌드 및 컨트롤한다. 1) DockerFile FROM openjdk:17-alpine ARG JAR_FILE=/build/libs/boiler-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} /boiler.jar ENTRYPOINT ["java","-jar","-Dspring.profiles.ac..
갑자기 생각난것과. 좋은 공통화에 대한 고민을 하다가. 작성하는 글 사실 공통화를 그렇게 열광하지는 않는다. 운영 측면에서 공통화가 무조건 이득이라고 생각하지도 않는다. 때로는 각 상황에 맞는 클래스파일이 하나씩 있는게 좋다고도 생각한다. 단순히 아래와 같은 Response가 있다고 가정하자. @PostMapping("/sample") public Member test(@RequestBody Member member){ System.out.println("id_post~~:"+member.getId()); return member; } 해당 응답 객체를 좀더 공통화를 한다면 아래와 같을 것이다. @AllArgsConstructor @Getter public class EntityResponse { T d..