쿠버네티스 정리쿠버네티스는 다수의 컨테이너를 효율적으로 배포, 확장, 관리하기 위한 시스템이다. 컨테이너화된 애플리케이션을 클러스터 환경에서 자동으로 배포하고 필요에 따라 확장과 축소하며 장애가 발생했을 때 복구까지 담당한다. 흔히 docker compose와 비교되지만 compose가 단일 서버 내 다수 컨테이너 관리에 초점을 둔다면 쿠버네티스는 여러 서버에 걸친 대규모 컨테이너 오케스트레이션을 지원한다. docker compose의 확장판으로 이해할 수 있지만 더 많은 기능을 제공한다. 주요 장점컨테이너 관리 자동화로 배포, 업데이트, 롤백을 자동 처리하고 다수의 파드로 들어온 요청을 균등하게 분배해 로드 밸런싱을 한다. 트래픽 상황에 따라 파드 개수를 자동으로 늘리거나 줄여 쉬운 스케일링이 있고 셀..
Redis는 무엇이며 장점은?레디스는 키-값 구조의 비정형 데이터를 저장하고 관리하는 비관계형 DB입니다. 인메모리에 모든 데이터를 저장하여 데이터의 처리 속도가 매우 빠른 장점이 있습니다. 디스크 보다 메모리가 데이터 처리 속도가 빠른데 RDBMS는 대부분 디스크에 데이터를 저장하고 레디스는 메모리(RAM)에 데이터를 저장합니다.Redis 주요 사용 사례캐싱, 세션관리, 메시지 큐, 실시간 채팅 및 메시징 등 내장된 기능이 많아서 사용하는 용도가 많습니다. 레디스 설명은 이 정도만 하고 레디스에서 제일 많이 사용되는 캐시 적용 및 레디스의 클러스터 구성에 대해서 설명하겠습니다.캐시, 캐싱이란?원본 저장소 보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미를 캐시라고 하고 임시 저장소에 접근해서 데이..
JPA 프로젝트에서 update는 어떤 방식으로 하는 게 좋을까?JPA 프로젝트를 하면서 가장 많이 쓰게 되는 기능 중 하나가 update입니다. 개발을 하다 "어떤 방식이 더 좋은 걸까" 하는 고민이 생겼습니다. 이글에서는 그 부분을 정리해보려고 합니다. 제가 고민하는 두 가지 방식1. JPA의 장점인 Dirty Checking(변경 감지) 활용해서 엔티티의 필드를 직접 수정하는 방법2. 새로운 객체를 만들어 교체하는 방법 두 가지 방법 모두 장단점이 있다고 GPT가 대답해 줍니다. 이번 글에서는 각각 어떤 특징이 있는지 그리고 실제로 언제 쓰면 좋을지 제 생각을 정리해 보겠습니다. 먼저 변경 감지를 활용해 필드를 직접 수정하는 방법입니다.@Transactionalpublic void updateDep..

ConcurrentLinkedQueue와 LinkedBlockingQueue는 모두 큐(Queue) 자료구조로, 멀티스레드 환경에서 사용되는 안전한 큐 구현체입니다. 두 클래스는 각각의 특징에 따라 서로 다른 사용 사례에 적합합니다. 아래에서 각각에 대해 설명드리겠습니다.ConcurrentLinkedQueueNon-blocking Queue, Lock-free, CAS(Compare and Swap) 방식 동작하여 여러 스레드가 동시에 큐에 접근 가능큐에 꺼낼 원소가 없다면 즉시 리턴하여 다른 일을 수행생산자- 소비자 패턴에서 소비자가 많고 생산자가 하나인 경우 적합CAS(Compare and Swap)Non-blocking 알고리즘에서 주로 사용되는 원자적 연산으로 멀티 스레드 환경에서 동시성 문제를 ..
위 내용은 업무에 바로 쓰는 SQL 튜닝 중 2장의 인덱스와 뷰를 정리한 글입니다.인덱스데이터베이스에서 키값으로 실제 데이터 위치를 식별하고 데이터 접근 속도를 높이고자 생성되는, 키 기준은 정렬된 오브젝트이다. 예를 들어, 천만 건의 데이터가 있는 테이블이 있을 때, 원하는 정보를 찾기 위해 첫 행부터 마지막 행까지 순차적으로 검색하는 방법은 데이터 양이 많아질수록 검색 속도가 급격히 느려지고 비효율적이다. 이러한 문제를 해결하기 위해 인덱스를 사용하면 키워드 기반으로 검색이 가능하여 데이터를 빠르게 찾을 수 있다. 인덱스는 책의 목차와 같은 역할을 하며, DBMS이 효율적인 검색을 수행할 수 있도록 돕다.고유 인덱스와 비고유 인덱스고유 인덱스고유 인덱스는 말그래도 열들의 데이터가 유일하다는 의미이다...

유료 버전 쓰다가 IntelliJ IDEA CE(무료 버전)로 변경하면서 발생한 오류입니다. 무료 버전은 Spring Boot를 지원하지 않아, 유료버전에서 작성된 Spring Boot 프로젝트가 Unknown 문자로 표시되었습니다. 무료 버전에서 Edit Configurations 설정을 변경하여 이 오류를 해결해 보겠습니다.1. ▶ 버튼으로 Run 클릭아래와 같은 오류가 발생합니다.아래의 경로로 이동하여 Build and run using과 Run tests using을 IntelliJ IDEA로 변경IntelliJ IDEA → Settings → Build, Execution, Deployment → Build Tools → Gradle2. ▶ 버튼으로 Run 클릭아래와 같은 오류가 발생한다면 Ed..

과거 레거시 시스템을 리팩터링 할 때, 문자열 변경 작업이 빈번하게 발생하면서 성능 문제가 발생했던 적이 있습니다. 당시에는 String 클래스가 사용되고 있었는데, 이 클래스는 불변 객체이기 때문에 문자열이 변경될 때마다 새로운 객체를 생성하는 특성으로 인해 메모리 사용량이 증가하고 처리 속도가 느려지는 문제가 있었습니다. 이를 해결하기 위해 StringBuffer 클래스를 도입하여 기존 객체를 수정하는 방식으로 작업을 처리했고, 이를 통해 성능 문제를 효과적으로 해결할 수 있었습니다. 당시에는 속도 개선이라는 결과에만 초점을 맞췄지만, 지금은 그 원리와 동작 방식에 대해 더 깊이 이해하고자 합니다.문자열 클래스의 특성과 동작 원리1. String불변 객체로, 문자열 변경 시 새로운 객체가 생성되어 기..
- Total
- Today
- Yesterday
- function
- find
- Python
- combinations
- bool
- zip
- Lower
- Lambda
- isdigit
- If
- permutations
- for
- isalpha
- counter
- operators
- index
- Built-in Functions
- Upper
- Method
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |