방구석개발일지
article thumbnail
[Springboot + Kafka] 간단한 pub/sub 구현 예제
Java 2023. 7. 22. 21:40

지난번에 터미널을 활용해 kafka 를 활용한 메시지 발행/구독 을 간단하게 살펴 보았다. 카프카를 설치하고 구동되어 있다는 전제 하에 Springboot 에서 Kafka 메시지를 발행/구독 하는 예제를 살펴보자. 혹시 위의 내용이 궁금하다면 터미널을 활용한 카프카 설치 및 테스트 에서 확인할 수 있다. Spring project 생성 프로젝트를 생성하고 라이브러리들을 받아왔다면 다음으로 넘어가자. application.yml 파일 작성 spring: kafka: consumer: bootstrap-servers: localhost:9092 group-id: test-group-id auto-offset-reset: earliest key-deserializer: org.apache.kafka.commo..

article thumbnail
[Spring] webclient + 406 error 문제 해결
Java 2023. 6. 26. 17:02

MS to MS 간 통신을 하기 위해 webClient 를 사용해 get 요청을 보내던 중 예상치 못한 에러가 발생했다. 데이터를 요청할 때 Content-Type 을 application/json 로 명시해 데이터를 받으려 했으나, 406 에러가 발생하면서 데이터를 받아오지 못했다.. 디버깅을 진행해 보니 요청을 받는 MS 측에서 요청을 받고 로직을 수행하는데는 문제가 없었다. 문제가 되던 기존 코드는 아래와 같다. - Request MS @Override public UserRdo findCodeByCategoryCode(String userId){ return this.webClient.get() .uri("/user/query/find-by-id?user-id={userId}", userId) ...

article thumbnail
[SpringBoot] 스프링부트 프로젝트 빌드를 위한 스크립트 파일
Java 2023. 6. 22. 11:04

프로젝트를 진행하면서 코드를 클론해 받아오면 빌드가 잘 되지 않아 고역을 치룬 경험이 많다. 프로젝트에서 빌드에 필요한 파일과 그 역할을 분석해 보자. 빌드 툴은 Gradle 을 기반으로 한다. build.gradle 프로젝트에서 필요한 종속성과 빌드 설정을 위해서 build.gradle 파일을 작성해야 한다. build.gradle 파일은 프로젝트의 컴파일, 패키징, 테스트 등의 빌드 과정을 정의한다. DSL(Domain-Specific Language) 을 사용하여 빌드 스크립트를 작성하며, 다양한 플러그인과 태스크를 구성할 수 있다. Gradle 빌드 스크립트의 주요 역할을 수행하며, 프로젝트의 구성, 종속성 관리, 작업 정의 등을 다룬다. // build.gradle buildscript{ /* ..

article thumbnail
[JPA] 영속성 컨텍스트 (Persistence context)
Java 2023. 5. 16. 14:27

영속성 컨텍스트(Persistence context) 란 ? 엔티티를 영구적으로 저장하는 환경입니다. App 과 DB 사이에서 영속객체를 보관하는 가상의 DB 역할을 합니다. EntityManager 를 통해 Entity 를 저장하거나 조회하면 Entity Manager 는 영속성 컨텍스트에 Entity 를 보관하고 관리합니다. flush() 는 영속성 컨텍스트의 내용을 DB 와 동기화 하는 것을 의미합니다. 1. EntityManager.flush() 직접 호출을 통한 플러시 2. 트랜잭션의 커밋을 통한 자동 플러시 3. JPQL 쿼리 실행을 통한 자동 플러시 flush() 가 실행되어 DB와 동기화가 되었다고 해서 DB 에 데이터 변경이 반영되었다는 것은 아닙니다. public class Custom..

article thumbnail
[JPA] 정리
Java 2023. 5. 16. 12:42

JPA 란 ? Java Persisent API 의 약자입니다. ORM(Object Relational Mapping) 기술 표준입니다. JPA 는 자바 프로그램에서 관계형 데이터베이스에 접근하는 방식을 명세화한 인터페이스의 모음입니다. JPA의 구현체가 있어야 JPA를 사용할 수 있습니다. JPA의 구현체는 ? JPA의 EntityManagerFactory, EntityManager, EntityTransaction 등을 상속받아 구현한 것으로 JPA의 Interface 를 구현하여 쿼리를 생성하여 JDBC 에 전달해 관계형 데이터베이스에 접근합니다. 대표적으로 Hibernate, EclipseLink, DataNucleus 등이 있습니다. 일반적으로 JPA 구현체는 Hibernate 라이브러리를 사용..

검색 태그