Spring Cloud Config Server 설정하기2(Spring Cloud Bus)
·
WEB/Spring
Spring Cloud Bus는 분산 시스템에서 여러 애플리케이션 간에 메시지를 통해 이벤트를 전달하고, 설정 변경 등의 작업을 일괄적으로 처리할 수 있도록 돕는 모듈입니다. 주로 Spring Cloud Config와 함께 사용되며, 여러 마이크로서비스에 대한 설정 변경이나 이벤트 전파를 쉽게 관리하는 데 유용합니다.  주요 기능과 역할분산된 애플리케이션 간 이벤트 브로드캐스팅:Spring Cloud Bus는 메시지 브로커(예: RabbitMQ 또는 Kafka)를 사용하여 애플리케이션 간에 이벤트를 브로드캐스트합니다. 이를 통해 모든 마이크로서비스에 한 번의 명령으로 설정 변경, 캐시 초기화, 상태 업데이트 등을 적용할 수 있습니다.설정 변경 반영:Spring Cloud Config와 함께 사용하면, C..
Spring Cloud Config Server 설정하기1(Spring Cloud Config)
·
WEB/Spring
Spring Cloud Config Server는 분산 시스템에서 구성 파일을 중앙에서 관리하고 동적으로 업데이트할 수 있도록 해주는 중요한 도구입니다. 이는 애플리케이션이 여러 환경에서 일관성 있게 실행될 수 있도록 구성 관리 문제를 해결합니다. 여기서 Spring Cloud Config Server를 사용하는 이유와 장단점을 살펴보겠습니다.  장점중앙화된 설정 관리: 여러 애플리케이션의 설정을 한 곳에서 관리할 수 있어, 설정 파일의 중복을 줄이고 일관성을 유지할 수 있습니다.환경별 설정 관리: 로컬, 개발, 테스트, 프로덕션 등 환경별로 설정을 구분하여 관리할 수 있으며, 이를 통해 각 환경에 맞는 설정을 쉽게 적용할 수 있습니다.실시간 설정 변경 반영: Spring Cloud Bus 또는 Actu..
Spring Boot JWT(JSON Web Token) 설정하기
·
WEB/Spring
JWT(JSON Web Token) 란?JWT는 유저를 인증하고 식별하기 위한 토큰(Token) 기반 인증입니다.토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함됩니다.RESTful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고받을 수 있게 됩니다.세션(Session)을 사용하게 될 경우 쿠키 등을 통해 사용자를 식별하고 서버에 세션을 저장했지만, 토큰을 클라이언트에 저장하고 요청시 HTTP 헤더에 토큰을 첨부하는 것만으로도 단순하게 데이터를 요청하고 응답받을 수 있습니다. JWT는 JSON 형식을 사용하여 정보를 안전하게 전송하기 위한 개방형 표준(RFC 7519)입니다. JWT는 서버와 클라이언트 간에 정보를 전송하는 데 널리 사용되며, 주로 인증과 권한 부여를..
Spring Boot AOP 적용 방법(Log, Transaction)
·
WEB/Spring
AOP  VS OOP객체 지향 프로그래밍(OOP)OOP의 주요 개념:클래스(Class) : 객체의 설계도. 속성과 메서드를 정의하는 틀입니다.객체(Object) : 클래스를 통해 생성된 실체로, 실제로 동작하는 프로그램의 단위입니다.상속(Inheritance) : 기존 클래스를 확장하여 새로운 클래스를 만드는 기능입니다.다형성(Polymorphism) : 동일한 이름의 메서드가 다른 동작을 수행할 수 있게 하는 기능입니다.캡슐화(Encapsulation) : 객체의 속성과 메서드를 외부에서 직접 접근하지 못하도록 숨기는 기능입니다.추상화(Abstraction) : 복잡한 시스템을 단순화하여 핵심 기능만 노출하는 기능입니다.OOP의 장점:코드 재사용 : 상속과 다형성 등을 통해 코드의 재사용이 용이합니다...
Spring Boot로 MSA 개발하기
·
WEB/Spring
Spring Boot MSA 정의1. 마이크로서비스 아키텍처(MSA, Microservices Architecture)정의: MSA는 애플리케이션을 여러 개의 독립적이고 자율적인 작은 서비스들로 분리하여 개발하고 운영하는 아키텍처 스타일입니다. 각 서비스는 특정 비즈니스 기능을 담당하며, 서로 독립적으로 배포, 확장 및 유지보수가 가능합니다.2. 스프링 부트(Spring Boot)정의: 스프링 부트는 스프링 프레임워크의 하위 프로젝트로, 복잡한 설정 없이 간단하게 스프링 기반 애플리케이션을 개발할 수 있게 해주는 프레임워크입니다. 자동 설정, 내장 서버, 독립 실행형 애플리케이션을 쉽게 만들 수 있는 기능들을 제공합니다.3. 스프링 부트 MSA의 주요 특징서비스 분리: 각 마이크로서비스는 독립적으로 개발..
Spring Boot와 React를 사용하여 MSA 프로젝트 만들기
·
프로젝트
Spring Boot와 React.js 를 모두 구성하여 MSA로 모듈별 프로젝트를 생성 및 관리 사용한 툴React, Spring Boot, HTML5, MySql, vscode, ECLIPSE, Spring Security, Gradle, Redis, RabbitMQ 개요리액트와 스프링 부트를 연동하여 MSA로 구성된 프로젝트를 만들고 싶었습니다. 현재 두개의 모듈과 하나의 데이터 베이스로 연동을 하였고 JWT를 사용하여 인증 설정을 해놓았습니다. 설계 Spring 구성사용한 버전Node : v20.16.0 Spring Boot : 3.3.3 JDK : 17 react : 18.3.1redis : 3.05RabbitMQ : 3.13.7 React 구성요소# 프로젝트 생성 및 실행mkdir 본인 프로젝..
[프로그래머스] 리코쳇 로봇 - Java(자바)
·
자바/코딩테스트
문제 이해리코쳇 로봇이라는 보드게임이 있습니다.게임판에는 "." - 빈공간, "R" - 로봇, "D" - 장애물, "G" - 목표지점 으로 구성되어있고 "R", "G는 무조건 하나씩 존재합니다.로봇이 목표지점으로 갈 수 있는 최소의 경로를 찾아야합니다.로봇은 상하좌우로 움직일수 있으며 한번 움직일때 미끄러져서 맨끝까지 가거나 장애물을 만나기전까지 멈추지 않습니다.로봇이 목표지점으로 갈 수 없다면 -1로 return 해주세요로봇이 상하좌우 움직일때마다 맨끝까지 or 장애물에 멈추게 move 함수를 만든다.0 - 상 , 1 - 하, 2 - 좌, 3 - 우 로 판단하여 만들었다.움직일 때마다 이동 count + 1 하고 방문했던적이 없다면 큐에 집어 넣고 아니라면 방향을 바꿔가며 이동한다.이동한 좌표가 "G"..
[프로그래머스] 야근 지수 - Java(자바)
·
자바/코딩테스트
문제 이해N 시간 동안 야근을 해야한다.작업량 works 배열만큼 남아있는데 이 작업량은 1시간에 1만큼 줄어들며 N시간이 다 지난후 작업량들의 제곱 합이 야근의 피로도이다.피로도를 최소화하고자 한다.문제를 보면 작업량들의 제곱 합이 최소값이 되도록 해야한다. 그렇다는건 작업량들의 수치들이 모두 비슷한 값이면 제곱 합이 되면 최소값이 될 수 있다는 뜻이다.N시간 보다 남은 작업량이 작다면 피로도는 0으로 return 해준다.작업량을 모두 근사치로 만들기 위해 작업량의 최대값을 뽑아 -1 씩 빼는걸 N시간 만큼 반복할 것이다.반복과 정렬이 모두 가능하도록 우선순위 큐 PriorityQueue 를 사용하고자 한다.큐의 최대값을 뽑은 값을 -1을 하여 다시 집어 넣는 방식을 N 이 0이 될때까지 반복한다.큐의..
[프로그래머스] 행렬 테두리 회전하기 - Java(자바)
·
자바/코딩테스트
문제 이해rows x , columns y 의 행을 가지고 있는 행렬이 있다.queries 배열에는 (x1,y1,x2,y2) 의 좌표값을 가지고 있는데 해당 좌표 (x1,y1) 에서 (x2,y2) 범위를 지정하여 테두리 영역만 시계방향으로 한번 회전 시킨다.queries 배열에 있는 만큼 회전을 반복한다.회전 할때마다 나오는 최소값들을 배열에 담아서 나타내라.소용돌이 문제로 인식하여 좌표범위의 영역을 상,하,좌,우 방향으로 회전시키면서 배열에 저장시켰다.시계방향으로 회전하면서 이전 좌표의 값을 한칸씩 옮겨야하는데 현재 배열을 그대로 사용하면 이전 좌표값의 값을 알수 없기에 copyArr 배열을 준비하여 소용돌이를 도는동안 copyArr 배열의 값으로 이전 좌표값을 알아낼수 있다.소용돌이가 한바퀴 완료하면..
[Linux] Tomcat catalina.out 날짜별 관리하기
·
WEB/기초
catalina.out 날짜 별 로그 관리하기rotatelogs 사용하여 로그 나누기logrotate 사용하여 로그 나누기catalina.sh 에 date 포맷 추가하기Log4j2 RollingFile 사용하기  톰캣기반 어플리케이션을 개발하고 운영하다보면 catalina.out에 로그가 계속 쌓여서 그 크기를 관리하기 어렵고 보기도 불편하다. 톰캣 설정으로 서버 재시작시 catalina.out을 초기화 시킬수 있지만 이것도 또한 이전 로그가 남아 있지 않아 운영에 있어서 좋지 않다. 날짜별로 나누기 위에서는 위와 같이 4가지 방식이 있는데 프로젝트 상황이나 성향에 따라 사용하여 로그를 날짜별로 나눠서 관리하는 방법을 공유하고자 한다. 1. rotatelogs 사용하여 로그 나누기Apache 에서 제공하..
[프로그래머스] 두 큐 합 같게 만들기 - Java(자바)
·
자바/코딩테스트
문제 이해길이가 같은 큐 두개가 주어진다.큐에 들어간 원소의 합이 같아지게 pop,insert의 작업을 한다.작업의 횟수가 최소값인 경우를 구해야 한다.원소의 값은 10^9 까지이고 원소의 개수는 30만개로 sum을 구하기에는 스택오버 플로우가 일어나기때문에 sum 타입을 long으로 해준다.최소횟수를 구하기 위해서 주어진 두 큐의 합을 비교한다.                                                                                            큰합계(큐) -> 작은합계(큐) 원소를 큰합 큐에서 poll 작은합 큐로 원소를 insert위 처럼 큐를 pop, insert 하면서 두큐의 합계가 같아 질때까지 반복한다.예#3 번처럼 원소의 합이 ..
[프로그래머스] 거리두기 확인하기 - Java(자바)
·
자바/코딩테스트
문제 이해5X5 대기실이 5개가 있다.거리두기를 잘지켜지는지 확인해야한다.거리두기는 맨해튼 거리 2이하로 앉지 말아야 한다.응시자가 앉아 있는 자리 사이에 파티션으로 막혀있을 경우 맨해튼 거리 2이하도 허용된다.맨해튼 거리 2이하를 생각하였을때 P좌표에서 상하좌우를 총 2번 이내로 움직였을때 또다른 P가 있다면 맨해튼 거리 2이하다.해당 P1좌표가 갈수 있는 위치는 아래 표와 같다.P1좌표를 상하좌우 표시를 하고 P2좌표를 상하좌우 표시하면 중첩되는곳이 있다면 거리두기 실패이다.중첩을 찾아내기 위해 P좌표가 방문한곳은 visit 배열로 관리하였다.P1 갈 수 있음P1 갈 수 있음P1 갈 수 있음 P1 갈 수 있음P1  || P2 갈수 있음P1 갈 수 있음 P2 갈수 있음 P1 갈 수 있음P1 갈 수 있음..
대전집주인
'분류 전체보기' 카테고리의 글 목록