반응형

전체 글 226

[Java] Lambda 개념 및 사용

1). 람다함수란? 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어다. 2). 람다의 특징 두 개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. - 커링 (Curring) 3). 익명함수? 함수의 이름이 없는 함수. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있다. 이 일급 객체란? : 일반적으로 다른 객체들에 적용 가능한 연산을 모두 지원하는 객체를 가르킨다. 함수를 값으로 사용 할 수도 있으며 파라미터로 전달 및 변수에 대입과 같은 연산들이 가능하다. 4). 람다의 장단점 장점 1. 코드의 간결성 - 람다를 사용하면 불필요한 반복문의 삭제가 가능하며..

[Java-Algorithm] 백준 15654 N과 M(5) 풀이

1). 문제 : https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2). 풀이 : 계속 같은 수열 로직의 반복이라 코드를 복사해서 사용하고있다... 이번에는 지난번 로직과 같다고 본다.. 우선 방문여부로 중복체크하고, 입력받은 값을 Arrays.sort(); 로 정렬하여 사전순으로 두었다. static StringBuilder sb = new StringBuilder(); public static void main(String[] arg..

[Java-Algorithm] 백준 15652 N과 M(4) 풀이

1). 문제 : https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2). 풀이 : 이어서 수열이 숫자 순서대로만 나와야 될때의 문제이다. 지난 번과 똑같이 이전 값을 기준으로 비교하면 된다..! static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRe..

[Java-Algorithm] 백준 15651 N과 M (3) 풀이

1). 문제 : https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2). 풀이 : 기존에 N과 M 1,2를 풀었다면 쉽게 풀수있을것이다. 기존에는 중복되지 않는 숫자의 조합으로 순열을 만드는것이었는데, 이번에는 숫자의 중복이 가능하다. 그렇다면 visited의 역할이 사라진다고 볼수있는것!!!ㅎㅎ 코드를 보자 일단 기존 코드에서 visited만 없앴는데 시간초과가 떠서, StringBuilder로 변경하고 int[] arr에 값을 넣어주는 fo..

[Java-Algorithm] 백준 15650 N과 M (2) 풀이

1). 문제 : https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2). 풀이 : N과 M (1) 에서 수열이 순서대로 인 것들만 출력하는 문제. 이전 숫자와 다음숫자의 비교부분만 추가해주면 된다. 순열만드는 로직만 알고있다면 간단하게 해결할수있다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputSt..

[Java-Algorithm] 백준 15649 N과 M(1) 풀이

1). 문제 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2). 풀이 : 왜 풀어도 풀어도 빠르게 안나오는지 ㅠ 휴 사전식으로 정렬된 순서가 있는 조합 즉 순열을 구하는문제이다. 기본적으로 필요한것 1. 숫자가 담겨있는 배열 = arr[] 2. 수열이 만들어질때 담아놓을 빈 배열 = output[] 3. 숫자를 사용했는지 체크여부를 위한 배열 = visited[] 이 세가지를 가지고 지지고 볶으면 된다!. 푸는 방법 1). 먼저 생각해..

[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
반응형