[Message Broker] Redis Pub/Sub vs RabbitMQ STOMP
·
카테고리 없음
[비교배경]프로젝트에서 Redis Pub/Sub은 알림서비스의 확장성을 위해 RabbitMQ STOMP는 채팅서비스의 확장을위해 사용한 적이있다 두 기술 모두 다중 서버에서 인스턴스간 유저의 정보 불일치를 해소하기위해 사용하였는데 두 기술의 비교하여 공통점, 차이점을 알아보고 어떤 상황에서 사용해야 두 기술을 적절히 사용할 수 있는지 정리하고자 한다.1. 두 기술의 설명[Redis Pub/Sub]~한 곳에서 ~하다 [RabbitMQ STOMP]~한 곳에서 ~하다 2. 두 기술의 공통점, 차이점[공통점] [차이점]3. 실제 적용사례 및 체감Redis Pub/Sub 적용 프로젝트 사례알림서비스의 확장성 개선 용도로 활용 RabbitMQ STOMP 적용사례채팅서비스의 확장성 개선용도로 활용 4. 개인적인 결..
[Spring Boot] 카카오 소셜로그인 구축기2
·
프로젝트
1편에서는 카카오 로그인을 코드로 구현하기 전에 사전설정을 해봤습니다. 오늘은 Spring Boot에 카카오 로그인을 코드로 구현해보도록 하겠습니다. https://noaahhh.tistory.com/122 [Spring Boot] 카카오 소셜 로그인 구축기1카카오 소셜 로그인 구현하기 전에 사전에 설정해야할 것들이 생각보다 많다 글을 읽으면서 잘 따라와 주길 바란다. 0. 카카오 개발자 계정 만들기카카오 개발자 계정이 없다면 아래 링크를 클noaahhh.tistory.com만약 설정을 안 하신 분이라면 위의 링크를 들어가 설정해주시기 바랍니다. 참고로 현재의 카카오 로그인은 Spring Security와 JWT 토큰 형식으로 진행되므로 Spring Security 관련 내용은 아래 링크를 참고해주길 바..
[Spring Boot] 카카오 소셜 로그인 구축기1
·
프로젝트
카카오 소셜 로그인 구현하기 전에 사전에 설정해야할 것들이 생각보다 많다 글을 읽으면서 잘 따라와 주길 바란다. 0. 카카오 개발자 계정 만들기카카오 개발자 계정이 없다면 아래 링크를 클릭해서 생성해주길 바란다. https://accounts.kakao.com/weblogin/create_account/?continue=https%3A%2F%2Fdevelopers.kakao.com%2Flogin%3Fcontinue%3Dhttps%253A%252F%252Fdevelopers.kakao.com%252F&lang=ko&showHeader=false#selectVerifyMethod 카카오계정 accounts.kakao.com 1. 앱 생성카카오 계정을 생성 했다면 이제 카카오 로그인을 적용할 개별 앱을 생..
[Spring Boot] Spring Security를 이용한 인증/인가
·
프로젝트
Spring Security란?Spring Security는 Spring 기반 애플리케이션에 인증(Authentication)과 인가(Authorization) 기능을 제공하는 강력한 보안 프레임워크입니다. 핵심 특징인증(Authentication)과 인가(Authorization) 처리세션/토큰 기반 인증 지원CSRF, XSS, 세션 고정 공격 등 방어필터 기반의 보안 체인(Security Filter Chain)커스터마이징 가능한 설정 구조 (DSL 기반 설정) Spring Security 작동원리Spring Security는 Filter 기반의 체인 구조(Security Filter Chain) 로 동작한다.사용자가 요청을 보낼 때, DispatcherServlet에 도달하기 전 보안 필터들이 요청..
[Spring Boot] QueryDSL 적용기
·
프로젝트
Querydsl이란?JPQL을 자바 코드로 안전하게 생성하고 실행할 수 있게 해주는 프레임 워크로 기존 JPQL 사용시 문자열로 쿼리를 쓰는 대신 코드로 작성할 수 있게 해줍니다. Querydsl 설정방법1. 의존성 추가plugins { id 'org.springframework.boot' version '3.3.0' id 'io.spring.dependency-management' version '1.1.5' id 'java' // ✅ Querydsl Q클래스 생성을 위한 annotationProcessor id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'}dependencies { implementation 'org..
AtCoder Beginner Contest 421
·
알고리즘/CP
점수: 300등수: 7022 C - Alternatedimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { var in = new BufferedReader(new InputStreamReader(System.in)); var out = new PrintWriter(System.out); int N = Integer.parseInt(in.readLine()); String S = in.readLine(); // 'A'의 위치를 저장할 리스트 List posA = new A..
[20250315] Atcoder Beginner Contest 397
·
알고리즘/CP
점수: 700등수: 6427 D - Cubes문제분석문제 개요: 양의 정수 N이 주어졌을 때, x^3 - y^3 = N을 만족하는 양의 정수 쌍 (x, y)를 찾아야 함. 쌍이 존재하면 하나를 출력하고, 없으면 -1을 출력.입력:N: 양의 정수 (1≤N≤10^18).출력:x^3 - y^3 = N을 만족하는 (x, y)가 없으면: -1.존재하면: x와 y를 공백으로 구분해 출력 (하나면 충분).제약:1≤N≤10^18 (64비트 정수 범위 내).시간 제한: 2초 (약 10^8 연산).핵심 관찰:x^3 - y^3 = (x - y)(x^2 + xy + y^2) = N.x > y, x - y = d라 하면 N = d (x^2 + xy + y^2).y = k로 두면 x = k + d, 이를 통해 N =..
[20250308] Atcoder Beginner Contest 396
·
알고리즘/CP
점수:  1000(4/7)등수:  3879   C - Buy Balls문제분석문제: "C - Buy Balls".입력:N: 검은 공 개수 (1 ≤ N ≤ 2×10^5).M: 흰 공 개수 (1 ≤ M ≤ 2×10^5).B_i: 검은 공 값 (-10^9 ≤ B_i ≤ 10^9).W_j: 흰 공 값 (-10^9 ≤ W_j ≤ 10^9).조건:검은 공 개수 ≥ 흰 공 개수.선택한 공의 값 합 최대화.출력: 최대 합.# 입력 처리n, m = map(int, input().split())b = list(map(int, input().split())) # 검은 공 값w = list(map(int, input().split())) # 흰 공 값# 내림차순 정렬b.sort(reverse=True)w.sort(reve..