List List 생성 List list = new ArrayList(); List에 Data add list.add("str1"); list.add("str2"); list.add("str3"); ... List의 0번째부터 순차적으로 add 된다. List의 Data get list.get(0); list의 0번째에 있는 str1을 가져온다 List의 Data 확인 list.contains("str1"); list의 값이 있으면 true, 없으면 false를 출력. true 출력 List의 Data remove remove("str"); remove(index); list.remove("str2"); list.remove(0); list의 data 삭제(data값이나, index로 삭제)
Java Collection의 모든 object 출력 1. Map Map map = new HashMap(); // 1. for (String key : map.keySet()) { String value = map.get(key); System.out.println("key : " + key + ", " + "value : " + value); } // 2. map.forEach((k, v) -> { System.out.println("key : " + k + ", " + "value : " + v); }); 2. Set Set set = new HashSet(); // 1. for (String str : set) { System.out.println("6. " + "set : " + set); } ..
Collection List 특징 index 순서로 저장되며, data 중복을 허용 data를 저장하면, 해당 data의 index가 부여되고, index를 통해 data 조회 및 삭제가 가능 ArrayList 생성 방법 : List list = new ArrayList(); List 인터페이스를 구현한 클래스. 비동기이기때문에 여러스레드가 동시에 동작할 수 있다 추가/삭제의 성능이 좋지 않고, 검색할 때 성능이 좋다 데이터가 들어올 때마다 자동으로 용랑이 늘어난다. LinkedList 생성 방법 : List list = new LinkedList(); 사용 방법은 ArrayList와 동일 비동기로 동작하므로 여러 스레드가 동시에 동작할 수 있다 추가/삭제의 성능이 빠르다 처음 노드부터 검색해야하기 때문..
gRPC gRPC는 google에서 만든 RPC 시스템이다. RPC란? gRPC를 알기 전에 RPC부터 알아야 한다. RPC(Remote Procedure Call) 은 프로세스간 통신 기법이다. 다양한 환경, 플랫폼에 제약이 없어서 분산시스템 기법에 좋다. 별도의 원격제어 없이 프로세스간 함수나 프로시저를 호출할 수 있다 IDL(Interface Definition Language)을 사용하여 서버의 호출 규약을 정의 ProtoBuf 서비스와 메세지를 정의하기위해 사용한다. google에서 개발한, 데이터 직렬화 오픈소스(gRPC의 IDL로 사용함) gRPC의 장점 높은 생산성, 유지보수가 좋음 환경, 플랫폼에 제약이 없다. HTTP/2 기반 통신으로, server/client가 서로 데이터를 스트리밍..
Spring boot Redis Redis channel Subscribe(lettuce 사용) 1.pom.xml 파일에 redis관련 dependency 추가 org.springframework.boot spring-boot-starter-data-redis 2.외부 redis-server를 사용하는 경우 application.yml 파일 설정 내용(Test를 위해 redis 관련 setting값만 설정) spring: redis: host: localhost port: 6379 3.redisConfiguration class에 connectionFactory를 만들고, redis사용에 필요한 bean을 생성한다. @Configuration @EnableRedisRepositories @Slf4j pu..
JPA Auditing이란? Database table에 생성, 수정일자등의 값을 자동으로 넣어주는 기능 @CreatedDate Entity가 생성되어 저장될 때의 시간 @LastModifiedDate 조회한 Entity의 값을 변경할 때의 시간 사용 example @EnableJpaAuditing @SpringBootApplication public class testApplication { public static void main(String[] args) { SpringApplication.run(testApplication .class, args); } ... } 위와 같이 EnableJpaAuditing 어노테이션을 추가해주면 CreatedDate, LastModifiedDate등의 값을 받아..
Spring IoC, DI IoC(Inversion of Control) Container BeanFactory IoC를 담당하는 핵심 Container Bean들의 의존성, lifeCycle을 관리 ApplicationContext BeanFactory 인터페이스를 상속 BeanFactory에서 제공하는 기능 외에, AOP, Message처리, 이벤트처리 등의 기능 제공 Bean을 생성할 때, 모든 Bean을 singleton으로 생성하여 관리한다 Bean 등록 방법 Component Scan @Component, @Repository, @Service, @Controller, @Configuration 등등의 Annotation들이 있다 Java 설정파일로 등록 설정파일을 이용하여 Bean을 등록하면..
Ubuntu 18.04 network 설정 NetPlan 설정파일을 이용한 network 설정 /etc/netplan 경로로 들어가서, 01-network-manager-all.yaml을 열면 아래와 같은 내용이 있다.# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager renderer를 NetworkManager로 사용하겠다는 의미 NetworkManager의 GUI를 이용하여 네트워크설정을 함 DHCP 설정network: version: 2 renderer: networkd ethernets: enp6s0: dhcp4: yes dhcp6: yes 01-network-manage..
싱글톤(Singleton) pattern 인스턴스가 1개만 생성되야 하는 경우에 사용되는 패턴. 하나의 인스턴스를 메모리에 등록해서 여러 스레드가 동시에 해당 인스턴스를 공유할수 있다.자바의 싱글톤 패턴 생성자를 private으로 정의해서 외부 클래스로부터 인스턴스 생성을 차단. 싱글톤 클래스 내부에, private static객체 생성 public static 메서드를 통해, 외부에서 싱글톤인스턴스에 접근할수 있도록 함 Eager Initialization 클래스가 호출될 때 인스턴스를 생성. 인스턴스를 사용하지않아도 인스턴스를 생성하기때문에 효율이 낮음. ex) public class Singleton { private static final Singleton instance = new Singlet..