Backend

코딩하는 대학생에서 개발자까지
TestContainers에 Singleton 적용하기
·Backend/Spring
TestContainers 란?TestContainers는 Docker 컨테이너를 활용하여 실제 서비스와의 통합 테스트를 쉽게 수행할 수 있도록 지원하는 테스트 라이브러리입니다.https://testcontainers.com/ TestcontainersTestcontainers is an opensource framework for providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.testcontainers.com 많은 스프링 사용자들이 Test를 할 때 인메모리 데이터베이스(H2)를 사용하는데 개발, 프로덕..
다양한 시각에서 바라본 JPA
이 글에서는 JPA의 내부 구조에 대해 자세히 다뤄보려 합니다. Spring Boot를 실행시키면 JpaRepository는 어떻게 생성되나요?public interface MemberRepository extends JpaRepository아마 위 코드는 스프링으로 개발하시는 분이라면 한 번이라도 작성해봤을 코드입니다.레포지토리 인터페이스를 정의한 뒤, 제네릭 타입으로 엔티티 클래스와 해당 엔티티의 ID 필드 타입을 지정합니다.이렇게 하면 Spring Data JPA가 자동으로 해당 엔티티에 대한 기본적인 CRUD 작업을 수행하는 구현체를 생성합니다. 분명 MemberRepository는 interface인데 왜 Proxy가 적용됐고 Target Class가 SimpleJpaRepository야? Sp..
다양한 시각에서 바라본 Redis (4) 고급 기능
·Backend/Redis
처음에는 스프링에서 Redis를 어떻게 활용하는지 알아보려 했습니다. 하지만 이 주제가 특정 언어와 프레임워크에 너무 국한될 것 같아 다른 주제로 방향을 바꾸게 되었습니다.  Redis pipelineRedis Pipeline이란 Redis의 명령어들을 일괄로 처리하여 RTT(Round - Trip - Time)를 최적화 하는 방법입니다.  일괄로 처리하는 것과 개별로 처리하는 것을 GET, MGET에 비교해 설명하겠습니다.여러 키를 조회할 때 GET으로 조회를 하게 되면 조회를 할 때마다 RTT가 발생합니다. 하지만 MGET은 한 번의 작업으로 충분해 RTT를 절약할 수 있습니다.RTT (Round Trip Time)이란?네트워크 요청을 시작한 후 응답을 받는데 걸리는 시간을 의미합니다. 쉽게 왕복시간..
다양한 시각에서 바라본 Validation
·Backend/Spring
보호되어 있는 글입니다.
다양한 시각에서 바라본 Redis (3) 자료형과 기능
·Backend/Redis
실전 레디스레디스는 인메모리에서 빠르게 동작하고, 자료형과 기능을 이용하여 데이터를 유연하게 표현할 수 있어 최근 웹 시스템 등에서 널리 사용되고 있습니다. 『실전 레디스』는 레디스의 기초부터 실무 활용까지 포괄적으로 다루는 레디스 핵심 가이드입니다. 최신 버전의 레디스 기능뿐만 아니라 데이터 저장, 클러스터링, 모니터링과 같은 실제 레디스를 운영하면서 꼭 필요한 내용까지 여러 사례와 함께 설명합니다. 특히 실전에서 레디스를 활용하기 위한 저자의 노하우를 바탕으로 COLUMN 구성을 통해 레디스의 명령어에 대한 추가 설명과 레디스의 기능 비교 및 함수 설명까지 배울 수 있습니다. 마지막으로 레디스의 지속적인 활용을 위해 멤케시디와 비교하면서 레디스의 전망을 소개하는 부록까지 제공합니다.저자하야시 쇼고출판..
다양한 시각에서 바라본 트랜잭션
다양한 시각 시리즈 3번째 트랜잭션입니다!트랜잭션 어노테이션을 적용시켰을 때 어떤 일들이 일어나는지에 대해 자세히 적어보았습니다. @Transactional public void removeEvents(List adates) { adateRepository.deleteAll(adates);} 이렇게 @Transactional 어노테이션을 붙이면 어떻게 될까 알고 싶어 작성한 글입니다.트랜잭션을 호출하게 되면 스프링은 트랜잭션이 필요한 빈에 대해 프록시를 생성합니다. (위의 경우 removeEvents가 포함되어 있는 Service 클래스에 대해 프록시를 생성합니다) 이후, TransactionInterceptor에 의해 해당 메서드의 실행 전후에 트랜잭션의 시작과 종료가 자동으로 처리됩니다.Transac..
코딩하는_대학생
'Backend' 카테고리의 글 목록