본문 바로가기

반응형

분류 전체보기

(19)
[Kafka] Kafka 아키텍쳐 정리와 공부 기록 최근엔 공부와 프로젝트에 집중하면서 개발자로서 성장해 나가고 있지만, 취업 준비 과정이 생각보다 쉽지 않아 솔직히 내가 정말 개발과 맞는 걸까? 하는 회의감도 들었습니다. 열심히 준비해도 원하는 결과가 바로 나오지 않으니 조금은 지치고 흔들리기도 했습니다 🥲하지만 지금은 다시 마음을 다잡고 꾸준히 실력을 쌓고 경험을 늘리는게 언젠가 올 기회를 잡기 위한 연습이라고 생각합니다.이번 Kafka 공부와 정리를 시작으로 계속해서 내 성장 기록을 남기며, 저와 같은 길을 걷는 분들에게 힘을주고 싶고개발자로서 내가 가는 길에 대해 다시 한 번 자신감을 갖고 나아가 보겠습니다 🙇‍♂️ Kafka가 뭔데?Apache Kafka는 이벤트 스트리밍 플랫폼으로 다양한 시스템에서 발생하는 이벤트 데이터를 실시간으로 수집..
GitHub 오픈소스 기여, 처음부터 끝까지 해본 경험 며칠 전, 제가 만든 첫 PR이 오픈소스 프로젝트에 머지되었습니다.사소한 코드 수정이었지만, 제 깃허브 히스토리에 남은 그 '첫 커밋'은 제게 꽤 의미 있었습니다.처음이라 낯설고 어렵게만 느껴졌던 오픈소스 기여, 어떻게 시작했고 어떤 과정을 거쳤는지 기록해봅니다. 오픈 소스 기여, 왜 시작했을까 ?솔직히 말하면, 딱히 세상을 구하겠다는 원대한 꿈에서 시작한건 아니었습니다.취업 준비를 하면서 제 잔디밭에 열심히 잔디를 심다 보니, 문득 다른 잔디밭은 어떻게 생겼는지 궁금해지더라고요.그렇게 관심은 자연스럽게 오픈소스라는 거대한 잔디밭으로 옮겨갔습니다하지만 막상 그 잔디밭을 구경하고, 거기에 물을 주려니 이런 생각이 들었습니다.도대체 어디서부터 어떻게 시작해야 하지? 그래서 직접 방법을 찾아보기로 했습니..
Spring 빈 후처리기(BeanPostProcessor)? 이번 글에서는 빈 후처리기(BeanPostProcessor)가 빈 생명주기 사이에서 어떤 역할을 수행하는지, 그리고 스프링 AOP의 핵심 기능인 자동 프록시 생성기가 어떻게 동작하는지를 정리해 보려 합니다. 빈 후처리기(BeanPostProcessor)?스프링이 빈 저장소에 등록할 목적으로 생성한 객체를 빈 저장소에 등록하기 직전에 조작하고 싶을 경우, 빈 후처리기를 사용하면 된다. 1. 일반적인 스프링 빈 등록 과정@Bean또는 컴포넌트 스캔으로 스프링빈을 등록하면, 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록그리고 그 이후에 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용하면 된다. 2. 빈 후처리기 과정과정 - 1일반적인 빈 등록 과정에서 스프링 빈 저장소에..
Spring AOP의 시작, ProxyFactory 이해하기 Spring AOP를 공부하다 보면 ProxyFactory라는 개념을 접하게 됩니다. 처음에는 다소 생소할 수 있지만, 프록시의 생성 과정을 직접 다뤄볼 수 있기 때문에 AOP의 내부 동작 원리를 이해하는 데 도움이 됩니다.실제로 요즘 Spring Boot 기반의 실무 개발에서는 @Aspect 기반의 선언적 AOP를 선호하고 사용하지만, 이면엔 ProxyFactory가 프록시 생성을 담당하는 도구로 활용되고 있습니다.따라서 이번 글에서는 ProxyFactory의 역할과 동작을 간단하게 정리해보려고 합니다. 프록시 팩토리(Proxy Factory)란?ProxyFactory는 Spring AOP에서 프록시 객체를 생성하기 위한 핵심 클래스입니다.AOP(관점 지향 프로그래밍)에서는 핵심 기능 외에 부가 기능(..
JDK 동적 프록시, CGLIB Spring 프레임워크를 사용하면서 @Transactional, @Async 과 같은 기능들을 자주 접하게 됩니다. 이런 기능들은 개발자가 직접 작성한 코드 바깥에서 실행되는 부가 기능을 자동으로 적용해주는 역할을 하고 개발자가 개발에만 집중 할 수 있게 도와준다.그런데 이게 어떻게 가능한 걸까?그 핵심에는 프록시(Proxy) 라는 기술이 있다. Spring은 개발자가 작성한 원본 객체를 직접 사용하는 것이 아니라, 그 객체를 감싸는 프록시 객체를 만들어서 그 안에 부가기능을 끼워 넣는 방식으로 동작합니다.이때 Spring이 사용하는 두 가지 대표적인 프록시 기술이 바로 JDK 동적프록시, CGLIB(Code Generation Library) 입니다.오늘은 이 2가지 기술에 대해서 간단하게 정리해보겠습..
리플렉션을 쓰기 전에 생각해야 하는 것들 Spring을 공부하면서 자주 마주치는 개념 중 하나가 바로 리플렉션 입니다.그동안 "클래스 정보를 다룰 수 있다"는 정도로만 알고 있었지만, 실제로 어떤 기능을 하고 어떻게 활용되는지는 다소 추상적으로 느껴졌습니다. 이번 기회에 리플렉션에 개념을 보다 명확하게 정리하고, Spring 내부에서 어떻게 사용되는지를 이해해보기 위해 이 글을 작성하게 됬습니다. 리플렉션 (Reflection)?자바 프로그램이 실행 중에 클래스의 메타정보(클래스 이름, 필드, 메서드 등)를 조회하고,심지어 수정하거나 호출까지 할 수 있는 기능을 말합니다.즉, 컴파일 타임이 아닌 런타임에 어떤 객체의 구조를 알 수 있고, 해당 객체에 동적으로 접근하거나 조작할 수 있습니다. 리플렉션으로 할 수 있는 일들리플렉션은 클..
객체에 기능을 동적으로 추가하는 방법: 데코레이터 패턴 프록시 패턴과 구조적으로 유사한 디자인 패턴들이 존재하며, 이들은 의도에 따라 서로 구분되기도 합니다. 예를 들어, 프록시 패턴은 접근 제어나 로깅과 같은 제어 책임을 추가하는 데 목적이 있는 반면, 데코레이터 패턴은 기능을 유연하게 확장하는 데 그 목적이 있습니다. 이번 글에서는 이러한 의도 차이를 바탕으로 데코레이터 패턴(Decorator Pattern)에 대해 정리해 보겠습니다. 데코레이터 패턴 ( Decorator Pattern )객체 지향 프로그래밍 에서 데코레이터 패턴은 같은 클래스의 다른 인스턴스의 동작에 영향을 주지 않고 개별 객체에 동적으로 동작을 추가할 수 있게 해주는 디자인 패턴입니다.이 패턴은 기능을 고유한 관심 영역을 가진 클래스 간에 나눌 수 있으므로 단일 책임 원칙을 준수..
Spring AOP를 이해하기 전 : 프록시 패턴 Spring AOP의 동작 원리를 깊이 있게 이해하려고 공부하던 중, 빠지지 않고 등장하는 개념이 바로 프록시 였습니다. AOP는 내부적으로 프록시 객체를 생성해 핵심 기능 앞뒤에 부가적인 기능을 끼워넣는 방식으로 동작하는데, 이 구조를 명확히 이해하려면 Proxy 패턴에 대한 기본적인 이해가 필수라고 생각해 프록시 패턴에 대해 정리해 보려고 합니다. 프록시 패턴 ( Proxy Pattern )프록시?사전적으로 Proxy는 "대리, 대리인, 대용물"등의 뜻을 가지고 있습니다.프록시 패턴프록시 패턴은 영어단어 에서 유추할 수 있듯이 어떤 객체에 대한 접근을 제어하기 위해 대리 객체(Proxy)를 사용하는 구조를 말합니다. 즉 실체 객체를 직접 사용하지 않고 그 앞단에 프록시를 두어 접근을 제어하거나 기..

반응형