람다식(Lambda Expression) 함수를 간단한 '식(expression)'으로 표한하는 방법 익명함수(이름이 없는 함수, anonymous function) 람다식은 익명함수가 아니라 익명 객체 이다. 예시 //Object obj = (a, b) -> a > b ? a: b; //람다식. 익명객체 Object obj = new Object() { int max(int a, int b){ return a > b ? a : b; } }; 위의 두 가지 코드는 같은 방식이다. 함수와 메서드의 차이 근본적으로는 동일. 함수는 일반적인 용어, 메서드는 객체지향개념 용어 함수는 클래스에 독립적, 메서드는 클래스에 종속적 함수형 인터페이스 함수형 인터페이스 : 단 하나의 추상 메서드만 선언된 인터페이스 @F..
AOP 애노테이션을 사용하기 위해서는 pom.xml에 먼저 의조성을 설정해줘야 한다. org.springframework.boot spring-boot-starter-aop | 애노테이션 개반의 스프링AOP 적용 방법 package com.kyhslam.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @Component public class AppRunner..
AOP 특징 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @Component public class AppRunner implements ApplicationRunner { @Autowired EventService eventService; @Override public void run(ApplicationArguments args) throws Exception {..
주로 사용하는 건 호스트형 하이퍼바이저 이다. 하이퍼바이저 - 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. - 하나 이상의 가상머신을 실행하는 컴퓨터가 "호스트(Host")가 되고 각 가상머신들은 "게스트(Guest)가 된다. - 하이퍼바이저는 게스트 운영체제에서 가상 운영 플랫폼을 제공하면서 게스트 운영체제를 관리한다. - 호스트 시스템에서 다수의 게스트OS를 구동할 수 있게 하는 소프트웨어 - 하드웨어를 가상화하면서 하드웨어와 각 VM을 모니터링하는 중간관리자이다. 도커와 기존 가상화와의 차이 VM과 비교했을 때 컨테이너는 하이퍼바이저와 게스트OS가 필요하지 않으므로 더 가볍다 어플리케이션을 실행할 때는 컨테이너 방식에서는 호스트OS위에 어플리케이션의 실행 패키지..
하나의 정점에서 다른 모든 정점들의 경로를 구하는 알고리즘이다. 간선들은 모두 양의 간선들을 가져야 한다. Dijkstra의 알고리즘에서는 시작 정점에서 집합S에 있는 정점만을 겨처서 다른 정점으로 가는 최단 거리를 기록하는 배열이 있어야 하는데 이 배열을 우선순위 큐로 구현하여 해당 큐에 들어간 Node중에 가중치가 젤 작은 정점을 가져오도록 구현해야 한다. 시작 정점을 0으로 잡고, 각 지점까지의 거리를 표시한다. 여기서 각 정점까지의 정보와 거리를 우선순위 큐에 넣는다. 그리고 우선순위 큐에서 가장 짧은 거리인 4정점까지의 거리인 3이므로 4정점에서 시작을 한다. 나는 해당 배열을 우선순위 큐로 구현하였다. 우선수위 큐 구현(가장 작은 값 순서로) package org.kyhslam.cps.sect..
문제 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 참고 : m.blog.naver.com/PostView.nhn?blogId=tlstjd436&logNo=221568959948&proxyReferer=https:%2F%2Fwww.google.com%2F 백준(BOJ) 1182 - 부분수열의 합 (부분집합 구하기) //[java]- 재귀 부분수열의 합문제N개의 정수로 이루어진 수열이 있을 때, 길이가 양수인..
| 스프링 EL 이란 ? JSP의 EL 과 비슷하다 객체 그래프를 조회하고 조작하는 기능을 제공 Unified EL과 비슷하지만, 메소드 호출을 지원하며 문자열 템플릿 기능도 제공한다 OGNL, JBOSS EL 등 자바에서 사용할 수 있는 EL이 있지만 SpEL은 모든 스프링 프로젝트 전반에 걸쳐 상요할 EL로 만들었다. 스프링 3.0부터 지원 Spel 구성 ExpressionParser parser = new SpelExpressionParser() StandardEvaluationContext context = new StandardEvaluationContext(bean) Expression expression = parser.parseExpression("SpEL 표현식") String value..
| Converter S타입을 T타입으로 변환할 수 있는 매우 일반적인 변환기 상태정볻없음 == Stateless == 쓰레드세이프 ConverterRegistry에 등록해서 사용 package org.kyhslam; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; public class EventConverter { @Component public static class StringToEventConverter implements Converter { @Override public Event convert(String source ) { return new..
docker ps : 실행중인 프로세스 확인 docker ps COMTAINER ID : 컨테이너 고유 아이디 해쉬값 IMAGE : 컨테이너 생성 시 사용한 도커 이미지 COMMAND : 시작시 실행될 명령어. 대부분 이미지에 내장되어 있으므로 별도 설정이 필요X CREATED : 생성된 시간 STATUS : 컨테이너의 상태, 실행중 Up, 종료 Exited, 일시정지 Pause Port : 컨테이너가 개방한 포트와 호스트에 연결된 포트이다. 특별한 설정 하지 않은 경우 출력되지 않는다. NAMES 컨테이너 고유한 이름 "--name" 옵션으로 이름을 설정하지 않으면 도커 엔진이 임의로 형용사와 명사를 조합해 설정한다 id와 마찬가지로 중복이 안되고 docker rename으로 변경할 수 있다. dock..
Student 클래스의 age 나이를 기준으로 나이가 많은, 적은 순으로 우선순위 큐를 사용하는 방법 나이가 많은 순 import java.util.PriorityQueue; // 우선순위 큐 // 객체의 특정 값을 기준으로 정렬 public class priorityQueu_Test { public static class Student implements Comparable { String name; int age; public Student(String name, int age){ this.name = name; this.age = age; } @Override public int compareTo(Student o) { return this.age
유니온 파인드 (Union-Find) 대표적 그래프 알고리즘으로 '합집합 찾기'라는 의미 상호 배타적 집합(Disjoint-set)이라고도 한다 여러 노드가 존재할 때, 두 개의 노드를 선택해서 현재 두 노드가 같은 그래프에 속하는지 판별하는 알고리즘 Find : x가 어떤 집합에 포함되는지 찾는 연산 Union : x와 y가 포함되어 있는 집합을 합치는 연산 그림으로 이해하기 노드의 개수만큼 아래와 같이 모든 값이 자기 자신을 가리키도록 한다. i : 노드번호, P[i] : 부모노드 번호 를 의미하며, 즉 자기자신이 어떤 부모에 포함되어 있는지를 의미한다 간단히 Parent[i] = i 로 표현한다 Union(1,2) 를 하면 2번째 인덱스에 "1" 값이 들어간다. 부모를 합칠 때는 일반적으로 더 작은..
우선순위 큐(Priority Queue) 일반적인 큐는 제일 먼저 들어간 데이터가 가장 먼저 나오게 되는 자료구조이다. 이와 달리 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 일정한 규칙에 따라 우선순위를 선정하고, 우선순위가 가장 높은 데이터가 가장 먼저 나오게 된다. 최대힙 PriorityQueue의 생성자에 Collections.reverseOrder() 을 주어야 한다. import java.util.*; // 최대힙 (priority_queue : 우선순위 큐) public class cp73 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); PriorityQueue queue = ..