Redis에서 키를 관리하는 법자료구조를 가리키는 key를 의미innerkey가 아님키의 자동 생성과 삭제자동 생성키가 존재하지 않을때 아이템을 넣으면 자동으로 빈 자료구조 생성하여 넣음키 작업을 따로 하지 않아도 자동으로 명시한 키 값으로 자료구조 생성대신, 같은 키로 다른 자료구조가 있다면 에러 반환자동 삭제stream을 제외한 모든 자료구조는 모든 아이템이 삭제되면 자동으로 키도 삭제됨키와 관련된 커맨드EXISTS key keynamekeyname에 해당하는 키 있는지 확인존재하면 1, 없으면 0KEYS pattern h*llo저장된 키를 패턴에 맞게 조회하며, 위 예시의 h*llo 의 경우 * 자리에 아무것도 없거나 어떤것이 와도 패턴이 맞는 키를 모두 조회패턴은 글롭패턴을 따른다KEYS모든 키를..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FIaKJ/btsG3NLqC7q/bQR0yrfYtR21uYU3AZEpWk/img.png)
string [”key” → “value”]특징키와 실제 데이터가 1:1 로 연결되는 유일한 자료구조value에 저장 가능한 데이터최대 512MB의 문자열 데이터 저장 가능binary-safe 하기에 JPEG 이미지, 바이트 값, HTTP 응답값 등 또한 저장 가능숫자 또한 저장 가능INCR(1 증가), INCRBY(지정하는 숫자만큼 덧셈 가능)비슷한 원리로 DECR, DECRBY 도 가능숫자를 원자적으로 조작 가능 → 여러 클라이언트가 경쟁 상태를 발생시키지 않음 (중복 처리 없음)기본 사용SET k v → O(1)k 라는 key에 v 라는 value 저장GET k -> O(1)k 라는 key에 해당하는 value 가져옴숫자의 경우INCR k , DECR kINCRBY k 30 , DECRBY k 30..
객체지향과 인지 능력 앨리스 이야기 앨리스의 행동은 상태에 의존적 행동에 의해 상태가 변함 앨리스의 상태가 변하여도 앨리스가 다른 사람이 되는 것은 아님 → 상태와 무관하게 유일한 존재로 식별 가능 객체, 그리고 소프트웨어 나라 객체 상태 행동 식별자 객체란 식별 가능한 개체 또는 사물이다. 객체는 자동차처럼 만질 수 있는 구체적인 사물일 수 있고, 시간처럼 추상적인 개념일 수도 있다. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 소프트웨어 안에서 객체는 저장된 상테와 실행 가능한 코드를 통해 구현된다. 상태 과거의 모든 행동 이력을 설명하지 않고도 행동의 결과를 쉽게 예측하고 설명할 수 있다. 상태와 프로퍼티 객체의 상태를 구성하는 모든 특징을 통틀어 객체의 프로퍼티라고 한..
객체지향과 객체 ↔ 현실 사실, 객체지향의 목표는 실세계를 모방하는 것이 아님 그렇다면? 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다. 하지만 실세계의 모방이라는 설명은 객체지향의 다양한 측면에 대한 이해 및 학습을 돕는다. 협력하는 사람들 - 커피 공화국의 아침 요점 사람들은 서로 협력 관계에 있음 각자의 역할을 가짐 자신이 맡은 바 책임을 다함 요청과 응답으로 구성된 협력 하나의 객체로 모든 것을 처리하기 버거움 → 다른 객체에게 요청한다. → 요청은 연쇄적으로 발생 주어진 책임을 다하고 요청에 대해 무언가를 제공한다. → 요청에 대해 응답한다. → 응답 역시 연쇄적으로 전달됨 요청과 응답을 통한 협력 → 복잡한 문제를 해결할 수 있는 공동체 형성 → 협력의 성공은 특정 역할 맡은 각 ..
자바9의 모듈 시스템은 모듈을 정의하는 문법을 제공한다. 이를 이용해 패키지 모음을 포함하는 모듈을 정의할 수 있다. 자바8에서는 인터페이스를 쉽게 바꿀 수 있도록 디폴트 메서드를 지원한다. 메서드 본문을 클래스 구현이 아니라 인터페이스의 일부로 포함시킨다. 하나의 예시로 List라는 인터페이스에 디폴트 메서드 sort()가 추가되어 List에 바로 sort를 할 수 있게 되었다. 자바8 이전에는 List를 구현하는 모든 클래스가 sort를 구현해야 했지만 자바8이후부터는 디폴트 sort를 구현하지 않아도 된다. 이런 경우 다중상속이 문제가 될 수 있다. 다이아몬드 상속과 같은 경우가 발생할 수 있다는 것이다. 이에 대한 해결책은 나중에 알아보도록 하자. 자바8에서는 Optional 클래스를 제공한다. ..
Apple의 weight를 비교하는 예제에서 :: 는 해당 메소드를 활용하라는 메서드 참조이다. :: 왼쪽에 클래스를, 오른쪽에 활용할 메서드명을 적으면 된다. public class Main { public static void main(String[] args) { List inventory = Arrays.asList( new Apple(80, "green"), new Apple(155, "green"), new Apple(120, "red") ); List heavyApples = inventory.parallelStream().filter((Apple a) -> { return a.getWeight() > 150; }).collect(toList()); } } Apple 클래스에는 color라는..
public class Apple { private Integer weight; public Integer getWeight(){ return weight; } } 이러한 weight를 가지는 Apple이라는 클래스가 있다. public class Main { private static List inventory = new ArrayList(); public static void main(String[] args) { Collections.sort(inventory, new Comparator(){ public int compare(Apple a1, Apple a2){ return a1.getWeight().compareTo(a2.getWeight()); } }); } } Apple 클래스에서 weigh..