| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 백준 연결요소 자바
- spring mongodb
- kotiln functional interface
- kotiln const
- 자바 1676
- 자바 백준 팩토리얼 개수
- Claude Intelij 연결
- kotiln const val
- java 1509
- spring mongoTemplate
- go
- rabbitmq 싱글톤
- mongodb lookup
- nodejs rabbitmq
- java 백준 1509
- java 1238
- java 팩토리얼 개수
- 익명 객체 @transactional
- 안정해시
- ipfs singletone
- Java Call By Refernce
- javav 1676
- 백준 1504 java
- spring mongoTemplate switch
- 백준 특정한 최단 경로
- spring mongodb switch
- Spring ipfs
- ipfs bean
- java 파티
- 백준 2252 줄세우기
- Today
- Total
목록분류 전체보기 (199)
공부 흔적남기기
인터넷의 발전과 휴대기기의 보편화에 따라 많은 사람들이 특정 서비스를 동시에 이용하기도 하고 특정 이벤트에 의해서 트래픽이 순간적으로 몰리는 현상이 잦아진다. 즉 DAU가 증가하고 QPS가 높아짐에 따라 시스템을 좀 더 안정적이고 확장가능하며 유지보수에 용이하고 가용성이 높을 필요가 생겼다. 확장성을 높임으로서 더 많은 트래픽을 감당할 수 있고 손쉬운 유지보수를 통해 빠르게 버그를 수정하거나 기능을 추가할 수 있다. 또한 가용성을 높임으로서 사용자에게 더 나은 경험을 제공할 수 있다. 이러한 요구사항을 만족하기 위해 MSA라는 아키텍쳐가 등장했고 Spring에서 MSA에 구조에 맞게 빠르게 개발할 수 있는 다양한 라이브러리를 제공한다.간단한 Ecommerce API를 만들어 보았고 사용한 Cloud li..
Spring Cloud Bus를 위해서 cloud bus amp를 추가했는데 해당 라이브러리가implementation("org.springframework.cloud:spring-cloud-starter-bus-amqp")function context 라이브러리를 가져온다."org.springframework.cloud:spring-cloud-function-context해당 라이브러리에 kotiln 버전을 제대로 인식하지 못하는 버그가 있었다.https://github.com/spring-cloud/spring-cloud-function/issues/1218 Kotlin compilation error with spring-cloud-function 4.2.0- · Issue #1218 · sprin..
분명히 같은 키를 사용하고 똑같은 알고리즘을 통해서 암호화 복호화를 하는데 에러가 나서 삽질을 했다.. JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted. 수정전 코드 토큰 발급 val token = Jwts.builder() .subject(user.userId) .expiration(Date(System.currentTimeMillis() + jwtProperties.expire)) .signWith(key, Jwts.SIG.HS256) ..
안정해시안정해시는 샤드와 같이 분산서버에 골고루 트래픽이나 데이터를 분산할때 분산이 안정적이로 이루어지게 하는 기법이다. 이때 주로 사용되는게 해시링이다. 해시링은 하나의 해시값들을 하나점으로 두고 각 점들을 통해 만든 링이라고 보면된다. 클라이언트에서 요청받은 데이터를 해싱해서 해시링에 올리고 가장 가까운 분산 서버에 저장하는 방식이다. 이때 왜 해시링을 사용하는지 궁금할 것이다. 그냥 분산서버의 개수 N으로 모듈러 연산을 하면되는거 아닌가? 모듈러 연산을 하게되면 분산서버의 개수 N에 영향을 받게된다. 분산서버는 언제든지 늘어나거나 줄을 수도 있고 특정 장애에 의해서 줄어들 수도 있다. 이때마다 모듈러의 값이 변하기 때문에 캐시히트와 캐시미스에대해 관리가 불가능해진다. 해시링을 사용하게되면 최대 해..
1. MSA 공부 (Rest vs Grpc 비교, Gateway Tomcat vs Netty 비교, SAGA Pattern, Concurrent Issue) (1월초 진행중)2. DDD 공부3. 객체지향 다시 복습4. 모던인 자바 공부(2월 중순 시작)5. 대용량 처리 공부 (부록 읽어보기...) (진행중)(안정해시, CAP)2월 중순 마무리 완료6. AWS 자격증 (여름방학으로 잠시.. )7. Netty 공부 (Chatting Server)8. Redis & Kafka 공부 (진행중 아주 천천히)( Redis Clustering Redis Hash Slot, Sentinel, Lua Script > Transaction, Kafka Connect, KAFKA Partition, Partition Rep..
최단 거리 문제이다. 최단 거리 문제는 보통 BFS를 통해서 구할 수 있는데 BFS를 이용하면 DFS보다 그래프의level 단위로 검사하기 때문에 일반적으로 더 빠르고 안정적으로 최단거리를 구할 수 있다. 이떄 가중치가 존재한다면 다익스트라, 벨만포드, 플로이드중 하나를 사용해야하는데 이 문제는 시작점이 3개로 고정이고, 음수 사이클이 존재하지 않기 때문에 다익스트라를 통해서 구현하면 된다. 문제 설명 1에서 N까지 움직이는데 경유점 c1, c2를 반드시 거쳐서 도달해야한다그럼 총 2가지 경우의 수가 나올 것이다 1 -> c1 -> c2 -> N1 -> c2 -> c1 -> N 1에서 시작하는 최단거리 c1에서 시작하는 최단거리 c2 에서 시작하는 최단 거리를 구한후 2가지 경우에 대해 MAX 값을 처리..
객체를 선언하고 복사하는 과정에서 의도하지 않게 데이터가 변경되어서 오류가 발생할 수 있습니다. kotiln의 복사 방식을 살펴보고 실수하지 않게 잘 기억해둡시다.얕은 복사흔히 우리가 사용하는게 얕은 복사입니다.주로 = 을 이용하며 객체의 주소값을 복사하기 때문에 복사본을 교체하면 원본도 함께 변경되게 됩니다.data class Data( var data: String, val dataset: MutableList = mutableListOf())fun main() { val data = Data("basic Data") val dataShallowCopy = data dataShallowCopy.data = "changed Data" println("basic data ..
위상정렬이란 정해진 순서가 있고 해당 순서대로 정렬한 것을 의미한다.정해진 순서란 작업들 간의 관계이다. 즉 의존하고 있는 작업이 반드시 의존 되고 있는 작업보다 뒤에와야 한다.예를들어 A가 B를 의존하고 있다고 가정하면 B A 순서여야한다. 1학년 때 알고리즘 기초를 수강해야 2학년때 알고리즘 심화를 들을 수 있는 것과 같다. 위상정렬은 인접행렬과 인접리스트로 구현할 수 있는데 이때 인접행렬은 시간복잡도가 O(V^2) 이고 공간 복잡도도 마찬가지이다 하지만 인접리스트는 시간복잡도가 O(V+E) 이며 공간 복잡도는 O(V+E)이다 인접 행렬을 사용하여 메모리가 초과가 난 코드 32000 * 32000 *4 거의 4000MB를 사용하게 되어 메모리 초과가 발생한다.시간 복잡도도 1초를 넘길 수 있다.imp..
다음과 같이 구성되어있다고 가정하자익명객체를 만들고 익명객체의 함수에는 @Transactional이 붙어있으며 해당 함수는 Transcation이 필요한 함수를 호출한다.@FunctionalInterfaceinterface TempHandleInterface { fun handle(something: String): String} import jakarta.annotation.PostConstructimport org.springframework.stereotype.Serviceimport org.springframework.transaction.annotation.Transactionalimport java.util.UUID@Serviceclass TempClass( private val t..
해당 문제는 상호배타적 집합의 아주 좋은 예시이다DFS BFS 등 그래프 탐색으로도 풀 수 있지만 하나의 정적 배열을 통해 같은 노드들 끼리 연결하면 더 쉽게 해결할 수 있다. import java.io.*;import java.util.HashSet;public class 연결요소의개수11724 { static int[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWr..