Study
-
👀 들어가기 전에Spring을 공부하다 보면 Bean 등록 방식에서 한 번쯤 헷갈리는 지점이 있습니다.@Component를 붙이면 Bean으로 등록됩니다.그런데 @Configuration도 내부적으로 @Component를 포함하고 있습니다. 그렇다면 이런 의문이 생깁니다.“어차피 둘 다 Bean으로 등록되는 거면, @Configuration과 @Component는 같은 거 아닌가?” 결론부터 말하면 둘 다 Spring Bean으로 등록될 수 있지만 목적이 다릅니다.@Component는 일반 클래스를 Bean으로 등록하기 위한 어노테이션이고,@Configuration은 Bean 등록 설정을 담당하는 클래스임을 나타내는 어노테이션입니다. Spring 공식 문서에서도 @Configuration은 하나 이상..
[CS Study] @Configuration과 @Component는 뭐가 다를까?👀 들어가기 전에Spring을 공부하다 보면 Bean 등록 방식에서 한 번쯤 헷갈리는 지점이 있습니다.@Component를 붙이면 Bean으로 등록됩니다.그런데 @Configuration도 내부적으로 @Component를 포함하고 있습니다. 그렇다면 이런 의문이 생깁니다.“어차피 둘 다 Bean으로 등록되는 거면, @Configuration과 @Component는 같은 거 아닌가?” 결론부터 말하면 둘 다 Spring Bean으로 등록될 수 있지만 목적이 다릅니다.@Component는 일반 클래스를 Bean으로 등록하기 위한 어노테이션이고,@Configuration은 Bean 등록 설정을 담당하는 클래스임을 나타내는 어노테이션입니다. Spring 공식 문서에서도 @Configuration은 하나 이상..
2026.06.07 -
👀 들어가기 전에네트워크 통신은 비싼 작업이다. 라는 말 한 번즘은 들어보셨을 것이라 생각됩니다.이에 저는이게 개발하는 것과 어떻게 관련되어있는지왜 이 네트워크 통신 비용을 생각해야하는지 라는 의문이 들었습니다. 처음에는 이 네트워크 통신이 비싼 작업이라는 말이 굉장히 추상적으로 들렸습니다.서버에서 API를 호출하는 것도 결국 코드 한 줄이고,DB에 데이터를 저장하는 것도 Repository 메서드 하나를 호출하는 것처럼 보이기 때문입니다. 하지만 실제 성능 문제를 마주하게 되면서 깨닫게 되었습니다. 반복문 안에서 외부 API를 계속 호출하거나, DB에 데이터를 한 건씩 Insert하거나,이미지와 JSON 응답 크기가 커질 때 순간 응답 시간이 눈에 띄게 느려지는 경우가 발생합니다.네트워크 통신에는 물..
[CS Study] 네트워크 통신은 왜 비싸다고 하는 것일까? 이게 개발과 무슨 관련일까?👀 들어가기 전에네트워크 통신은 비싼 작업이다. 라는 말 한 번즘은 들어보셨을 것이라 생각됩니다.이에 저는이게 개발하는 것과 어떻게 관련되어있는지왜 이 네트워크 통신 비용을 생각해야하는지 라는 의문이 들었습니다. 처음에는 이 네트워크 통신이 비싼 작업이라는 말이 굉장히 추상적으로 들렸습니다.서버에서 API를 호출하는 것도 결국 코드 한 줄이고,DB에 데이터를 저장하는 것도 Repository 메서드 하나를 호출하는 것처럼 보이기 때문입니다. 하지만 실제 성능 문제를 마주하게 되면서 깨닫게 되었습니다. 반복문 안에서 외부 API를 계속 호출하거나, DB에 데이터를 한 건씩 Insert하거나,이미지와 JSON 응답 크기가 커질 때 순간 응답 시간이 눈에 띄게 느려지는 경우가 발생합니다.네트워크 통신에는 물..
2026.05.29 -
👀 들어가기 전에요즘 AI 코딩 에이전트가 주목을 받고 있습니다.GPT나 Claude 같은 대형 LLM은 사람 대신 코드를 쓰거나 문서를 정리하지만아무런 Harness없이 모델만 덩그러니 놓으면 제대로 일을 못하는 모습을 확인할 수 있습니다. Harness는 모델이 주어진 작업을 안전하고 효율적으로 수행하도록 돕는 도구, 규칙, 실행 환경의 집합입니다. 많은 프로젝트에서 에이전트의 행동을 설명하는 AGENTS.md, 개별 기능을 정의하는 SKILL.md와 같은 파일을 함께 관맇바니다.이 글에서는 좋은 에이전트와 하네스 설계란 어떤 것인지를 알아보려고 합니다.👀 본문 1. 하네스 엔지니어링이란? Harness Engineeering의 사전적 정의는 아래와 같습니다. Harness : 마구 (말을 타거나..
[CS Study] Claude Code & Codex with Harness Engineering👀 들어가기 전에요즘 AI 코딩 에이전트가 주목을 받고 있습니다.GPT나 Claude 같은 대형 LLM은 사람 대신 코드를 쓰거나 문서를 정리하지만아무런 Harness없이 모델만 덩그러니 놓으면 제대로 일을 못하는 모습을 확인할 수 있습니다. Harness는 모델이 주어진 작업을 안전하고 효율적으로 수행하도록 돕는 도구, 규칙, 실행 환경의 집합입니다. 많은 프로젝트에서 에이전트의 행동을 설명하는 AGENTS.md, 개별 기능을 정의하는 SKILL.md와 같은 파일을 함께 관맇바니다.이 글에서는 좋은 에이전트와 하네스 설계란 어떤 것인지를 알아보려고 합니다.👀 본문 1. 하네스 엔지니어링이란? Harness Engineeering의 사전적 정의는 아래와 같습니다. Harness : 마구 (말을 타거나..
2026.05.11 -
👀 들어가기 전에...많은 회사의 채용공고에서 기술 스택을 살펴보다 보면, 매번 빠지지 않고 등장하는 것이 있습니다. 바로 Kafka입니다. 이번 글에서는 메시지 브로커가 무엇인지부터 시작해, RabbitMQ와는 어떻게 다른지,그리고 우아한 형제들이나 토스 같은 실제 서비스에서는 Kafka를 어떻게 활용하고 있는지까지 차근차근 알아보겠습니다."왜 다들 Kafka, Kafka 하는 걸까?" 라는 질문에 스스로 답을 찾아볼 수 있는 시간이 되었으면 합니다.👀 본론1. Message Broker란?Kafka 이야기를 하기 전에 먼저 짚고 넘어가야 할 개념이 있다. 바로 메시지 브로커입니다.Message Broker는 Publisher로부터 전달받은 메시지를 Subscriber로 전달해주는 중간 역할이며, ..
[CS Study] Kafka, 들어는 봤지만 잘 모르는 그거...👀 들어가기 전에...많은 회사의 채용공고에서 기술 스택을 살펴보다 보면, 매번 빠지지 않고 등장하는 것이 있습니다. 바로 Kafka입니다. 이번 글에서는 메시지 브로커가 무엇인지부터 시작해, RabbitMQ와는 어떻게 다른지,그리고 우아한 형제들이나 토스 같은 실제 서비스에서는 Kafka를 어떻게 활용하고 있는지까지 차근차근 알아보겠습니다."왜 다들 Kafka, Kafka 하는 걸까?" 라는 질문에 스스로 답을 찾아볼 수 있는 시간이 되었으면 합니다.👀 본론1. Message Broker란?Kafka 이야기를 하기 전에 먼저 짚고 넘어가야 할 개념이 있다. 바로 메시지 브로커입니다.Message Broker는 Publisher로부터 전달받은 메시지를 Subscriber로 전달해주는 중간 역할이며, ..
2026.04.25 -
👀 들어가기 전에도커를 처음 배울 때 대부분은 이렇게 생각하기 쉽습니다.작은 리눅스를 띄우는 거구나 그리고 쿠버네티스를 접하면도커를 여러 개 관리해주는 도구구나 정도로 정리하게 됩니다.틀린 말은 아니지만 이정도의 이해로는 네트워크의 문제가 생겼을 때,혹은 Pod간 통신이 안될 때, 정확한 원인을 짚어내기 어려울 것으로 생각되어집니다. 이 글을 쓰게 된 이유는 단순합니다.컨테이너 기술을 쓰면서도 "왜 이렇게 동작하는가"에 대한 명확한 답을 모르고 있었고,결국 문서를 복붙하는 수준에 머물러있다고 느꼈기 때문입니다. 그래서 이 글에서는 컨테이너의 본질인 리눅스 네임스페이스부터 시작해서 Docker가 그 위에서 무엇을 추상화했는지,그리고 Kubernetes가 왜 필요해졌는지를 기술적으로 깊이있게 다뤄보려고 ..
(CS Study) Docker 컨테이너 부터 Kubernetes까지 (feat. namespace가 바꾼 세상)👀 들어가기 전에도커를 처음 배울 때 대부분은 이렇게 생각하기 쉽습니다.작은 리눅스를 띄우는 거구나 그리고 쿠버네티스를 접하면도커를 여러 개 관리해주는 도구구나 정도로 정리하게 됩니다.틀린 말은 아니지만 이정도의 이해로는 네트워크의 문제가 생겼을 때,혹은 Pod간 통신이 안될 때, 정확한 원인을 짚어내기 어려울 것으로 생각되어집니다. 이 글을 쓰게 된 이유는 단순합니다.컨테이너 기술을 쓰면서도 "왜 이렇게 동작하는가"에 대한 명확한 답을 모르고 있었고,결국 문서를 복붙하는 수준에 머물러있다고 느꼈기 때문입니다. 그래서 이 글에서는 컨테이너의 본질인 리눅스 네임스페이스부터 시작해서 Docker가 그 위에서 무엇을 추상화했는지,그리고 Kubernetes가 왜 필요해졌는지를 기술적으로 깊이있게 다뤄보려고 ..
2026.04.18 -
👀 들어가기 전에Redis를 여태 한 번도 사용해본 적이 없는 형태, Pub/Sub에 대해 이해해보려 합니다.항상 '채팅 기능 구현시 Redis의 Pub/Sub을 사용하면 고부하 환경에서도 실시간성을 보장할 수 있다. '라고만 들어왔지,정확하게 왜 그런지, 어떤 부분이 장점이고 어떤 부분이 단점인지까지 고민해보는 시간이 없었습니다. 그렇기에 이 글에서는 Redis Pub/Sub에 집중하여 이해해보는 시간을 갖도록 하겠습니다.기술 선택의 폭과 판단력을 기르기 위해 기술적 선택지를 넓혀가는 시간을 가져보도록 하겠습니다.👀 본론1. Pub/Sub이란 무엇인가 : Redis에서의 위치Pub/Sub은 Publisher(발행자)와 Subscriber(구독자)의 약자로 발행, 구독 패턴을 의미합니다.발행자가 특정..
(CS Study) Redis를 메시지 브로커로 : Pub/Sub 가이드👀 들어가기 전에Redis를 여태 한 번도 사용해본 적이 없는 형태, Pub/Sub에 대해 이해해보려 합니다.항상 '채팅 기능 구현시 Redis의 Pub/Sub을 사용하면 고부하 환경에서도 실시간성을 보장할 수 있다. '라고만 들어왔지,정확하게 왜 그런지, 어떤 부분이 장점이고 어떤 부분이 단점인지까지 고민해보는 시간이 없었습니다. 그렇기에 이 글에서는 Redis Pub/Sub에 집중하여 이해해보는 시간을 갖도록 하겠습니다.기술 선택의 폭과 판단력을 기르기 위해 기술적 선택지를 넓혀가는 시간을 가져보도록 하겠습니다.👀 본론1. Pub/Sub이란 무엇인가 : Redis에서의 위치Pub/Sub은 Publisher(발행자)와 Subscriber(구독자)의 약자로 발행, 구독 패턴을 의미합니다.발행자가 특정..
2026.04.15 -
👀 들어가기 전에Redis를 단순 캐시로만 사용할 때는 사실 데이터가 날아가도 큰 문제가 없습니다. 하지만, 세션, 장바구니, 게임 진행 상태, 재고 상태 처럼 비즈니스에 중요한 데이터를 Redis에 보관하는 순간부터는 날아가는 순간, 큰일납니다. 서버가 재시작 되거나, 전원이 꺼진다면? 데이터가 모두 증발해버립니다. 또한 수백만 개의 키가 쌓인 운영환경에서 특정 키를 조회하겠다고 잘못된 명령 하나를 실행했다가서비스 전체가 멈추는 장애로 이어질 수도 있습니다. (실제 아래 쿠팡 사례, 카카오 기사 참조)https://zdnet.co.kr/view/?no=20131119174125 카카오 "레디스, 잘못쓰면 망한다"국민메신저 카카오톡 개발 업체인 카카오가 웹애플리케이션 서비스를 만드는 개발자들을 대상으로..
(CS Study) Redis의 핵심 - Key 관리 기법과 영속성👀 들어가기 전에Redis를 단순 캐시로만 사용할 때는 사실 데이터가 날아가도 큰 문제가 없습니다. 하지만, 세션, 장바구니, 게임 진행 상태, 재고 상태 처럼 비즈니스에 중요한 데이터를 Redis에 보관하는 순간부터는 날아가는 순간, 큰일납니다. 서버가 재시작 되거나, 전원이 꺼진다면? 데이터가 모두 증발해버립니다. 또한 수백만 개의 키가 쌓인 운영환경에서 특정 키를 조회하겠다고 잘못된 명령 하나를 실행했다가서비스 전체가 멈추는 장애로 이어질 수도 있습니다. (실제 아래 쿠팡 사례, 카카오 기사 참조)https://zdnet.co.kr/view/?no=20131119174125 카카오 "레디스, 잘못쓰면 망한다"국민메신저 카카오톡 개발 업체인 카카오가 웹애플리케이션 서비스를 만드는 개발자들을 대상으로..
2026.04.10 -
👀 들어가기 전에Redis를 처음 접하고 무작정 String형 자료구조만 써본 상태에서 조금 더 깊게 알아보고 싶다라는 마음으로 여태 기본 자료구조 String, List를 봐왔습니다. 이제 마지막으로 남은 기본 자료구조인 Set과 Hash에 대해서 알아보고 Redis 기본 자료구조 파헤치기를 마무리하려고 합니다. 이번 글에서는 Redis의 Set과 Hash 자료구조를 내부 인코딩 방식부터 주요 명령어의 시간복잡도, 실무 활용 관점까지 기술적으로 깊이있게 정리해보겠습니다.👀 본론1. Redis Set1) Set의 핵심 특성Redis의 Set은 중복되지 않는 문자열 값의 집합입니다.Java의 Set 인터페이스와 동일한 개념으로 같은 값을 여러 번 추가하려 해도 Set에는 한 번만 저장됩니다. Set을 ..
(CS Study) Redis 기본 자료구조 깊게 파헤치기 - Set & Hash (마지막)👀 들어가기 전에Redis를 처음 접하고 무작정 String형 자료구조만 써본 상태에서 조금 더 깊게 알아보고 싶다라는 마음으로 여태 기본 자료구조 String, List를 봐왔습니다. 이제 마지막으로 남은 기본 자료구조인 Set과 Hash에 대해서 알아보고 Redis 기본 자료구조 파헤치기를 마무리하려고 합니다. 이번 글에서는 Redis의 Set과 Hash 자료구조를 내부 인코딩 방식부터 주요 명령어의 시간복잡도, 실무 활용 관점까지 기술적으로 깊이있게 정리해보겠습니다.👀 본론1. Redis Set1) Set의 핵심 특성Redis의 Set은 중복되지 않는 문자열 값의 집합입니다.Java의 Set 인터페이스와 동일한 개념으로 같은 값을 여러 번 추가하려 해도 Set에는 한 번만 저장됩니다. Set을 ..
2026.04.10