728x90 전체 글380 [Algorithm] Shortest Path 4: Floyd-Warshall Floyd-Warshall 최단 경로를 찾는 알고리즘중 하나이다. 모든 쌍들간의 최단 경로 길이를 구한다. Floyd-Warshall 특징 노드의 개수가 N 개이면 노드들의 번호는 1~N 이어야 한다. Floyd-Warshall 동작 방식 i~j 까지 가는데 최단 길이를 찾는 다고 가정해보자. k 라는 노드를 거쳐 갈수도 안 거쳐 갈 수도 있다. Floyd-Warshall 구현하기 위한 필요한 값들 d k [i,j]: i~j 까지의 거리 값이다 1~K 까지 속한 노드들만 거쳐간다. - 즉 K+1 은 지날수 없다. d k [i,j] 를 구하는 공식은 다음과 같다. - d k [i,j] = min(d k-1 [i,j], d k-1 [i,k]+d k-1 [k,j]) - 당황하지 말자 아래에서 설명하려 한다. .. 2021. 10. 1. [MSA] Service Mesh Service Mesh MSA 를 적용후 시스템이 커지고 마이크로서비스의 인스턴스 수가 증가 할수 밖에 없다 중가되면 뭐가 문제 일까? - 런타임 복잡성 문제가 발생한다. 보안, 로드 밸런싱, 모니터링 등 통신을 하면서 발생되는 관심사들을 내부에서 안정적으로 다루기 위한 방법이 필요하다 이렇게 전체 서비스를 관리하기 위한 Outer Architecture 를 Service Mesh 라고 한다. Service Mesh 의 주요 기능들 Configuration Management - 설정이변경 되어도 서비스의 재빌드와 재부팅 없이 반영되어야 한다. Service Discovery - API Gateway 가 서비스를 검색하는 매커니즘 API Gateway - API 서버 앞단에서 API 엔드포인트 단일화 및.. 2021. 9. 30. [교육이수] 자바 ORM 표준 JPA 프로그래밍 - 기본편 자바 ORM 표준 JPA 프로그래밍 - 기본편 이수 교육시간은 16시간 이지만 하나하나 내용을 블로그에 공부하면서 정리 했기 때문에 시간이 꽤 걸렸다 이제 JPA 기본은 할 수 있다고 말할수 있을것 같다. 쉽지 않았다. 내용은 다음과 같다. JPA 소개 JPA 시작 영속성 컨텍스트 엔티티매핑 연관관계 매핑 기초 다양한연관관계 매핑 고급매핑 프록시와 연관관계 값타입 객체지향 쿼리 언어 기본 객체지향 쿼리 언어 중급 2021. 9. 29. [Algorithm] Shortest Path 3: Dijkstra Dijkstra 다익스트라 알고리즘 역시 최단거리를 찾는 알고리즘이다. Dijkstra 특징 음수가 없다는 전제하에 구현되었다. 노드들 중에서 distance 값이 최소인 노드를 찾고 relax 연산을 수행한다. 벨만포드와 다른점은 벨만포드는 모든 노드를 다익스트라는 최소의 값을 가진 노드에 대해 relax 연산을 한다. 수행단계 1. 시작노드 선택 2. 선택된 노드를 집합 S 에추가 (파랑색) 3. 선택된 노드와 인접한 노드 값 업데이트(빨간색) 4. 선택된 노드들과 인접한 노드중 제일 작은 delta 값을 가진 노드 선택 5, 2~4 번을 반복한다. 모든 노드가 집합 S 에 추가 되면 종료한다. 구현 코드 package algorithm.dijkstra; import java.util.ArrayLis.. 2021. 9. 29. 이전 1 ··· 46 47 48 49 50 51 52 ··· 95 다음 728x90 반응형