일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- date
- Spring Cloud
- STS
- 자바
- Java
- 스프링
- OAuth
- SpringBoot
- EUREKA
- map
- docker
- map()
- 도커
- JS
- 비동기
- 스프링 클라우드
- 자바스크립트
- 유레카
- leetcode
- Spring
- spring security
- gitlab
- IntelliJ
- 코딩테스트
- JavaScript
- 프로그래머스
- GIT
- jQuery
- spring boot
- 스프링부트
- Today
- Total
목록DEV/JAVA (10)
RATSENO
List asisList = new ArrayList(); asisList.add(new Item(1L,"아이템1")); asisList.add(new Item(2L,"아이템2")); asisList.add(new Item(3L,"아이템3")); List tobeList = new ArrayList(); tobeList.add(new Item(1L,"아이템1")); tobeList.add(new Item(2L,"아이템2입니다."));//이름 변경 tobeList.add(new Item(3L,"아이템3입니다."));//이름 변경 tobeList.forEach(item1 -> { asisList.stream() .filter(item2-> item2.getId()==item1.getId()) .map(tem..
List asisList = new ArrayList(); asisList.add(new Item(1L,"아이템1")); asisList.add(new Item(2L,"아이템2")); asisList.add(new Item(5L,"아이템5")); List tobeList = new ArrayList(); tobeList.add(new Item(1L,"아이템1")); tobeList.add(new Item(2L,"아이템2")); tobeList.add(new Item(3L,"아이템3")); tobeList.add(new Item(4L,"아이템4")); //아이템3과, 아이템4과 나와야함 List addedItemList = new ArrayList(tobeList); addedItemList.removeI..
ratseno.tistory.com/100 CompletableFuture -1 CompletableFuture를 간단하게 정리하기 전에, 속성으로 동기, 비동기에 대해서 정리하겠습니다. 저도 이해하기 편하도록 식당을 예를 들어 설명해보겠습니다. 동기 : 식당에 갔습니다. 음식을 점원 ratseno.tistory.com 이전 포스팅에 이어서, 논블로킹 방식으로 사용하기 위한 콜백 방식에 대해서 정리해보겠습니다. 이전까지는 비동기로 호출하였지만, get() 또는 join()을 호출함으로써 응답 값을 받을 때까지 블로킹이 되었습니다. 하지만 이러한 동작은 저희가 원하는 모습이 아닙니다. 흐름을 방해 받고 싶지 않습니다. 그래서 저희는 응답값이 리턴되면, 어떠한 행위를 하도록 정의할 것입니다. 이러한 것을 콜..
어노테이션만 붙이면 자동으로 getter, setter, 생성자 등등 여러 가지를 생성해주는 Lombok을 자주 사용합니다. IDE에서 자동생성으로 작성하는 경우도 있지만, 개발 편의성을 위해 Lombok을 쓰는 편입니다. 속성 값으로 boolean을 사용하며 네이밍을 is"XXXX" 로 사용할 경우 IDE에서 생성되는 getter, setter의 모습 Lombok을 이용하여 생성되는 getter, setter의 모습이 다릅니다. 이러한 경우 때문에, 간단하게 자주 사용되는 Mybatis(마이바티스)에서 해당 속성 값을 찾을 때 문제가 발생하곤 합니다. boolean - IDE 자동생성 public class Member { private boolean isNew; public boolean isNew(..
CompletableFuture를 간단하게 정리하기 전에, 속성으로 동기, 비동기에 대해서 정리하겠습니다. 저도 이해하기 편하도록 식당을 예를 들어 설명해보겠습니다. 동기 : 식당에 갔습니다. 음식을 점원분께 주문하고 저는 음식이 나오면 제가 직접 세팅을 해야 되기 때문에 나올 때까지 기다립니다. 아무것도 하지않고 비동기 : 식당에 갔습니다. 음식을 점원분께 주문하고 식탁 위에 세팅을 해달라고 미리 말씀드려놨습니다.(callback) 음식이 나올 때까지 저는 기다리지 않고 다른 일 할 수 있었습니다. 이어서 블로킹, 논블로킹도 정리해보겠습니다. 음식을 가져다주시는 점원분의 입장에서 보시면 편합니다. [동기, 비동기] + 블로킹 : 점원분은 제가 주문을 한 순간, 음식이 다 나올 때까지 저를 붙잡고 아무것..
TreeSet은 이진 트리(binary tree)를 기반으로한 Set 컬렉션 입니다. 하나의 노드는 노드값인 value와 왼쪽과 오른쪽 자식노드를 참조하기 위한 두 개의 변수로 구성됩니다. TreeSet에 객체를 저장하면 자동으로 정렬되는데 부모값과 비교해서 낮은 것은 왼쪽 자식노드, 높은 것은 오른쪽 자식노드에 저장합니다. TreeSet을 생성하기 위해서는 저장할 객체 타입을 파라미터로 표기하고 기본 생성자를 호출하면 됩니다. TreeSet treeSet = new TreeSet(); String 객체를 저장하는 TreeSet은 다음과 같이 생성할 수 있습니다. TreeSet treeSet = new TreeSet(); Set 인터페이스 타입 변수에 대입해도 되지만 TreeSet 클래스 타입으로 대입한..
HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. HashMap의 키로 사용할 객체는 hashCode()와 equals() 메서드를 재정의해서 동등 객체가 될 조건을 정해야 합니다. hash값이란? hash는 '으깨다'라는 뜻으로, Hash는 Hash Table을 이용하여 데이터를 저장한다. 각 객체가 다른 코드값을 int로 생성해 인덱스로 사용하는데 이 알고리즘을 구현한 메소드를 Hash Method라고 하며 Hash Method에 의해 반환된 데이터 고유의 숫자 값을 Hash Code 라고 한다. 자바의 모든 클래스가 상속하고 있는 Object에는 hashCode()라는 메소드가 있다. (객체의 주소값같은 데이터라고 생각하자) 그래서 문자열의 hashCode() 메소드는 같은 ..
Map 컬렉션은 키(key) 와 값(value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있습니다. 여기서의 키와 값은 모두 객체입니다. 키는 중복 저장될 수 없지만 값은 중복 저장될 수 있습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다. Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 등이 있습니다. 다음은 Map 컬렉션에서 공통적으로 사용 가능한 Map 인터페이스의 메소드들입니다. 키로 객체들을 관리하기 때문에 키를 매개값으로 갖는 메소드가 많습니다. 기능 메소드 설명 객체 추가 V put(K key, V value) 주어진 키와 값을 추가, 저장되면 값을 리턴 객..
인터페이스(interface)란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 하지만 인터페이스(in..
추상 메서드(abstract method) 추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 이러한 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않습니다. 바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것입니다. abstract 반환타입 메소드이름(); 추상 클래스(abstract class) 추상 클래스는 0개 이상의 추상 메소드(아직 구현되지 않은 메소드) 를 가지고, 일반 메소드, 일반 변수 또한 가질 수 있습니다. 이러한 추상 클래스..