직렬화 & 역직렬화
·
Langauge/Java
❐ DescriptionRedis를 사용할 때 데이터를 저장/조회 하는 과정에서 직렬화와 역직렬화는 필수적으로 이루어진다.그래서 오늘은 Java의 직렬화 & 역직렬화 부터 다시 알아보고, 순서대로 SpringBoot, Redis에서직렬화와 역직렬화를 할 수 있는 방법에 대해서 공부하자.     ❐ Java에서 직렬화 & 역직렬화 사용하기우선 자바 직렬화를 사용하기 위해선 아래의 functionalInterface를 사용해야 한다.package org.springframework.core.serializer;@FunctionalInterfacepublic interface Serializer {...} 위 인터페이스를 정의해줘야 하는 이유는 아래의 코드에서 확인할 수 있다.@Overridepublic vo..
Comparable, Stream을 사용하여 뱃지 부여하기
·
Langauge/Java
❒ Description우테코 6기 프리코스를 연습 삼아 해보는 과정에서 작성한 코드를 리펙토링 해봤다.※ Commit link    ❒ 요구 사항 및 로직 분석1. Requirements특정 금액 이상 사용을 하면 뱃지를 부여하는 요구사항이 있었다.해당 요구사항을 충족하기 위해 Comparable, Stream API(sorted, reduce)를 사용해서 기능을 구현했다.NONE : 5000원 미만 ("없음")STAR : 5000원 이상TREE : 10000원 이상SANTA : 20000원 이상 2. LogicBadge를 부여하는 역할은 Badge Enum 클래스가 담당한다.비교를 위해 Money 클래스의 크기를 내림차순 비교해야 한다.Comparable 인터페이스, Stream API - sorte..
Generic 제대로 알아보기.
·
Langauge/Java
❒ DescriptionJDK5 부터 Generic이 도입되었다. Generic의 도입으로 우리는 매번 명시적으로 작성해줘야 했던 Type-Check와Casting을 생략할 수 있을 뿐만 아니라, type-safe 한 좋은 코드를 작성할 수 있게 되었다. 이번 글에서는 Generic의기초 뿐만 아니라, 보다 더 깊게 이해하기 위해 Variance(변성), Synthetic, Reification(실체화) 관련 내용들도 함께정리하면서 공부해 볼 것이다.     ❒ Variance (변성)1. 변성이란?Variance refers to how sub-typing between more complex types relates to sub-typing between their components.(번역) Var..