목록분류 전체보기 (181)
초보개발자 긍.응.성
Jackson에서 사용하는 Annotation에 대해 정리한다. Baeldung (Jackson Annotation Example)에 정리된 글을 참고하였다. 1. Jackson Serialization Annotations 1.1 @JsonAnyGetter Map 필드에 대해서 일반 properties로 처리한다 public class ExtendableBean { private String name; private Map properties; @JsonAnyGetter public Map getProperties() { return properties; } } /** @JsonAnyGetter 적용 전 */ { "name" : "My bean", "properties" : { "attr2" : "va..
이전 게시글에서 Kafka 설치부터 Procuder와 Consumer를 이용한 발행/구독 과정까지 정리하였습니다. 이번 글에서는 spring-boot를 통해 간단한 Producer와 Consumer를 만들고 이벤트를 발행/구독하는 과정을 살펴보겠습니다. 카프카 시작하기 - (1) (Kafka QuickStart - (1)) Kafka 설치부터 간단한 spring-boot 애플리케이션과 연결하여 동작시키는 과정을 정리한 글입니다. Apache Kafka QuickStart 페이지와 CONFLUNET 예제를 참고하였습니다. 1. Kafka 다운로드 Kafka를 다운로드합니. ckddn9496.tistory.com 1. 프로젝트 준비 먼저 스프링 부트 프로젝트를 준비합니다. 빠른 프로젝트 생성을 위해 spri..
Kafka 설치부터 간단한 spring-boot 애플리케이션과 연결하여 동작시키는 과정을 정리한 글입니다. Apache Kafka QuickStart 페이지와 CONFLUNET 예제를 참고하였습니다. 1. Kafka 다운로드 Kafka를 다운로드합니다. 저는 wget 명령어로 다운로드하고 적당한 폴더에 압축을 해제하겠습니다. $ mkdir apps $ cd apps $ wget http://mirror.navercorp.com/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz $ tar -xzf kafka_2.13-2.6.0.tgz $ ln -s kafka_2.13-2.6.0 kafka# 버전 up시 변경을 줄이기위한 심볼릭 링크 생성 $ cd kafka 2. Kafka 동작 환경 ..
toString을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래스를 사용한 시스템은 디버깅하기 쉽다. Object의 기본 toString 메서드는 우리에게 적합한 문자열을 잘 반환해주지 않기 때문에 toString의 일반 규약에 따라 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환하도록 재정의할 필요가 있다. toString 규약 실전에서 toString은 그 객체가 가진 주요 정보 모두를 반환하는 게 좋다. 만약 객체가 거대하거나 객체의 상태가 문자열로 표현하기에 적합하지 않다면 요약 정보를 담아 전달해 줄 수 있어야 한다. toString 포맷 toString을 구현할 때면 반환 값의 포맷을 문서화할지 정해야 한다. 반환 값을 포맷을 문서화하였다면 그 객체는 표준적이고, 명확하게 사람이..
equals를 재정의한 클래스 모두에서 hashCode도 재정의해야 한다. 그렇지 않으면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으키게 된다. hashCode 재정의의 필요성 아래의 내용은 Object 명세 규약에 포함된 내용이다. equals 비교에 사용되는 정보가 변형되지 않았다면, 애플리케이션이 실행되는 동안 객체의 hashCode 메서드는 몇 번을 호출해도 일관되게 항상 같은 값을 반환해야 한다. 단, 애플리케이션을 다시 실행한다면 이 값이 달라져도 상관없다. equals(Object)가 두 객체를 같다고 판단했다면, 두 객체의 hashCode는 똑같은 값을 반환해야 한다. equals(Object..
앞서 살펴본 equals 일반 규약들과 이를 위배하는 상황에 대해 알아보자 (이펙티브 자바 3) 10. equals는 일반 규약을 지켜 재정의하라 (1) equals 메서드는 재정의하기에 쉬워 보이지만 곳곳에 함정이 도사리고 있다. 우선적으로 equals 메서드를 재정의하지 않아도 될 경우를 살펴보고, 재정의가 필요하다면 어떤 규약을 지켜서 재정의� ckddn9496.tistory.com 반사성 (reflexivity) 반사성은 객체는 자기 자신과 같아야 한다는 규약이다. 이 규약을 위반하는 경우는 없을 것이다. 대칭성 (symmetry) 대칭성은 두 객체는 서로에 대한 동치 여부에 똑같이 답해야 한다는 규약이다. 부모 클래스 A와 A를 상속하는 B가 존재하고 각각 equals를 구현했다고 가정해보자. ..