peace-developer
close
프로필 배경
프로필 로고

peace-developer

  • 분류 전체보기 (27)
    • Spring (9)
    • Java (6)
    • Infra (4)
    • CS (1)
    • Devops (2)
    • 코딩테스트 (4)
  • 홈
  • 태그
  • 방명록

RabbitMQ 개요 설명

RabbitMQ란?RabbitMQ는 신뢰성 높은 메시지 전달과 유연한 라우팅을 제공하는 오픈소스 메시지 브로커입니다. AMQP(Advanced Message Queuing Protocol) 프로토콜을 기반으로 하여, 다양한 토폴로지와 통신 패턴을 지원합니다. 복잡한 라우팅을 처리할 수 있는 Exchange 타입들을 제공하며, 메시지 큐잉, pub/sub 패턴, 피어-투-피어 통신 등 다양한 메시징 패턴을 구현할 수 있습니다.높은 가용성을 위한 클러스터링과 미러링을 지원하며, 메시지 전달 보장을 위한 Publisher Confirms와 Consumer Acknowledgments 기능을 제공합니다. 또한, Java, Python, JavaScript 등 다양한 프로그래밍 언어를 위한 클라이언트 라이브러리를..

  • format_list_bulleted Spring
  • · 2025. 2. 20.
  • textsms
Converter는 언제 작동하는 것일까?

Converter는 언제 작동하는 것일까?

Spring In Action(제5판)을 공부하던 중 Converter를 사용해 클라이언트에서 도메인 객체에 대한 id 값을 전달하면 id를 DB에서 도메인 객체를 조회하는 내용이 나왔다.Converter 구현import org.springframework.core.convert.converter.Converter;...@Component@RequiredArgsConstructorpublic class IngredientByIdConverter implements Converter { private final IngredientRepository ingredientRepository; @Override public Ingredient convert(String id) { re..

  • format_list_bulleted Spring
  • · 2024. 6. 23.
  • textsms
스프링 비동기처리

스프링 비동기처리

들어가며 F-lab 프로젝트를 진행하며 글을 작성했을 때 작성자를 팔로우하고 있는 회원에 대한 피드를 생성하는 로직을 구현하는 일이 있었다. 피드 발행 기능을 개발하며 동기 처리를 했을 때와 비동기 처리를 했을 때 성능차이를 살펴보며 스프링의 비동기 처리에 대해 간략히 알아보고자 한다. 간단한 비동기 처리방법 @Configuration // componentScan이 되어야 하므로 @EnableAsync public class AsyncConfig { ... } @Async // 비동기 처리를 하고자 하는 로직에 추가 public void save(Post post, User writer){ ... } 1. 먼저 루트 프로젝트 하위에 비동기처리 관련 설정 클래스를 만든다. 해당 클래스에 @Configur..

  • format_list_bulleted Spring
  • · 2024. 2. 1.
  • textsms
@ManyToMany에 대한 정리

@ManyToMany에 대한 정리

들어가며 f-lab 멘토링을 진행하며 SNS 서비스를 만들어보는 프로젝트를 진행하고 있다. 엔티티를 설계하는 과정에서 다대다 관계의 테이블이 필요한 상황이었다. 예를 들어 회원이 좋아요를 한 글을 관리하고 싶었는데 한명의 회원은 다수의 글에 대해 좋아요를 할 수 있고 반대로 하나의 글은 여러 회원들에게 좋아요를 받을 수 있는 상황이므로 회원과 글 사이에는 다대다 관계가 성립하는 것이다. 프로젝트는 JPA를 사용하고 있으므로 @ManyToMany를 사용해 다대다 관계의 엔티티로 설계를 하였다. 그런데 Pull Request에 대한 리뷰를 멘토님이 해주시며 @ManyToMany 사용을 지양해야 한다고 말씀해주셨다. 첨부해주신 글에는 @ManyToMany를 사용했을 때 JPA에서 연결 테이블을 만들어 주기는 ..

  • format_list_bulleted Spring
  • · 2024. 1. 19.
  • textsms

[토비의 스프링 3.1] 오브젝트와 의존관계

1.1 초난감 DAO DAO란? Data Access Object의 줄임말로 DB에 접근해 데이터를 조회하거나 저장하는 등의 역할을 수행하는 객체를 의미한다. //UserDao.java public void addUser(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/toby_spring", "root", "xxx"); PreparedStatement ps = connection.prepareStatement("insert into us..

  • format_list_bulleted Spring
  • · 2023. 12. 5.
  • textsms

Spring EhCache 간단한 적용법

Cache란? 예를 들어 회원 정보를 가져오는 API가 있다고 해보자. 회원 정보는 DB에 있으므로 정보를 가져오기 위해선 DB에 sql을 날려 조회해야 한다. 조회 요청이 자주 일어나지 않는다면 별 문제가 없겠지만 자주 일어난다면 DB 커넥션을 가져오고 해제하는 과정 등 회원 정보를 가져오기 위한 부가적인 작업들을 반복적으로 수행하게 된다. 이 때 사용할 수 있는 게 Cache이다. 한번 조회했던 회원 정보를 일정 기간 Cache로 보관하여 요청이 왔을 때 DB에 접근하지 않고 해당 정보를 반환해주면 된다. 즉 Cache를 이용하면 성능 개선을 할 수 있다. 다만 Cache를 이용할 때 주의해야 할 점이 있다. 만약 회원 정보가 실시간으로 바뀌는 것이고 이를 실시간으로 조회해야 한다면 Cache 정보는..

  • format_list_bulleted Spring
  • · 2023. 12. 1.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (27)
    • Spring (9)
    • Java (6)
    • Infra (4)
    • CS (1)
    • Devops (2)
    • 코딩테스트 (4)
최근 글
인기 글
최근 댓글
태그
  • #코딩테스트준비
  • #99클럽
  • #Til
  • #메세지브로커
  • #항해99
  • #오블완
  • #Spring
  • #개발자취업
  • #배포 스크립트
  • #티스토리챌린지
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바