Programming-[Backend] (421) 썸네일형 리스트형 [비공개] Keycloak 클라이언트별 Admin 관리자 만들기 보호되어 있는 글입니다. Keycloak 세부 권한 관리(admin-fine-grained-authz) Master Realm(Master) : Realm Level Realm-Role설명 비고admin• 모든 Realms을 관리 할 수 있는 슈퍼 유저• 새로운 realm을 생성하면 새로운 realm에 대한 권한도 부여됨create-realm• 새로운 Realm을 생성 할 수 있는 권한 기본적으로 생성되는 Master 영역은, 여러 영역을 관리 할 수 있음 : master-realmMaster에 있는 User에게는 다른 영역을 관리할 수 있는 권한을 부여할 수 있음master 영역에서만 여러 영역을 동시에 관리할 수 있음즉, master 영역의 사용자만 master-realm의 역할을 가질 수 있음master-realm 안에서만 부여 가능 (Master > Realm roles 확인 가능)모든 영역이 아.. 성능 테스트: K6, influxDB, grafana, RPS, 지연율과 DB Connection pool 지난 jmeter와 chaos monkey를 이용한 성능 테스트에 이은 글이다. 이번에는 K6, influxDB, grafana를 통해 성능 테스트를 하는 글이다. 지난글:https://whitepro.tistory.com/1065 성능 테스트: jmeter, @Profile, chaos monkey배경로컬에서 잘 만든 애플리케이션을 클라우드 환경 등에 배포하기 위해서는 컴퓨팅 자원을 얼마나 쓸 것인지 결정하는 것이 필요하다. 실제 애플리케이션의 요구사항에 따른 적절한 자원 임whitepro.tistory.com 1. K6개요 및 설치ref.) https://velog.io/@prismy/%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8-k6grafanainflux.. JPA, ddl-auto, MYSQL, index 등 테이블 생성 기초 정리 Spring Boot + JPA + Hibernate + MYSQL 조합으로 DB를 구축할 때 주의해야할 점들에 대해 기록해둔다. 1. Index는 카디널리티가 높은 순대로, 컴포지트 형태로 짤 것여러 컬럼들에 대해 각각의 index를 잡으면 비효율적이다. 각 인덱스를 DB에서 독립적으로 관리해야할 뿐만 아니라 쿼리 실행 시마다 각각의 인덱스를 조합해야하기 때문이다. DB 옵티마이저가 비효율적으로 작성된 인덱스를 조합하지 않고 무시하는 경우도 많다. 인덱스를 작성할 때, 카디널리티가 높은 순서대로 작성한다. 그리고 보통 많이 사용하는 type등 종류가 몇 개 안되는, 즉 카디널리티가 낮은 컬럼이 있는 경우 옵티마이저에 의해 무시될 수도 있다. DB 컬럼의 순서는 PK, FK, 카디널리티가 높은 순서대로 .. [TIL] JVM HeapSize, HeapDumpPath 설정 buildPack의 bootBuildImage를 통해 JvmOption을 줄 때, 아래와 같이 설정함 static def getEnvs(heapDumpPath, envVal) {def jvmOptions = ["-Xms512m","-Xmx1024m","-XX: MaxDirectMemorySize=100M","-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=${heapDumpPath}"]return [ "BPE_DELIM_JAVA_TOOL_OPTIONS": " ", "BPE_APPEND_JAVA_TOOL_OPTIONS": jvmOptions.join(" ")] Heap Memory Size를 512 ~ 1024 MB로 설정, nio 패키지.. Swagger UI(feat. keycloak Open API) 1. Swagger UISwagger UI라는 도커 이미지가 제공된다!https://github.com/swagger-api/swagger-ui/blob/HEAD/docs/usage/installation.md docker run -p 80:8080 swaggerapi/swagger-ui 해당 도커 컨테이너를 실행하고, localhost로 접속하여 위 쪽 입력창에 .json 파일의 웹 주소를 입력하면 API를 사용할 수 있는 Swagger 문서가 생성된다. 나는 keycloak의 REST API를 확인해보기 위해서 keycloak의 OPEN API 문서의 주소를 붙여넣었다.https://www.keycloak.org/docs-api/latest/rest-api/openapi.json 2. Ke.. [TIL] @JsonInclude: 응답 객체 json의 끝부분이 깨질 때 문제외부 서버에서 응답을 받아왔는데, 맨 끝에 }로 json이 닫히는 부분이 제대로 오지 않아서 parsing이 일부 실패하여 오류가 나고 있었다. 원인Ro 객체로 응답을 지정하고 있었는데, body의 마지막 데이터들이 results가 아닌 code, name, description 속성값들이 모두 null로 오고 있었다. json에는 null이 없으므로 null이 맨 마지막에 오면 역직렬화 시에 위와 같이 불완전한 parsing이 일어날 수 있다. 해결책 1. 응답하는 쪽에서 null 데이터가 있는 경우 "null"로 String 처리해주는 것이 좋다.2. Ro 객체에 아래처럼 @JsonInclude(JsonInclude.Include.NON_NULL)을 추가해주면 null 데이터는 역직렬화시에 무시되.. 성능 테스트: jmeter, @Profile, chaos monkey 배경로컬에서 잘 만든 애플리케이션을 클라우드 환경 등에 배포하기 위해서는 컴퓨팅 자원을 얼마나 쓸 것인지 결정하는 것이 필요하다. 실제 애플리케이션의 요구사항에 따른 적절한 자원 임계치를 설정하고 그에 맞게 설정해야 불필요한 자원 낭비를 막을 수 있다. jmeter애플리케이션을 테스트하기 위한 대상 API를 선정했다면, 해당 API 쪽으로 많은 요청을 한 번에 쏴볼 수 있는 도구가 필요한데, 이를 가능하게 해주는 것이 jmeter이다. 아래 jmeter 홈페이지에서 실행파일이 포함된 바이너리 파일을 다운로드 받고, 압축을 푼 뒤, 내부의 /bin/jmeter 파일을 실행하면된다.https://jmeter.apache.org/download_jmeter.cgi 아래 그림처럼 Thread Group -> H.. 이전 1 2 3 4 5 6 7 8 ··· 53 다음