
CAS 기반 동시성 처리
어느 날 자바로 알고리즘 문제를 풀다가 재귀 함수를 구현했는데 스레드가 스택을 타고 올라오자 Integer 값이 되돌아가는 것을 발견했다. 이 현상은 Integer가 불변 객체라서 발생한다. public void modify(Integer num) { num = num + 1; // 또는 num++; System.out.println...

어느 날 자바로 알고리즘 문제를 풀다가 재귀 함수를 구현했는데 스레드가 스택을 타고 올라오자 Integer 값이 되돌아가는 것을 발견했다. 이 현상은 Integer가 불변 객체라서 발생한다. public void modify(Integer num) { num = num + 1; // 또는 num++; System.out.println...

AI Agent를 어떻게 사용하는게 “잘 쓰는” 걸까? 내가 최근에 갖는 고민이다. 답을 찾으려고 AI TOP 100 대회의 8문제를 풀었다. 결과는 이렇다 60점 → 80점 → 40점 → 50점 → 81점 → 56점 → 79점 → 92점 각 점수를 100점 만점 비율로 계산한 결과 처음엔 CLAUDE.md를 더 정교하게 쓸수록 점수가...

이전 글에서 세션 경계 문제를 해결하는 방법을 이야기했다. 그런데 곧 다른 병목을 마주했다. 그건 컨텍스트 윈도우에 여유가 남아 있는데도 에이전트가 흐려지는 현상이었다. 이전에 명시했던 규칙을 30분 뒤에 무시하고, 도구를 늘렸더니 답이 더 두루뭉술해지고, 같은 질문에 두 번째 답이 첫 번째보다 흐려졌다. Anthropic은 이 현상을 컨텍스트 부패...

AI 코딩 에이전트에게 “이 기능 만들어줘”라고 던져놓고, 한 시간 뒤에 돌아와서 결과물을 보다가 머리를 짚어본 적이 있을 것이다. “어딘가 중간부터 길을 잃었다…” 는 생각이 뇌를 지배한다. 화면에는 절반쯤 고친 코드, 절반쯤 만든 테스트, 그리고 무엇보다 그 다음에 뭘 해야 하는지 모르는 상태가 있다. 이런 현상은 에이전트와의 대화가 길어졌을 때 ...
스프링이 지원하는 웹 프레임워크는 두 가지이다. 바로 이 글의 타이틀인 WebMVC와 WebFlux가 그 프레임워크인데, 이렇게 스프링이 두 가지 웹 프레임워크를 지원하는 이유는 각각 서로 다른 아키텍처 패러다임에 최적화되어 있기 때문이다. 처음부터 두 프레임워크가 함께 존재했던 것은 아니다. WebMVC가 먼저 등장했고, 시간이 흐르면서 WebFl...
MongoDB는 ‘MongoDB는 대용량 데이터 처리에 적합하다.’라고 표현되며 설명되곤 한다. RDBMS와 어떤 차이점이 있길래 그런 수식어가 붙는걸까? 궁금증에 그런 이유들을 알아보기 위해 서칭해보면 “스키마가 유연하다”, “대규모 분산 데이터를 효율적으로 처리할 수 있는 구조이다” 등등 그 이유에 관련된 키워드가 나오지만, 그래서 왜 더 뛰어난...
애플리케이션이 동작하기 위한 일련의 data interaction을 위해선 data store가 필요하다. 그리고 data store에 어떻게 interaction을 할 것인지는 애플리케이션의 전반적인 동작에 큰 영향을 준다. 이번 포스팅에선 수많은 data store 중에 “RDBMS” 카테고리에 속하는 database와 비동기적으로 상호작용하는 A...
이번 포스팅에선 Dev Club 에서 참여한 알고리즘 스터디에서 함께 공부 했던 알고리즘 중, 이진 탐색에 대한 내용을 설명한다. 이 스터디는 코딩 테스트에서 일가견이 있으신 Jason 멘토님과 함께 했다. 멘토님께선 초등학교 때부터 알고리즘 문제를 취미로 푸셨고, 커리어에서 많은 코딩 테스트 경험, 라이브 코딩 테스트 경험을 가지고 계신 분이시다...
지난 3월 19일, 같은 직군의 개발자들과 네트워킹을 할 수 있는 ‘Connecting the Dots’ 행사에 참여했다. 행사의 타이틀인 ‘Connecting the Dots’는 스티브 잡스가 Stanford 대학교에서 발표했던 연설의 내용으로, 우리의 인생에 있어서 처음에는 관련성이 없는 일들이 시간이 지나면서 하나의 연장선상에 있는 일들처럼 연...
이번 포스팅은 인덱스 설계에 필요한 밑바탕 지식을 습득하는 걸 목적으로 한다. 이 글에서 별도로 RDBMS를 통틀어 지칭하거나 특정 RDBMS 종류를 언급하지 않으면 모두 MySQL를 지칭하는 것이라 생각하면 된다. 1. 인덱스를 사용해야 하는 이유 RDBMS는 데이터를 저장하고 조회하기 위해 사용하는 소프트웨어이다. 이런 RDBMS는 쇼핑몰이나 ...