분류 전체보기

Gateway에서 인가 처리JwtFilterspring cloud gateway에서 제공해주는 AbstractGatewayFilterFactory 필터를 사용해줘야 한다.import com.example.apigateway.utils.JwtUtil;import org.springframework.cloud.gateway.filter.GatewayFilter;import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;import org.springframework.http.HttpCookie;import org.springframework.http.server.reactive.ServerHttpRequest;imp..
Eureka란?Spring Cloud Eureka는 넷플릭스에서 개발한 서비스 디스커버리 시스템이다.마이크로서비스 아키텍처(MSA) 환경에서 동적으로 서비스 등록 및 검색을 가능하게 해준다. 서비스 디스커버리란?마이크로서비스 환경에서는 서비스들이 동적으로 변경될 수 있으므로, 각 서비스의 IP 및 포트를 관리하는 중앙 레지스트리가 필요하다. Eureka Server: 서비스들의 정보를 저장하고 관리하는 레지스트리 서버 역할Eureka Client: 유레카 서버에 자신의 정보를 등록하고, 필요할 때 다른 서비스의 정보를 조회 유레카 서버에 등록만 잘 해놓으면 다른 서버의 IP를 알 필요가 없다 => 필요할 때 유레카 서버에서 받아가면 된다. 서버가 아무리 많아도 각자의 서비스를 개발하는 개발팀에서 유레카 ..
하나의 프로젝트 안에 여러 개의 프로젝트가 들어갈 수 있게 멀티 모듈 프로젝트를 생성 common, user-api, board-api, gateway가 있는 프로젝트 만들  멀티 모듈 프로젝트 생성모듈 생성프로젝트 우클릭 - New - Module 클릭  모듈 이름을 입력하고 생성한다. 모듈 세 개 추가  settings.gradle 설정프로젝트의 settings.gradle에 생성한 모듈들을 추가해준다.rootProject.name = 'multi'include 'user-api'include 'common'include 'board-api' 필요 없는 파일 삭제 프로젝트의 src는 사용할 일이 없기 떄문에 src 폴더를 삭제해준다. 각각의 모듈에서 필요 없는 파일들은 삭제하고, src 폴더와 bui..
Spring Cloud란?https://spring.io/projects/spring-cloud Spring CloudSpring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, short lived microservices andspring.io Spring Cloud는 마이크로서비스 아키텍처(MSA)를 구축할 때 필요한 다양한 기능을 제공하는 Spring 프레임..
STOMP란?Single (단순한) Text (텍스트 기반) Oriented Messaging Protocol (메시징 프로토콜)웹 소켓과 함께 사용하는 메시징 프로토콜 기본적으로 웹 소켓은 양방향 통신을 가능하게 하지만,메시지를 어떻게 주고받을지에 대한 형식을 정해주지 않는다. -> STOMP를 사용하면 클라이언트와 서버 간 메시지 형식이 표준화되고,채팅, 알림 시스템, 실시간 데이터 전송 등에 활용 가능Pub-Sub 방식을 사용하여 한 명이 보낸 메시지를 여러 사람이 받을 수 있다. (대표적인 예로 채팅방이 있음)  STOMP 특징텍스트 기반 프로토콜HTTP 처럼 간단한 프레임을 사용하여 메시지를 주고받음Pub-Sub(발행-구독) 모델 지원메시지를 특정 채널에 보내면, 해당 채널을 구독한 클라이언트들..
Kafka 라이브러리 추가build.gradle에 추가implementation 'org.springframework.kafka:spring-kafka' Kafka 설정application.yml 설정데이터를 주고받을 때는 같은 데이터 타입으로 주고받아야 한다.string으로 보냈으면 string으로, JSON으로 보냈으면 JSON으로  bootstrap-servers에는 카프카 서버 IP 주소를 적어준다.# String으로 받기spring: kafka: bootstrap-servers: 10.10.10.123:9092 consumer: group-id: psy-group key-deserializer: org.apache.kafka.common.serialization.S..
웹 소켓(Web Socket)이란?웹 소켓(Web Socket)은 클라이언트와 서버 간의 양방향 통신을 지원하는 프로토콜로, HTTP보다 효율적인 실시간 데이터 전송이 가능하다. HTTP는 요청과 응답을 기반으로 한 단방향 통신이지만, 웹 소켓은 연결을 유지하면서 양방향으로 데이터를 주고받을 수 있다. ✅ 웹 소켓의 특징양방향 통신 : 클라이언트와 서버가 실시간으로 데이터를 주고받을 수 있다.지속적인 연결 유지: 최초 handshake 후 지속적인 연결을 유지하면서 데이터 전송 가능낮은 오버헤드: HTTP 요청/응답보다 헤더 크기가 작아 네트워크 부하 감소빠른 응답 속도: 실시간 서비스(채팅, 알림 등) 등에 적합 웹 소켓으로 실시간 채팅 구현하기웹 소켓 라이브러리 추가 build.gradle 파일에 웹..
· CS/Linux
카프카(Kafka)란?분산 이벤트 스트리밍 플랫폼. 주로 대용량의 실시간 로그 데이터를 처리하는 데 사용된다. ✅ 특징분산 시스템 : 여러 브로커(Broker)로 구성되어 장애에 강함고성능, 확장성 : 초당 수백만 개의 메시지를 처리 가능내구성 : 데이터를 디스크에 저장하여 안정적 유지실시간 스트리밍 : 대용량 데이터를 빠르게 처리 ✅ 주요 구성 요소프로듀서 (Producer) : 메시지를 생성하여 카프카로 전송하는 역할컨슈머 (Consumer) : 메시지를 구독하여 가져가는 역할브로커 (Broker) : 카프카 서버로, 메시지를 저장하고 분배하는 역할토픽 (Topic) : 메시지가 저장되는 논리적 분류 단위파티션 (Partition) : 토픽을 나누어 병럴 처리 가능하게 하는 단위컨슈머 그룹 (Cons..
3.10 ~ 3.14 이번 주에 배운 내용이번 주에는 도커 수업이 끝나고 쿠버네티스 수업을 시작했다!근데 이번 주 월요일이 도커 첫 수업이었는데... 하필 전날 저녁 먹고 체를 심하게 해서 속이 안 좋아서 계속 울렁거려가지고 ㅠㅠ 화장실 왔다갔다 하면서 헛구역질하다가 점심에 약 먹고 좀 괜찮아지긴 했는데 머리가 울려서 결국 수업을 제대로 듣지도 못하고 실습도 진행하지 못 했다. 그래서 이틀차부터 수업을 들었는데... 첫날 못 들은 게 좀 크리티컬했다. 수업을 듣는데 이해가 가질 않아서 ㅠㅠ 옆자리 동기한테 계속 물어보면서 실습을 진행했다.도커 네트워크와 쉘 프로그래밍에 대해서 배우고, 도커 컴포즈로 DB master-slave 를 구성하는 실습을 진행했다. 도커 3일차에는 도커 환경에서 디버그하는 방법에..
webimplementation 'org.springframework.boot:spring-boot-starter-web' DB// DBimplementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.mariadb.jdbc:mariadb-java-client'  spring securityimplementation 'org.springframework.boot:spring-boot-starter-security'  jwtimplementation 'io.jsonwebtoken:jjwt-api:0.11.5'implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'implementa..