![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dp9WDT/btsIElt1623/KxCck502auKQKym7J1oblK/img.png)
지난 포스팅에 이어서 이번에는 프론트엔드에 리액트, 백엔드에 스프링부트를 사용하는 경우 어떻게 키클록을 활용해야 하는지 예제 코드를 공유해 보겠다. [Spring] Keycloak으로 SpringSecurity OAuth 구현하기 #2 | 스프링 시큐리티 키클록 연동 세팅하기지난 게시글에서 키클록에 대해 다루면서 스프링 시큐리티 OAuth 구현을 위한 키클록 기본 세팅을 진행했다. [Spring] Keycloak으로 SpringSecurity OAuth 구현하기 #1 | 키클록이란?0. Keycloak 이란?Keycloak은yuejeong.tistory.com 인턴 프로젝트를 단독으로 풀스택으로 진행하면서 프론트엔드를 리액트로 처음 구현하게 됐는데, 문법 자체에 낯설었던 탓에 초기 세팅에서 많은 시간..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/OpPut/btsIpiW5MZc/lFK4G1EovZaIaEe3VtFibk/img.png)
지난 게시글에서 키클록에 대해 다루면서 스프링 시큐리티 OAuth 구현을 위한 키클록 기본 세팅을 진행했다. [Spring] Keycloak으로 SpringSecurity OAuth 구현하기 #1 | 키클록이란?0. Keycloak 이란?Keycloak은 Open Source 기반의 IAM(Identity and Access Management) 소프트웨어로 사용자에 대한 인증(Authentication)과 인가(Authorization) 관리기능을 국제 인증/인가 표준 프로토콜(OIDC, SAML, OAuth 2.0yuejeong.tistory.com 오늘은 스프링부트 앱에서 시큐리티 세팅을 구현해 보자. 스프링 시큐리티와 키클록을 연동하는 과정에서 정말 무수히 많은 에러를 경험했다.. 레퍼런스를 찾..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Er6jU/btsIiVVC2nd/ZnnFRHk1PUTsyn6PN78aOk/img.png)
0. Keycloak 이란?Keycloak은 Open Source 기반의 IAM(Identity and Access Management) 소프트웨어로 사용자에 대한 인증(Authentication)과 인가(Authorization) 관리기능을 국제 인증/인가 표준 프로토콜(OIDC, SAML, OAuth 2.0 등) 기반으로 제공한다.계정 관리 및 access 관리에 용이한 어드민 콘솔을 제공하고, SSO가 가능하다. 즉 마이크로서비스나 웹 애플리케이션에서 사용자 관리 및 보안을 중앙 집중화 하고, 간단하게 구현할 수 있도록 도와준다. 나의 경우 인턴 과제로 키클록을 생성해 고객사마다 Realm을 생성하고, 각 기업에서 사용할 여러 웹 애플리케이션을 Client로 추가해서 (예: AWS QuickSig..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pIWj8/btsIifmbTJs/ArWOijWHFkURzykkDvjP20/img.png)
[JAVA] 백준 #9663 N-Queen 🔒 문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.🔎 풀이처음에 풀 때는 배열 완전 탐색을 생각했다. 그래서 체스 보드판은 이중 배열로 선언하고 board[N][N], 이중 배열 보드를 Back tracking을 돌면서 퀸을 N개 놓고, 그 조합이 정답인지 아닌지 확인하는 방식으로 코드를 구성했다. 🔹최적화 전 static void placeTheQueen( int count, int startI, int startJ ){ if( count == N ){ checkIfCanAttack(); ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/beZZZe/btsHYLF8VE6/9CFkch8i2ybeMyplzz1Ga1/img.png)
*본 포스팅은 인프런 [데브원영]님의 아파치 카프카 프로그래밍 강의 섹션 6을 수강하고 이를 참고해 작성했습니다. [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! |데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고www.inflearn.com 멀티스레드 컨슈머 애플리케이션카프카는 처리량을 늘리기 위해 파티션과 컨슈머 개수를 늘려서 운영할 수 있다. 보통 컨슈머와 스레드를 일대일 대응시킨다.컨슈머 그룹 A: 특정 프로세스에 장애가 발생해도 프로세스가 모두 분리되어 있으므로 서로 영향을 주지 않아 격리 처리가 가능( 더 자주 쓰인..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/oLdJx/btsHJSFyTJD/eiZD8nWkpmB58GR2mKEvKk/img.png)
[JAVA] 알고리즘 스터디 7주 차 공통과제: 2022 KAKAO 양궁대회 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔒 문제카카오배 양궁대회가 열렸습니다.라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다.카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다.1. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다.2. 점수를..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ov62O/btsHH74BsCC/TnfJKBBoHB6cbabFpnsps1/img.png)
*본 포스팅은 인프런 [데브원영]님의 아파치 카프카 프로그래밍 강의 섹션 6을 수강하고 이를 참고해 작성했습니다. [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! |데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고www.inflearn.com 카프카 컨슈머 개요 프로듀서가 전송한 데이터는 카프카 브로커에 적재된다. 컨슈머는 적재된 데이터를 사용하기 위해 브로커로부터 데이터를 가져와서 필요한 처리를 한다. 컨슈머 내부 구조- Fetcher 리더 파티션으로부터 레코드들을 배치로 미리 가져와서 대기한다. - Poll()Fetche..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cTHdQ0/btsHAIEu4Zs/auWXKXMEdOZ357ReweJKc0/img.png)
[JAVA] 알고리즘 스터디 6주 차 공통과제: KAKAO 도넛과 막대그래프 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔒 문제도넛 모양 그래프, 막대 모양 그래프, 8 자 모양 그래프들이 있습니다. 이 그래프들은 1개 이상의 정점과, 정점들을 연결하는 단방향 간선으로 이루어져 있습니다.크기가 n인 도넛 모양 그래프는 n개의 정점과 n개의 간선이 있습니다. 도넛 모양 그래프의 아무 한 정점에서 출발해 이용한 적 없는 간선을 계속 따라가면 나머지 n-1개의 정점들을 한 번씩 방문한 뒤 원래 출발했던 정점으로 돌아오게 됩니다. 도넛 모양 그래프의 형태는 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dTnCvh/btsHAnLZpyn/q2kDm7zbxd07FrRR3nLmKk/img.png)
*본 포스팅은 인프런 [데브원영]님의 아파치 카프카 프로그래밍 강의 세션 5를 수강하고 이를 참고해 작성했습니다. [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! |데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고www.inflearn.com 프로듀서 애플리케이션 개발0. 사용 환경- IntelliJ IDEA - JAVA 11- Gradle 1. build.gradle 파일 설정plugins { id 'java'}group = 'org.example'version = '1.0-SNAPSHOT'repositories { ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b1OvuL/btsHAtSJfK9/ZKRtUDptKrCazsCBMRM8kK/img.png)
*본 포스팅은 인프런 [데브원영]님의 아파치 카프카 프로그래밍 강의 세션 5를 수강하고 이를 참고해 작성했습니다. [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! |데브원영 DVWY | 실전 환경에서 사용하는 아파치 카프카 애플리케이션 프로그래밍 지식들을 모았습니다! 데이터 파이프라인을 구축하는데 핵심이 되는 아파치 카프카의 각종 기능들을 살펴보고www.inflearn.com카프카 프로듀서 개요프로듀서는 카프카에서 데이터의 시작점이다. 프로듀서 애플리케이션은 카프카에 필요한 데이터를 선언하고 특정 토픽의 파티션에 전송한다. 프로듀서는 데이터를 전송할 때 리더 파이션을 가지고 있는 카프카 브로커와 직접 통신한다. - 리더 파티션: 프로듀서, 컨슈머와 직접 통신하..