본문 바로가기

전체 글

(126)
[알고리즘] 스패닝 트리 Spanning tree란? 신장 트리, 스패닝 트리 생성 나무 라고 번역되어 쓰이며 노드 간 경로가 오직 하나인 토폴로지이다. 특징 모든 정점들의 연결에 끊임이 없어야 한다. 간선의 수 + 1 = 정점의 수 단절점, 단절선 구하기 문제 적용 스패팅 트리에서 특정 간선이나 특정 정점을 제거하면 그래프가 2개 이상으로 나뉘어지는 것을 활용하여 단절선과 단절점을 구한다. 11266번: 단절점 첫째 줄에 두 정수 V(1≤V≤10,000), E(1≤E≤100,000)가 주어진다. 이는 그래프가 V개의 정점과 E개의 간선으로 이루어져 있다는 의미이다. 다음 E개의 줄에는 간선에 대한 정보를 나타내는 두 정수 A, B www.acmicpc.net 11400번: 단절선 첫째 줄에 두 정수 V(1≤V≤100,000),..
RestTemplate을 통해서 API 호출하기 RestTemplate 이란? spring framework 에서 제공하는 고수준 HTTP API 라이브러리이다. RestTemplate을 사용하여 GET 요청하기 RestTemplate template = new RestTemplate(); ResponseEntity response = template.getForEntity("http://test.com", String.class); String body = response.getBody(); RestTemplate을 사용하여 POST 요청하기 exchange 사용하기 RestTemplate template = new RestTemplate(); RequestEntity requestEntity = RequestEntity.post("https://t..
프로젝트 개선하기 이런저런 기술을 배우고 습득해서 연습을 하고 싶지만 새로운 프로젝트를 기획하는 것보다는 기존의 프로젝트에 개선점을 적용하면서 발전시키는 것이 좋겠다는 생각에 프로젝트에 부족한 부분을 개선하고 기능을 추가하려고 한다. 개선 1 : In memory h2 database 테스트 단계 적용하여 빌드 단계에 테스트 실행 기존의 프로젝트는 CI/CD 과정에서 테스트가 무시되어서 실행이 되어왔다. 이렇게 진행한 이유는 프로젝트를 진행할 때는 테스트 코드 작성을 하지 않았고 기능 구현에 집중했기 때문이다. 또한 외부 시스템(DB)과 연계된 테스트를 어떻게 작성해야 하는지에 대한 방법을 전혀 몰랐기 때문에 작성된 테스트를 빌드 단계에서 검증이 되는지 확신할 수 없었기 때문이다. 이러한 이유로 기존에는 배포 전에 개발 ..
[알고리즘] 카랄랑 수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n개의 괄호 쌍을 가지고 짝이 맞는 문자열의 개수를 구하는 문제를 푸는 과정에서 알게 된 수열이다. 올바른 괄호에 카랄랑 수가 어떻게 적용되었는지를 생각해보았다. c0 = 1 : "" c1 = 1 : () c2 = 2 : ( () ), ( )( ) c3 = 5 : ( ( () ) ), ( ( )( ) ), ( )( )( ), ( () )( ), ( )( () ) 올바른 괄호가 되기 위해서는 항상 양끝은 ( .... ) 꼴로 생성이 되어야한다. 그리고 ... 안에는 올바른 괄호가 들어오거나 (와 )의 순서가 딱..
[spring cloud]#4 spring cloud gateway 구축하기 Spring cloud gateway 매커니즘 spring cloud gateway는 세가지 요소로 구성되어 있다. 1. Route : 어떤 요청에 대해서 어떻게 처리할지에 대한 설정을 구성하는 하나의 기초적인 단위 2. Predicate : 어떤 요청을 처리할 지를 결정하는 요소 3. Filter : 요청을 어떻게 처리할 지 그리고 그 응답에 대해서 어떤 사후 처리를 할지를 결정하는 요소 Gateway Handler Mapping 에서 어떤 Route에 매칭을 해하는지 결정하여 Route에 명시된 설정에 따른 Handler를 통해서 요청을 처리하게 되는 매커니즘으로 구성되어 있다. predicate : 어떤 요청을 처리할까? Spring cloud gateway에서는 다음과 같이 구현된 Predicat..
[spring cloud]#3 Netflix Eureka 로 디스커버리 서비스 구축하기 마이크로 서비스 아키텍처를 사용한다면 많은 인스턴스로 구성된 여러 개의. 애플리케이션이 구동이 되어 서로 상호작용해야 한다. 많으면 수백 개 이상의 인스턴스가 존재하는데 이 많은 인스턴스를 ip로 식별하여 서비스를 구축하는 것은 너무 복잡한 방법이기 때문에 원하는 서비스를 구동하는 인스턴스를 찾아줄 서비스가 필요하게 된다. 이 서비스가 디스커버리 서비스이고 spring에서는 netfilx Eureka를 제공하고 있다. 구현 절차 1. Netflix eureka application 구성하기 2. 등록할 서비스 설정 구성 1. Netflix eureka application 구성하기 1-1 netflix eureka 의존성 추가 implementation 'org.springframework.cloud:s..
[spring cloud]#2 spring cloud bus 를 이용하여 설정 정보 동적으로 변경하기 각 어플리케이션의 설정 정보를 외부의 서비스를 이용하여 설정하는 방법을 적용하는 configuration service 구현 방법에 이어서 동적으로 실행 중인 어플리케이션의 동작을 멈추지 않고 설정 정보를 변경하는 방법을 알아보자 사전 준비 1. 외부 설정 서비스 [spring cloud]#1 spring cloud config server에서 application 설정 정보 조회하기 spring cloud config server 이점 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보를 외부 시스템에서 관리하기 위해서 사용하는 기술 하나의 중앙화 된 저장소에서 구성요소 관리 가능 각 note-ydg.tistory.com 절차 1. 메시지 브로커 설치 (rabbitmq or kafka) 2. b..
[spring cloud]#1 spring cloud config server에서 application 설정 정보 조회하기 spring cloud config server 이점 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보를 외부 시스템에서 관리하기 위해서 사용하는 기술 하나의 중앙화 된 저장소에서 구성요소 관리 가능 각 서비스를 다시 빌드하지 않고 설정 정보를 동적으로 변경이 가능 구현 절차 1. config server 만들기 plugins { id 'java' id 'org.springframework.boot' version '3.1.2' id 'io.spring.dependency-management' version '1.1.2' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositorie..