반응형

2021/07 20

[Vert.x] Vert.x의 EventBus 사용하기

Vert.x는 기본적으로 Single Thread이지만 내부적으로는 Multi Thread로 구동된다. Verticle 간에는 메세지만 주고 받을 수 있고, 메모리는 공유하지 않아 다른 Verticle에 접근할 수 없다고 보면 된다. 그래서 Verticle 1에서 Verticle 2의 기능을 쓰고싶다면, Vert.x 가 지원하는 EventBus를 사용하여 원하는 Verticle에 접근할 수 있다 필자는 Vert.x를 사용하여 Socket Client를 구현해야 했는데, Deploy되는 Verticle의 숫자를 늘리지 않고, handler Verticle을 별도로 만들어 handler Verticle을 Worker Verticle로 만들었다. Client Connection은 하난데, 내부적으로 요청이 들..

[Vert.x] Vertx Websocket Client 만들기

필자는 타 기업 연동시 필요한 데몬을 만들기위해 사용하였다. vertx로 Websocket 서버를 만들수 있지만 오늘은 websocket Client 부분만 기록하려고 한다. 아래 코드 중 연결 메서드 부분만 참고하면 될것같다. 추가적으로 workerVerticle로 websocket을 사용해도 되는지 더 찾아봐야하니.. 일단 일반 Verticle로 사용하자..! 추가적인 내용은 조금더 알아보고...! 수정하려고한다. @Configuration @PropertySource("classpath:config/${spring.profiles.active}.redis.properties") //설정값들을 읽어오려고 사용 @Verticle(instance = 1, isWorker = true, poolSize =..

[JPA] 관계 매핑 기초 정리

연관관계 매핑을 정리해두고, JPA에서는 어떻게 사용하는지 정리해 두려고 한다. 방향 : 회원/팀 기준 단방향 : 회원 → 팀 or 팀 → 회원 둘 중 한 쪽만 다른쪽을 참조하는 관계 양방향 : 회원 → 팀, 팀 → 회원 둘이 서로를 참조하는 관계 다중성 1:1 (일대일) 1:N (일대다 혹은 다대일) N:M (다대다) 연관관계의 주인 : 양방향 연관관계를 만들 때 연관 관계의 주인을 정해야 한다. => 누가 주인인지 꼭 필요. 단방향 : 회원은 하나의 팀에만 소속될수 있다. => 회원과 팀은 다대일 관계 쿼리를 한번 확인해보자. 회원 중심 조회 SELECT * FROM MEMBER M INNER JOIN TEAM T ON M.TEAM_ID = T.TEAM_ID 팀 중심 조회 SELECT * FROM T..

JPA

[JPA] SpringBoot + JPA @EnableJpaAuditing 이란?

보통 Entity를 기획할때 모든 엔티티에 들어가는 공통 컬럼들이 있다. 예를들어 등록일자, 수정일자 등이 해당되는데, 이때 사용할 수 있는 방법으로 공통Entity를 뽑아내서 사용할때 @EnableJpaAuditing을 사용한다. 1). 공통Entity를 작성하고, 어노테이션을 달아준다. @Getter @MappedSuperclass //공통매핑 정보만 담을 때 사용. Entity가 아닌 공통 컬럼정보만 제공한다. 보통 ID, 등록일, 수정일 정도 @EntityListeners(AuditingEntityListener.class)//JPA에게 해당 Entity는 Auditing기능을 사용함을 알려준다. public abstract class CommonEntity { @CreatedDate @Colum..

JPA

[JPA] SpringBoot Jpa 에서 Querydsl 세팅시 Qclass 못찾는 경우

Spring boot와 JPA를 처음 공부하고자 프로젝트를 파서... 간단한것들을 만들어보던중, Querydsl이라는것을 알게되어 설정잡아 보려고 했다. Qclass들도 잘 만들어지고,,, 그런데 사용하는 부분에서 Qclass를 찾지 못하여 오류 발생..!!! 에러 코드 : java.lang.ClassNotFoundException:com.won..... entity.QEntity gradle이 잘못된건지.. 세팅을 바꿔보기도 하고,,, 뭔지 잘모르겠었는데, 빌드패스를 잡아줬던게 생각이났다. => Qclass가 생성된 경로를 add Folder해서 경로를 추가해줬었다. 그래서 빌드패스쪽 output folder의 경로가 querydsl 어쩌고로 잡혀있는걸 보고 음... 이게 뭐지? 하고 resources..

JPA

[Java-Algorithm] 백준 3085 사탕게임 풀이

문제 : https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 풀이 : 브루트 포스 문제이다. 결국 모든 경우의 수를 다 체크해야된다는건데.... for문의 집합체인것 같다.. 경우의수를 모두 체크해주면된다. 1). 오른쪽 왼쪽을 바꿨을때 => 가로 2). 위아래를 바꿨을때 => 세로 대각선은 제외하고 두가지만 체크해서 먹을 수 있는 갯수를 확인한다. static int result; static char[][] arr; public static void main(String[] args) throws NumberFormatException, IOException {..

[Java-Algorithm] 백준 17298 오큰수 풀이

문제 : https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 : 처음에 보자마자 아 for문 많이 돌려서 찾으면 금방하겠다 였다... 아직도 문제푸는데에 좋은 방법을 생각해 내지 못하나보다 했다~ ㅜ 문제 밑에 보면 어떤 문제인지 힌트 처럼 볼수 있는것이 있는데, 스택이 적혀있던것..! 어떻게 스택을 사용해서 풀수 있나 엄청 고민했다 ... 결국 나온풀이는. 현재 값을 기준으로 전에있던 값들을 비교하여 뒤에서 앞(키포인트)을 비교하는 방법으로 생각했다. 그..

[Java-Alogrithm] 백준 17413 단어 뒤집기 2 풀이

문제 : https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 풀이 : 처음엔 어떻게 해야되지 고민했다. 하나하나 스택과 Queue를 같이 이용해서 날려야되나 했는데 오히려 간단하게 풀릴것같아 스택 하나로만 해결했다. 관건은 ""이거로 거꾸로 Flag를 잡아주는것..!!!!! public static void main(String[] args) throws IOException { Scanner sc = new Sca..

[Java-Algorithm] 백준1406 에디터 풀이

문제 : https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 풀이 : 와... 사실 나는 cursor를 따로 만들어 위치를 변경시키면서 진행되는 코드를 짰었다... 다른 사람이 짠 코드에 놀라서 그 코드로 정리해놓으려고 한다. 대단하다 이런생각을...ㅠㅠ Stack을 왼쪽 오른쪽 두가지로 나누어 커서의 위치를 만들어내었다... 이 아이디어로만으로도 코드 구현은 가능하니까..! 여기까지만 설명...! public static void main(Stri..

[Java-Algorithm] 백준 1874 스택 수열 풀이

문제 : https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 : 처음에는 문제 이해가 되지 않았다... 무슨 말인지 ㅎㅎ; 쉽게 말해 Stack에 들어가는 입력정수들은 1씩 증가하고, push와 pop을 통해 1씩 증가하는 값이 담겨있는 Stack을 활용하여 입력받은 값을 만들수 있느냐는 문제였다. 문제 이해만 한다면 쉽게 풀수 있을것 같다. public sta..

반응형