Home
디피의 개발일지
Cancel

Apache Kafka

Apache Kafka는 빠르고 확장 가능한 작업을 위해 데이터 피드의 분산 스트리밍, 파이프 라이닝 및 재생을 위한 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 게시-구독 메시징 플랫폼이다. Kafka는 서버 클러스터 내에서 데이터 스트림을 레코드로 유지하는 방식으로 작동하는 브로커 기반 솔루션이다. Kafka 서버는...

커스텀 Annotation

Annotation 애노테이션은 Java 5 부터 등장한 기능으로, 사전적의미는 “주석”이지만, 클래스나 메서드 등 타켓에 라벨을 붙여준다. 비즈니스 로직에는 영향을 주지는 않지만, 해당 타켓의 연결 방법이나 소스 코드의 구조를 변경할 수도 있다. 애노테이션은 소스코드에 메타데이터를 삽입하는 것이기 때문에 잘 이용하면 구독성뿐만 아니라 체계적인 소스...

STOMP

STOMP(Simple Text Oriented Messaging Protocol)란? 웹소켓 위에서 동작하는 서브 프로토콜로, 클라이언트와 서버가 서로 통신하는데 있어 메시지의 형식, 유형, 내용 등을 정의해주는 프로토콜이다. 웹 소켓 프로토콜은 Text 또는 binary 두가지 유형의 메시지 타입을 정의하지만 메시지의 내용에 대해서는 정의하지 ...

mybatis.type-aliases-package

mybatis mapper에서 requestType이나 parameterType으로 클래스를 참조할 때 다음과 같이 패키지명을 다 써줘야하는 불편함이 있다. <mapper namespace="com.hello.spring.article.mapper.ArticleMapper"> <select id="selectArticles" ...

좋은 로깅을 위해 알아야할 13가지

이 글은 Logging Best Pratices : The 13 You Should Know를 기반으로 요약, 학습한 글입니다. 좋은 로깅을 위해 알아야할 13가지 Don’t write logs by yourself printf을 사용하거나 파일에 직접 입력하지마라. 로깅을 위한 표준 라이브러리를 사용하라. 표준 라이브러리를 사용할 때 장점...

SpEL - Spring Expression Language

이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. (출처) SpEL - Spring Expression Language 객체를 조회하고 조작하는 기능을 제공하며, 메서드 호출, 물자열 템플릿 기능 등의 여러가지 추가...

빈 스코프

빈 스코프는 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링에서는 다음과 같은 스코프를 지원한다 싱글톤 : 기본 스코프. 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련...

ResponseStatus vs ResponseEntity

​ @ResponseStatus 응답으로 보낼 데이터의 HttpStatus를 명시해주는 방법이다. 컨트롤러에서 Body 데이터만 반환하는 경우 HttpStatus를 명시하기 위해 사용한다. @ResponseStatus(HttpStatus.OK) @GetMapping("/article") public ArticleListDto getArticles...

단일책임원칙(SRP)

좋은 OOP 설계에서 지켜져야하는 규칙인 SOLID 중 S인 규칙으로, 하나의 모듈은 하나의 책임을 가져야한다는 원칙을 말한다. 클래스는 단 한개의 책임을 가져야한다. 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야한다. 클래스를 변경하는 이유는 단 한개여야 한다. 여기서 책임은 액터에 대한 책임을 의미한다. 하나의 액터에 ...

RestTemplate

스프링에서 지원하는 객체로, 간편하게 Rest 방식 API를 호출할 수 있는 스프링 내장 클래스다. 스프링 3.0부터 지원하였고, json, xml 응답을 모두 받을 수 있다. 특징 Blocking I/O 기반의 동기방식을 사용하는 템플릿 RESTful 형식에 맞추어진 템플릿 Header, Content-Type 등을 설정하여 외부 ...