본문 바로가기

분류

(54)
Kafka 알아보기 Kafka 알아보기 Kafka란?성능과 기능이 좋은 큐라고 할 수 있다. 주로 대량의 이벤트 스트림 데이터를 처리하고 여러 시스템 간에 데이터를 신속하게 전송하는 데 사용된다. Kafka의 주요 특징고성능: 초당 수백만 개의 메시지 처리 가능확장성: 클러스터 형태로 노드를 추가하여 쉽게 확장 가능내결함성: 노드 장애 시 자동 복구 가능비동기 처리: 메시지를 보내고, 나중에 원하는 시점에서 처리 가능이벤트 기반 아키텍처 지원: 마이크로서비스 간 메시지 교환 가능Kafka의 핵심 구성 요소📌 Producer 데이터를 생성하고 Kafka에 전송하는 역할특정 Topic에 메시지를 보내며, 파티션을 지정 가능프로덕션 중에 키를 보내는 것은 필수 X 📌 Broker Kafka 서버로서 Producer가 보낸 메..
캐시란 무엇인가 캐시란 무엇인가    캐시란?데이터를 임시로 저장하는 공간 또는 저장된 데이터, 즉 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소입니다. 일반적으로 캐시는 메모리에 저장되기 때문에 데이터베이스 보다 훨씬 빠르게 데이터를 전송할 수 있어 데이터 요청 시 빠르게 서비스를 제공할 수 있습니다.웹 캐싱은 사이트 방문자의 경험을 향상시키는 가장 효과적인 방법으로 특정 규칙에 따라 재사용 가능한  HTTP 응답을 저장하여 이후의 요청을 더 빠르게 처리하는 기술로 동일한 요청이 발생할 경우 원본 서버까지 가지 않고 더 가까운 위치에서 응답을 제공할 수 있습니다. 해당 방식을 통해 애플리케이션 캐시 및 메모리 캐시는 특정 응답 속도를 높이고 네트워크 트래픽을 최소화하며 시스템의 응답성을 향상시키는 역할을 ..
동시성 제어 방식 알아보기 동시성 제어 방식 알아보기   동시성 문제는 왜 발생하는가?컴퓨터는 마치 여러 가지 일을 동시에 처리하는 것처럼 보이지만, 실제로는 한 번에 하나의 작업씩 순차적으로 처리하고 있습니다. 이 과정에서 동일한 데이터에 대해 여러 트랜잭션이 동시에 접근하거나 수정하려고 시도하면, 데이터의 정합성에 문제가 발생할 수 있습니다. 예를 들어, 두 트랜잭션이 동시에 같은 데이터를 읽고, 각각 수정한 뒤 저장하려고 하면, 한쪽의 수정 내용이 덮어씌워지거나 의도치 않은 값이 저장될 위험이 있습니다. 이러한 동시성 문제는 데이터 일관성을 위협하며 시스템의 안정성과 신뢰성을 저하시킬 수 있습니다.이러한 이슈를 해결하기 위해 낙관적 락, 비관적 락, 레디스 등 다양한 방법으로 동시성을 해결하고 있습니다. 각각의 방법은 장단점..
항해 플러스 백엔드 회고 항해 플러스 백엔드 Chapter2 회고   기존 TDD 방식을 사용하지 않아 어려웠던 1, 2주 차를 넘어 3주 차부터 콘서트 프로젝트를 시작했다.항상 프로젝트를 시작하면서 느끼는 것은 나만의 클린 아키텍처의 기준을 만드는 것이 문제였다. 많은 청강을 들으면서 DIP와 구현 난이도를 조절하여 나만의 기준이 잔뜩 들어간 클린 레이어드 아키텍처의 구성을 만들었다. 개발자들이 생각하는 클린 아키텍처의 구성이 조금씩 다르지만 큰 흐름은 하나를 바라보고 있는 것으로 나의 클린 아키텍처의 구성이 다른 개발자에게 틀린 것이 아니라 다른 것이라고 생각하고 만들었다.항해를 시작하기 전 나는 단순 코드만을 짜면 되는 것 아닌가? 에서 진정한 엔지니어는 아트를 한다는 것을 요즘 많이 느끼고 있다. 도커를 입문하는 동시에 ..
TDD 방법론 알아보기 TDD 방법론 알아보기  TDD란?TDD는 Test-Driven-Develpoment란 말을 줄인 말로 테스트 주도 개발이란 뜻이다. TDD의 기본 방법을 간단히 설명하자면 테스트가 실패한 것을 확인한 후에는 해당 메서드에 코딩을 시작하여 테스트가 기능하도록 만드는 것이다. 한마디로 일부로 실패하여 코드를 계속해서 다듬어 나가는 것이라고 생각한다. Test Fail - Red :구현할 기능에 대한 테스트를 먼저 작성합니다.이때, 테스트는 아직 통과하지 못합니다(코드가 없기 때문)."Red"는 실패 상태를 나타냅니다.Green (코드 작성 및 테스트 통과):테스트가 통과하도록 최소한의 코드를 작성합니다.목표는 테스트를 통과시키는 것이며, 코드의 품질보다는 동작에 집중합니다.Refactor (코드 개선):테..
InteliJ Gradle 버전 오류 회고록 InteliJ Gradle 버전 오류 회고록 회사 PC로 만든 Project를 Git으로 올린 후 개인용 PC에서 추가 개발을 위해  Pull 이후 프로젝트를 즐어가본 결과 다음과 같은 오류가 발생했다.Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM 위 방법을 해결하기 위해 2가지 방법을 시도했다.  1. SDK 버전 변경File -> Project Structure에서 SDK의 버전을 11 -> 17로 변경 (실패 같은 오류 발생)  2. Gradle JVM Version 변경 Setting -> Build, Excution, Deployment -> GradleJvm 11 -> 17 버전으로 변경 결과..
Redis 기초 Redis 기초   Redis란?(Remote Dictionaty Server)Redis는 오픈 소스 인메모리 데이터 구조 저장소로, 주로 데이터베이스, 캐시, 메시지 브로커로 사용됩니다. 성능이 뛰어나고 다양한 데이터 구조를 지원하여 여러 가지 용도로 활용됩니다. Redis는 In-memory Databaes로 Key-Value구성을 가지고 있습니다. 또한 다양한 데이터 구조를 지원합니다.  Redis Opne Sourcehttps://github.com/redis RedisRedis has 42 repositories available. Follow their code on GitHub.github.com  Redis의 특징빠른 반응속도(Milliseconde Response)를 통한 응답높은 가용성..
Spring Bean 알아보기 Spring Bean 알아보기  Spring Bean이란?Bean은 Spring Container에 의해 관리되는 객체로 Spring 애플리케이션의 핵심 구성 요소로 사용된다. Spring Bean을 알아보기 이전에 Bean이 등록되는 Spring Container는 세트라고 생각하고 공부하는 것이 개념이 이어져서 같이 알아보도록 하자 Spring Container란?Spring Container는 생성된 Bean을 가지고 있는 통이라고 생각하면 쉽다. 아래 Container 생성부터 사용되는 방법을 확인해 보자. Spring Container 생성 (Java코드)ApplicationContext applicationContext =new AnnotationConfigApplicationContext(A..