Framework & Library
-
Kafka 기초 - Topic, Partition, SegmentFramework & Library/Kafka 2023. 2. 17. 17:20
Topic, Partition, Segment Kafka의 주요 요소 - Kafka Cluster : Kafka의 Broker들의 모임, Kafka는 확장성과 고가용성을 위하여 Broker들이 Cluster로 구성된다. - Broker : 각각의 Kafka 서버, 동일 노드에 여러 개의 Broker들을 띄울 수 있다. - Topic : Kafka 안에서 메시지가 저장되는 장소의 논리적인 표현 - Zookeeper : Kafka Cluster의 정보 및 분산 처리 관리 등 메타 데이터를 저장, Kafka를 띄우기 위해 반드시 실행되어야 한다. - Producer : 메시지를 생산해서 Kafka의 Topic으로 메시지를 보내는 애플리케이션 - Consumer : Topic의 메시지를 가져와서 소비하는 애플리..
-
Kafka 기초 - Kafka란?Framework & Library/Kafka 2023. 2. 17. 16:14
Kafka란? Kafka(카프카)란? Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 제작된 오픈 소스 분산 이벤트 스트리밍 플랫폼이다. 이벤트 스트리밍이란 인체의 중추 신경계와 같다. 즉, 비즈니스가 더욱 소프트웨어화, 자동화됨에 따라 상시 가동되는 소프트웨어를 사용하는 세상을 위한 기반 기술이다. Kafka의 이벤트 스트리밍은 Fortune 100대 기업의 60% 이상을 포함하여 수많은 산업 및 조직의 다양한 사례에 적용된다. 1. 증권 거래소, 은행 및 보험과 같은 실시간으로 지불 및 금융 거래를 처리 2. 물류 및 자동차 산업과 같이 자동차, 트럭, 차량 및 선적을 실시간으로 추적하고 모니터링 3. 공장 및 풍력 발전 단지와 같..
-
Spring Boot - Jackson 라이브러리를 이용한 데이터 바인딩(2)Framework & Library/Spring Boot 2023. 2. 10. 13:51
Jackson 라이브러리를 이용한 데이터 바인딩(2) 지난 게시글에서는 getter(), setter() 메서드의 유무 또는 형태에 따라 직렬화, 역직렬화가 어떻게 이루어지는지 알아보았다. 이번 게시글에서는 생성자에서 데이터 바인딩이 어떻게 이루어지는지 여러 가지 상황을 통해 알아보겠다. 1. 기본적인 형태 @Getter @Stter public class Member { private Long id; private String name; private String address; private String email; public Member() { this.id = 0L; this.name = "No Name"; this.address = "No Address"; this.email = "No Ema..
-
Spring Boot - Jackson 라이브러리를 이용한 데이터 바인딩(1)Framework & Library/Spring Boot 2023. 2. 8. 14:52
Jackson 라이브러리를 이용한 데이터 바인딩(1) Jackson 라이브러리란? 오늘날의 거의 모든 웹 서비스는 JSON 형태로 데이터를 사용하고 생성한다. JSON 데이터를 애플리케이션 내의 POJO 객체로 변환하고 POJO 객체를 다시 JSON 형태로 변환해서 내보내는 역할이 필요한데, Spring에서는 보편적으로 이러한 역할을 Jackson 라이브러리가 도맡아 처리한다. 이처럼, Jackson은 JSON 처리를 위한 다목적 고성능 Java 라이브러리이다. Java 객체를 JSON 형태로 또는 JSON을 Java 객체로 변환하는 데 사용되는 바인딩 기능을 제공해 준다. 이번 게시글에서는 어떻게 Jackson 라이브러리가 JSON 데이터를 POJO 객체로 변환하는지를 알아보겠다. ※ POJO : 특정..
-
Spring Boot - @PathVariable & @RequestParam & @ModelAttributeFramework & Library/Spring Boot 2023. 2. 6. 13:27
@PathVariable & @RequestParm & @ModelAttribute @PathVariable http://localhost:8080/api/member/17 http://localhost:8080/api/member/25 REST API에서 위와 같이 URI에 변수가 들어가는 것을 본 적 있을 것이다. 위 URI에서 밑줄 친 부분이 @PathVariable 애너테이션으로 처리해 줄 수 있는 부분이다. 이처럼, URI에 파라미터를 포함시킨 요청을 @PathVariable 애너테이션을 사용하여 처리할 수 있다. @RestController public class MemberController { @GetMapping("/member/{id}/{name}") public String findM..
-
Spring Boot - DI(Dependency Injection)의 세 가지 방법Framework & Library/Spring Boot 2023. 2. 5. 18:28
DI(Dependency Injection) 세 가지 방법 Field Injection(필드 주입) @Controller public class SampleController { @Autowired private SampleService sampleService; } ㆍ 필드 주입 방식은 의존성 주입을 받을 변수 선언부에 위와 같이 @Autowired 애너테이션을 선언함으로써, 사용이 가능하다. ㆍ 코드가 간결하고 편하지만, 의존관계를 정확하게 파악하기 힘들다. ㆍ 필드 주입 시 final 키워드를 선언하지 못하기 때문에, 객체가 변할 수 있다는 단점이 존재한다. ㆍ 주입이 동시에 일어나는 경우 순환참조 에러를 발생시킨다. Setter Injection(수정자 주입) @Controller public c..