Spring Integration 테스트하기 최근 프로젝트에서 MQTT 연동을 하는 부분을 대대적으로 리팩토링 하게 되었는데 테스트 코드가 붙어있지 않아, 리팩토링의 선행 과제로 실제 MQTT 접속 부분을 제외한 나머지 플로우를 테스트하는 자동화 테스트를 작성하기로 했다. 비지니스 로직에 더하여 Spring Integration을 이용한 연동 셋업이 잘 돼있는지 확인하기 위하여 spring-integration-test 를 활용하였다. 이 글에서는 MQTT + Spring Integration을 활용하여
백준 1717 - 집합의 표현 문제 링크 Disjoint set의 union, find 연산을 이용하는 문제이다. Disjoint set을 표현하는데, 실제 구현할 때는 각 원소의 representative가 누군지 저장하는 parent 배열을 이용한다. 초기에는 각 원소가 자기 자신을 representative로 가지고 있게 parent[x] = x 와 같은 형태로 세팅한다. * \(\{x\}\), \(\{y\}\) 집합을 합치는것은 \(y\)의 representative의 representative을 \(x\)의 representative로 대치하는
2 Party ECDSA 이해와 구현 - 2 2Party ECDSA의 핵심 아이디어는 private key \(d\)를 구성하는 두 요소 \(d_1\), \(d_2\)를 서로 공유하지 않고도 private key \(d\)를 이용한 \(r\)과 \(s\)를 계산하자는 것이다. 이 글에서는 Lindell 2017 의 아이디어를 기반으로 설명한다. 사전지식 - 동형암호 동형암호(Homomorphic Encryption)는 암호화된 상태에서 원문을 알지 못해도
2 Party ECDSA의 이해와 구현 - 1 2 Party ECDSA은 타원곡선 위에서의 디지털 서명을 private key의 공유 없이 두 entity의 참여로 수행할 수 있는 방식이다. private key의 share를 분산 보관하면서 디지털 서명이 필요할 때 key의 복구 없이도 유효한 서명을 만들어낼 수 있는 방식이다. 이 연재에서는 2 Party ECDSA의 개념을 살펴보고 실제 코드로 구현을 하면서 이해를 하고자 한다.
백준 2178 - 미로 탐색 문제링크 BFS하면서 visit array에 boolean값 대신 predecessor처럼 쓰자. 정확히 말하면 predecessor라기보다는 그 노드까지 오기에 걸렸던 최단거리를 저장하면 최단거리를 추적할 수 있다. #include #define N 100 int map[N+1][N+1]; int visited[N+1][N+1]; typedef struct point { int x; int y; } Point; Point q[N*N]; int
백준 1992 - 쿼드트리 문제 링크 쿼드트리를 실제로 구현을 해도 되지만, 굳이 트리를 만들지 않고 컨셉만 가져와서 재귀 함수로 해결할 수 있다. #include int a[64][64] = {0,}; void count(int x1, int y1, int x2, int y2) { int f,x,y; f = 0; for (x=x1; x
백준 1300 - k번째 수 문제 링크 파라메트릭 서치를 사용하는 흥미로운 문제다. 모든 수는 \(i \times j\) 형태이다. 어차피 모든 원소는 1 ~ \(n^2\) 안에 들어온다. 그러니 탐색 범위는 정해져있고, 아무거나 찍은 x가 k번째 수가 되려면, x 밑에 \(i \times j\) 형태로 나오는 수가 몇개 있는지(=c) 세면 된다. 만약 \(c < k\) 라면, x를 더
요가 2021년부터 요가를 하고 있다. 대단하게 하고 있지는 않고, 직업 특성상 매일 오랜 시간 앉아있는 부담을 몸에서 좀 덜어보고자 하는 의도로 시작을 했다. 어릴때에도 몸을 꼬면서(?) 스트레칭 비슷하게 하면 느껴지는 시원함이 좋았던듯 하다. 요가를 시작하니 그 느낌도 다시 드는것 같고 자세가 그래도 꽤 나와주는거 같아 흥미를 붙이기 쉬웠다. 작년부터는 좀 더