전체 글

백엔드를 열심히 갈고 닦아서 광내봅시다 ~_~
메시지 큐는 분산 시스템에서 컴포넌트간의 데이터를 전달하는데 주로 사용되는 통신 방법입니다. (MSA에서도 중요한 역할)대량의 데이터를 분산 시스템에서 다룰 때 큰 시스템 개선 효과를 볼 수 있습니다. 특징1. 비동기 메시지 전달queue에 메시지를 넣고 수신자의 응답을 기다릴 필요 없이 다음 작업으로 넘어갈 수 있습니다. 2. 데이터 유실 방지HTTP 직접 통신이 아닌 queue를 사용하기 때문에, 수신자쪽의 서버에 문제가 생기더라도 데이터가 유실되지 않은 채로 보관이 가능합니다.피크시간에 발생하는 부하가 분산되기 때문에 장애에 유연하고 독립적인 설계가 가능합니다.이 때 , 메시지 전달 속도의 차이를 조절하면 시스템의 전체적인 성능이 향상될 수 있습니다. 3. 발신자(producer)/수신자(consu..
실시간 알림, 채팅과 같이 실시간으로 통신이 필요한 기능을 구현하기 위해선 어떤 방식을 사용할 수 있을까요?1. polling일정 주기를 가지고 서버의 API를 호출하는 방법입니다.기본적인 HTTP 통신을 기반으로 하기 떄문에, 호환성이 좋다는 장점이 있습니다. 하지만 업데이트 주기가 길 경우 실시간으로 데이터가 갱신되지 않고, 짧을 경우 갱신 사항이 없음에도 서버에 요청이 들어와 서버에 부하가 생길 수 있습니다.  2. long-polling업데이트가 발생할 때에만 서버에서 응답을 보냅니다.서버로 요청이 들어올 경우, 일정 시간동안 대기했다가 요청한 데이터가 업데이트되면 응답을 보냅니다.하지만 마찬가지로 업데이트가 빈번하게 일어난다면 연결을 위한 요청이 똑같이 발생해, 서버에 부하가 일어날 수 있습니다..
앞선 글을 통해, JPA는 엔티티 매니저를 통해서 DB와 어플리케이션 사이의 객체인 엔티티를 다루어 수정/변경/삭제등이 이루어집니다.이 엔티티 매니저를 어떻게 설정하는지, 스프링에 의존하지 않는 순수 Java의 설정 방법과 스프링의 DI에 의존하는 2가지 방법을 통해 알아보겠습니다.순수 Java 설정Entity Manager Factory → Entity Manager 의 생성은 Persistence 클래스를 사용하여 구현할 수 있습니다.1. 설정1.1. EntityManagerFactory 생성 ... Persistence는 createEntityManagerFactory(String persistenceUnitName)메서드를 통해 엔티티매니저팩토리를 생성합니다..
해당 글 스프링의 엔티티매니저 관리와 상관 없는 기초적인 JPA의 동작 원리를 기술하고 있습니다.1. 기본 개념JPA (Java Persistence API)는 관계형 데이터베이스를 사용하는 방식을 정의하는 인터페이스로, Java ORM 기술의 표준 명세라고 할 수 있습니다.💡 ORM(Object Relational Mapping)객체를 통해 간접적으로 DB 데이터를 다루는 방법으로, DB 데이터와 Object 필드를 매핑합니다.예) JPA, Hibernate💡 SQL MapperSQL문으로 DB를 직접 조작합니다.예) MyBatis, jdbcTemplate JPA를 다룰 때 필요한 엔티티 매니저(EntityManager)는 인터페이스로 정의되어 있습니다.public interface EntityMa..
캐시재사용 가능성이 높은 데이터를 메모리(RAM)에 저장하여 DB보다 빠르게 접근하기 위해 사용됩니다.단순하거나 변경이 잘 되지 않고, 자주 조회되는 데이터가 캐싱하기 적합합니다.데이터베이스에 접근하지 않고 저장된 데이터를 조회함으로써, 불필요한 트래픽을 줄이고 서버의 부하를 줄입니다. ✅ 단점용량의 한계가 있기 때문에 사용자증가/트래픽 증가 시 DB 성능이 떨어지고(매 트랜잭션마다 디스크에 접근) 시스템 다운의 위험이 있습니다.캐시와 DB 두 곳에서 같은 데이터임에도 값이 다를 경우가 존재하게 되는 데이터 정합성 이슈 (데이터불일치)가 있습니다. 응답캐싱웹서버의 응답을 메모리에 캐싱하는 방법으로, 다음 중 하나를 사용합니다.1. Local Cache애플리케이션 서버의 로컬 인메모리(메모리/디스크)에 저..
달래dallae
머루랑달래랑