본문 바로가기

Today I Learned123

(24.07.22)[15주차] MinIO 활용 정리 프로젝트 구성에 있어서 데이터를 저장하고, 조회, 그리고 수정도 할 수 있게끔 기능을 추가를 했다.DI 배포 파이프라인에 따라서 AWS S3를 사용해야하지만,개발 단계에서 테스트용으로 직접적으로 사용하는데에는 비용적으로 부담이 크고, 빠르게 변경을 할 수 없다는 단점이 있다.이 때, 오픈 소스 객체 스토리지 서버인 MinIO를 활용하여 개발을 진행하려고 한다. 이를 위해 아래에는 MinIO를 활용하기 위해 정리하고 학습한 내용이다.MinIO오픈 소스 객체 스토리지 서버를 제공해주는 소프트 웨어오픈 소스 이므로 커뮤니티를 통한 정보와 문서가 제공되고 있음쉬운 튜토리얼이 가능 : WebUI 제공Amazon S3 API와 호환이 가능실제 S3에 배포 전 기능을 그대로 활용해서 개발, 테스트를 실제 환경과 똑같.. 2024. 7. 22.
(24.07.15)[14주차] 프로젝트 중 동시성 제어를 위한 Redisson 활용 많은 요청이 한번에 들어올 경우 DB에 CRUD간 데이터의 일관성, 무결성, 정합성의 DB 데이터 특성을 보호하기 위해서 동시성을 제어할 필요가 있다. 쓰레드나 프로세스가 동시에 데이터에 접근하는 것을 방지하기 위해 여러가지 방법이 있지만, Synchronized나 DB Lock은 DB또는 서버등의 환경이 분리됨에 따라 동시성 제어가 불가능할 수 밖에 없다. 따라서 DB단이 아닌 싱글 쓰레드인 메모리와 같은 Redis단에서 DB 접근에 관하여 제어를 하면서 동시성 제어를 해야한다. 이러한 Redis단에서의 분산된 Lock, Distributed Lock 중 Redisson API를 통해 임계영역을 직접적으로 Redis가 관리할 수 있도록 협의를 하고 구현을 진행함에 있어서 그 과정을 정리했다. Synch.. 2024. 7. 15.
(24.07.09)[13주차] @DataJpaTest 슬라이스 테스트에서의 빈 등록 슬라이스 테스트 중 QueryDSL로 구현한 RepositoryCustom과 JpaRepository가 extends 된 3 Layer Architecure 의 Repository 레이어의 테스틀 위해 @DataJpaTest Annotation 을 활용하면서 발생한 이슈를 정리 @DataJpaTest에서의 빈 등록@DataJpaTest@ActiveProfiles("test")public class LikeRespositoryTest { @Autowired private LikeRepository likeRepository; ...이슈테스트 코드에서의 검증 문제가 아닌 디버깅도 시작이 안되는 주입 단에서의 문제가 발생지속적으로 Runtime시에 ApplicationContext자체가.. 2024. 7. 9.
(24.07.04)[12주차] Redis 강의 학습 Spring 의 Mail Sender와 함께 인증번호를 전송하고 이를 인증 번호를 통해 회원가입시 본인인증을 진행하는 구축을 팀 프로젝트에서 사용한 적이 있었다. 당시에는 Redis에 대해서 제대로 알지를 못해서 사용을 했지만,이번 학습 Session을 정리하면서 이론적으로 Redis에 대해 한번 정리를 했다.Redis 강의 간단 정리자료와 나만의 언어로 간단히 정리를 해보고 구체적인 내용은 Notion으로 옮겨서 학습을 진행더보기In-Memory CacheRedis, Memcached, Couchbase 등In-Memory Cache는 사용한다는 의미, 분류로써는 NoSQL 이라고 할 수 있음Query CacheDB 자체에서 사용하는 캐시동일 쿼리 실행 시 매번 조회하는 것이 아니라 캐시에 저장된 데이.. 2024. 7. 4.