Development (155) 썸네일형 리스트형 [TIL] Redis 캐싱을 사용해야 할 때 주의해야 하는 점 Redis 캐싱의 문제 발생 시나리오불필요한 데이터의 캐싱: 예를 들어 Redis에 50GB의 데이터가 저장되어 있는 상황에서, 페이지네이션(paging) 데이터를 캐싱하는 과정에서 불필요한 데이터를 과도하게 캐싱한 경우가 있을 수 있다. 이는 Redis 메모리를 불필요하게 차지하여 효율성을 저하시키고, 결국 Redis 장애로 이어질 수 있다.Redis 장애: 불필요한 데이터가 캐시에 쌓이면서 Redis 메모리가 고갈되고, 이로 인해 Redis가 정상적으로 작동하지 못하게 된다. 결과적으로 Redis에 연결하려는 요청들이 타임아웃(timeout)을 유발하게 되며, 시스템 성능에 심각한 영향을 미친다.문제 발생 시 해결 방법타임아웃 설정: Redis와의 연결 시 타임아웃 설정은 필수적이다. 예를 들어, 타.. [Spring] @Builder사용할 때 @AllArgsConstructor를 적용하면 왜 @NoArgsConstructor와 함께 쓰이지 못하는가? 문득 @Builder를 사용하면서 intelliJ가 시키는 대로 @NoArgsConstructor, @AllArgsConstructor를 추가했는데요이게 왜 필요할까 궁금해져서 @Builder에 대해 알아보았습니다.@Builder* If a member is annotated, it must be either a constructor or a method. If a class is annotated,* then a package-private constructor is generated with all fields as arguments* (as if {@code @AllArgsConstructor(access = AccessLevel.PACKAGE)} is present* on the class), a.. [TIL] 다시 배우는 Docker Docker 이전의 개발 환경종속성 문제:버전 충돌: 소프트웨어는 다양한 라이브러리 및 종속성에 의존합니다. 개발 환경이나 운영 환경에서 사용하는 종속성의 버전이 다를 경우, 애플리케이션의 동작이 달라질 수 있습니다. 이는 개발자에게 큰 골칫거리였으며, "환경이 다르면 버그가 발생할 수 있다"라는 문제로 이어졌습니다.복잡한 설정: 각 개발 환경에 맞추어 정확한 버전의 종속성을 설치하고 설정하는 과정이 복잡하고 시간이 많이 소요되었습니다. 특히, 프로젝트가 커질수록 이러한 문제는 더 심각해졌습니다.확장성 부족:수작업 설치: 서버에 직접 소프트웨어를 설치하고 설정하는 과정이 필요했으며, 이는 인적 오류의 위험을 증가시켰습니다.자동화의 한계: 인프라의 자동화가 어려워 확장이 필요할 때마다 인스턴스를 수동으로 .. [TIL] 클라이언트 사이드 로드밸런싱과 서버 사이드 로드밸런싱 클라이언트 측 로드 밸런싱작동 방식클라이언트의 책임: 클라이언트는 사용 가능한 서버 목록을 유지하며, 이 목록을 기반으로 어떤 서버로 요청을 보낼지 결정합니다.구현: 클라이언트는 서비스 레지스트리(예: Eureka)에서 서비스 인스턴스 목록을 가져온 후, 특정 알고리즘(예: 라운드 로빈, 랜덤)을 사용하여 인스턴스를 선택합니다.특징분산된 제어: 각 클라이언트는 독립적으로 서버 선택을 결정합니다.서비스 발견 통합: 서비스 발견 메커니즘과 통합되어 서비스 인스턴스의 최신 목록을 관리합니다.망 효율성: 요청은 클라이언트로부터 직접 선택된 서버로 라우팅되어 병목 현상을 감소시킵니다.장점지연 시간 감소: 중간자가 없기 때문에 서버와의 통신 지연 시간을 줄일 수 있습니다.고장 허용: 하나의 서버가 실패해도 클라이언.. [Spring] HttpSession과 Session Clustering 세션(Session)은 다양한 의미로 사용됩니다. 터미널에서의 세션, 웹에서의 세션 등 여러 맥락에서 세션은 상태를 유지하기 위한 방법을 제공합니다. 이 글에서는 Spring에서의 세션 동작 방식과 세션 클러스터링(Session Clustering)에 대해 다뤄보겠습니다.HttpSessionHTTP 프로토콜은 본질적으로 무상태(Stateless) 프로토콜이다. 이는 각 요청이 독립적으로 처리되며, 서버가 특정 사용자의 요청 순서나 상태를 기억하지 않는다는 의미이다. 즉, 사용자는 매 요청마다 자신의 신원을 식별할 수 있는 정보를 서버에 전달해야 한다.HTTP 요청이 상태를 유지하지 않기 때문에, 서버와 클라이언트는 추가적인 메커니즘을 통해 상태를 유지해야 한다. 이때 가장 많이 사용하는 방법이 쿠키(Co.. 공부하며 얻은 잡다한 지식들 (2024.09.13 update) 기술적 내용보다는, 개발하면서 뭔가 편리한? 사람마다 다른? 이렇게 구현된 숨은 이야기들? 등 잡다한 것들을 적어놓는 글 입니다.QueryDSL은 주로 READ, JPA는 나머지를 쓰는 편이다.IntelliJ에서 하나의 창에서 여러 Gradle을 추가할 수 있다. 이를 통해 한 번에 여러 패키지 관리가 가능하다.Window는 파일 확장자를 3글자로 맞추는 걸 좋아한다. 그렇다고 application.yaml과 application.yml의 차이는 없다.spring에서 application.properties과 yml는 file encoding이 ISO-8xxx와 UTF-8 차이가 있다.맥북은 터미널에 복사 붙여넣기를 하면 서식까지 복사가 되는 경우가 있어서 '\'로 여러 명령어를 입력할 때 끝에 공백이 .. [CT] 프로그래머스 2023 KAKAO BLIND RECURITMENT 택배 배달과 수거하기 java 풀이 코딩테스트 연습 - 택배 배달과 수거하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀다가 다른 사람 풀이를 보니 현타가 와서.. 작성하는 글.다른 사람 풀이class Solution { public long solution(int cap, int n, int[] deliveries, int[] pickups) { long answer = -1; int deliver = 0, pickup = 0; for(int i = n-1; i >= 0; i--){ .. [Redis] Redis 기초 Redis는 매우 빠른 성능과 다양한 기능으로 인해 현대적인 애플리케이션 개발에서 중요한 역할을 하고 있습니다. 이 글에서는 Redis가 무엇인지, Redis의 특징과 활용 사례를 살펴보고자 합니다.RedisRedis는 REmote DIctionary Server의 약자로, 데이터를 키-값 쌍으로 저장하는 인메모리 데이터베이스이다. 이는 Java의 Map 인터페이스와 비슷한 방식으로 데이터를 저장하고 조회할 수 있는 기능을 제공한다. Redis는 단순한 키-값 저장소를 넘어서 다양한 데이터 구조를 지원하며, 고성능과 유연한 사용성을 제공하는 것으로 널리 알려져 있다.Redis의 특징인메모리 데이터베이스Redis는 데이터를 메모리(RAM)에 저장하는 인메모리 데이터베이스이다. 이로 인해 디스크 기반 데이터.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음