Develop (317) 썸네일형 리스트형 [Spring] Response 한글안깨지긔 Spring 에서 기본 필터를 제공해주거나, 빈으로 등록하는데 스프링 버전이 변경되면서 Response를 내리는 필터의 설정 방법도 조금 바뀌었다. server: servlet: context-path=/: encoding: charset: UTF-8 force: true 위 처럼 진행하면 된다.(application.yaml) [JPA] 친구 관련 API개발 추천친구 (나랑 아무런 친구 요청이 없는 것) 친구 요청(추천친구에서 친구 요청) 친구 검색(닉네임 기준 친구 검색) 친구 리스트 (본인과 친구관계인 사람) 친구 수락(친구 요청에 대한 승인) 친구 요청 내역 확인(본인 기준 친구 요청을 보낸사람) 우선 이렇게 3가지에 대한 API를 개발할 것이고, 포스팅은 한개만 예시로 할 것이다. 해당 API는 플러터에서 사용 목적으로 개발한다. 친구 controller @GetMapping("/recommand-friends") public List recommandFriends(@RequestParam("userId") String userId) { return friendService.recommendFriends(userId); } @PostMapping("/.. [JPA] QueryDsl 친구 관련 설계 친구데이터 관련 설계를 하고 있었다. 뭐가 좋을까. 고민 되었다. 특히 추천 친구라는 기능을 하나 만들고 싶었다. 우선 Entity간의 연관관계를 두기 싫었다. 그래서... 나는 이렇게 설계했다. 회원가입하면, Friends 테이블에 자기 자신도 넣어주는 것이다. 자세한건 아래 로직을 보자 1) 회원가입 로직 @PostMapping("/user") public User saveUser(@RequestBody UserDto userDto) { return userService.saveUser(userDto); } public User saveUser(UserDto userDto) { List result = userRepository.findByUserId(userDto.getUserId()); if(re.. [JPA] QueryDsl query logging 설정 해당 설정을 application.yaml에 넣어주면 된다. spring: jpa: properties: hibernate: show_sql: true format_sql: true use_sql_comments: true logging: level: org: hibernate: type: descriptor: sql: trace [QueryDsl] Spring 3.0 이상 Jdk 17 세팅 + 설계 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'org.springframework.boot' version '3.2.0-SNAPSHOT' id 'io.spring.dependency-management' version '1.1.2' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'com.boiler.flutterbackend' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor .. [Kafka] 토픽을 생성하는 방법들 토픽을 생성하는 상황은 크게 2가지이다. 1. 컨슈머 or 프로듀서가 카프카 브로커에 생성되지 않은 토픽에 대해 데이터를 요청할때 2. 커맨드 라인툴로 명시적으로 토픽을 생성하는 것이다. 유지보수를 위해서는 명시적으로 생성하는 것이좋지만 동시 처리량이 많아야 하는 토픽의 경우 파티션의 개수를 다르게 설정할 수 있고 단기간 데이터 처리만 필요한 경우 토픽에 들어온 데이터의 보관기간 옵션을 짧게 설정할 수 있다. 토픽의 특성별로 다르게 관리가 되어야 하기 때문에 명시적으로 생성하는 것이 좋다. broker의 옵션 중 토픽 auto topiccreate true로 주게 되면? 컨슈머나 프로듀서의 요청이 지금 없는 토픽이라면? 신규 토픽에 대해서 토픽을 생성해주는 것이다. (1번상황) [Kafka] 카프카 기타 쉘들 kafka-consumer-perf-test.sh는 컨슈머로 퍼포먼스를 측정할 때 사용된다. 카프카 브로커와 컨슈머간의 네트워크를 체크할 때 사용한다. kafka-reassign-partitions.sh 해당 과 같이 브로커 마다 파티션이 몰릴 수 있다. 이때 리더파티션과 팔로워 파티션을 적절하게 분산할 수 있는데, 해당 분산시에 사용된다. 근데 이걸 사용하면 리더 파티션과 팔로워 파티션이 위치를 변경 할 수 있다. kafka broker에는 auto leader rebalance.enable옵션이 있는데, 이 옵션의 기본값은 true로 클러스터 단위에서 리더 파티션을 자동 리밸런싱 하도록 도와준다. 브로커의 백그라운드 스레드가 일정한 간격으로 리더의 위치를 파악하고 필요시 리더 리밸런싱을 통해 리더의 .. [Kafka] consumer-groups 컨슈머 그룹에 대한 걸 알아보자. 컨슈머 그룹으로 생성된 컨슈머로 해당 토픽에 대한 데이터를 가져갔다. 컨슈머 그룹은 따로 생성하는 명령을 날리지 않고 컨슈머를 동작할 때 컨슈머 그룹이름을 지정하면 새로 생성된다. 또한 어떤 컨슈머 그룹이 어떤 토픽을 대상으로 레코드를 가져갔는지 그리고 상태와 오프셋 컨슈머 렉 컨슈머 ID,호스트 등을 알 수 있다. (컨슈머 렉 - 현재 레코드의 오프셋과 마지막 레코드의 차이이다 ,즉 컨슈머가 읽지않은 데이터라고 이해하면 된다.) 컨슈머의 상태를 조회할때도 유용하다. 또한 컨슈머그룹의 오프셋을 리셋할 수 있다. 오프셋의 리셋은 처음부터 시작되는 것만은 아니다. 특정 오프셋으로 이동할 수 있는 것이다. 순차처리가 필요없는 경우, 최신의 데이터로 오프셋을 이동할 수 있다는 .. 이전 1 2 3 4 5 6 ··· 40 다음