반응형

전체 글 738

Codex 데이터로 본 Agentic AI 변화

AI 도구를 이야기할 때 우리는 오랫동안 “질문하면 답해주는 챗봇”을 떠올렸습니다.하지만 최근 변화의 중심은 답변 생성이 아니라, 사용자가 맡긴 작업을 여러 단계로 나누고, 도구를 호출하고, 결과를 반복해서 만들어내는 agentic workflow입니다.OpenAI는 2026년 6월 25일 Codex 사용 데이터를 분석한 Economic Research 글과 논문을 공개했습니다.2026년 7월 1일 현재 기준으로 보면, 이 자료는 agentic AI가 개발자 도구를 넘어 지식 노동 전반의 작업 방식으로 확장되는 흐름을 보여주는 중요한 신호입니다. 이번 뉴스의 핵심은 AI가 더 긴 답변을 쓰게 됐다는 것이 아니라, 사람이 하던 작업 단위가 “대화”에서 “위임 가능한 업무”로 바뀌고 있다는 점입니다. 이번 ..

IT News 2026.07.01

TCP 3-way handshake 쉽게 이해하기

웹 페이지가 열리고, 앱이 API를 호출하고, 서버가 DB에 연결하는 과정 뒤에는 대부분 TCP connection이 있습니다.개발자는 보통 HTTP 요청, SQL Query, socket read/write 같은 application level을 먼저 보지만, 실제 통신이 시작되기 전에는 TCP 3-way handshake가 먼저 일어납니다.그리고 통신이 끝난 뒤에도 connection은 바로 사라지지 않고 TIME_WAIT 같은 상태로 잠시 남을 수 있습니다. TCP 3-way handshake는 양쪽이 통신 가능한 상태인지 확인하고, TIME_WAIT은 닫힌 connection 주변의 늦은 packet을 안전하게 정리하기 위한 상태입니다. 이번 글에서는 TCP connection이 어떻게 만들어지는..

CS 2026.06.30

C++ optional, 언제 쓰고 언제 피할까

실무 C++ 코드를 작성하다 보면 “값이 없을 수도 있음”을 표현해야 하는 순간이 자주 나옵니다.검색 결과가 없을 수도 있고, 설정 파일에 값이 없을 수도 있고, 문자열 파싱이 실패할 수도 있습니다.이때 -1, 빈 문자열, nullptr 같은 값으로 없는 상태를 대신 표현하면 코드가 점점 애매해집니다. std::optional은 값이 있을 수도 있고 없을 수도 있다는 의도를 타입으로 표현하는 C++17 도구입니다. 이번 글에서는 std::optional이 왜 필요한지, sentinel value와 무엇이 다른지, 그리고 실무에서 어떤 기준으로 사용하면 좋은지 코드 예제로 정리해보겠습니다. std::optional은 값이 있는 상태와 비어 있는 상태를 하나의 타입 안에서 명확히 표현합니다. 1. std::..

C++/Concepts 2026.06.29

Decorator Pattern 쉽게 이해하기

디자인 패턴을 공부하다 보면 상속으로 기능을 계속 늘리는 방식이 금방 복잡해진다는 것을 만나게 됩니다.기본 객체는 그대로 두고, 필요한 기능만 런타임에 하나씩 덧붙이고 싶을 때가 있습니다.이때 사용할 수 있는 대표적인 구조가 Decorator Pattern입니다. Decorator Pattern은 객체를 감싸는 wrapper를 여러 겹 쌓아, 기존 객체를 수정하지 않고 기능을 동적으로 확장하는 패턴입니다. 이번 글에서는 Decorator Pattern이 왜 필요한지, C++에서는 어떻게 구현할 수 있는지, 그리고 실무에서 어떤 상황에 적합한지 정리해보겠습니다. Decorator Pattern은 핵심 객체를 여러 wrapper로 감싸면서 기능을 단계적으로 추가합니다. 1. Decorator Pattern은..

DB 인덱스가 있는데도 쿼리가 느린 이유

DB Index를 처음 배우면 이런 생각을 하기 쉽습니다.“Index를 만들었으니 이 Query는 빨라질 것이다.”하지만 실무에서는 Index가 있는데도 Query가 느린 경우를 자주 만납니다.이때 문제를 제대로 보려면 Index 존재 여부가 아니라, Optimizer가 실제로 어떤 Execution plan을 선택했는지를 확인해야 합니다. Index는 “만들면 무조건 쓰이는 장치”가 아니라, Optimizer가 Cost를 계산해 선택할 수도 있고 선택하지 않을 수도 있는 Access path입니다. 이번 글에서는 DB Index가 있어도 Query가 느려지는 이유를 Selectivity, Composite index, 함수로 감싼 컬럼, Execution plan 관점에서 정리해보겠습니다. Ind..

CS 2026.06.26

std::vector와 std::list의 차이 제대로 이해하기

C++ 컨테이너를 공부하면 흔히 이런 기준을 먼저 외우게 됩니다.“중간 삽입과 삭제가 많으면 std::list, 빠른 인덱스 접근이 필요하면 std::vector를 사용한다.”복잡도 표만 보면 맞는 말처럼 보이지만, 실무에서 컨테이너를 고를 때는 이것만으로 부족합니다.메모리 배치, 캐시 지역성, 탐색 비용, iterator 안정성까지 함께 봐야 실제 성능과 코드 구조를 판단할 수 있습니다. 중간 삽입이 O(1)이라는 이유만으로 list를 선택하면 안 됩니다. 삽입 위치를 찾는 비용과 메모리 접근 비용까지 포함해 판단해야 합니다. 이번 글에서는 std::vector와 std::list의 차이를 코드로 비교하고, 대부분의 상황에서 vector가 기본 선택인 이유와 list가 필요한 조건을 정리해보겠습니다. ..

C++ 2026.06.25

Apple이 공개한 AI 중심 개발 환경의 변화

코드 자동완성에서 시작한 AI 개발 도구가 이제 IDE 안에서 계획을 세우고, 파일을 수정하고, 테스트와 시뮬레이터까지 다루는 단계로 이동하고 있습니다.Apple은 2026년 6월 8일 WWDC26에서 Xcode 27과 새로운 intelligence framework를 발표했습니다.이 발표에서 눈에 띄는 변화는 특정 AI 모델 하나가 추가된 것이 아니라, IDE 자체가 여러 에이전트와 외부 도구를 연결하는 작업 환경으로 확장됐다는 점입니다. Xcode 27의 핵심 변화는 AI가 코드를 제안하는 수준을 넘어, 개발·검증 도구를 직접 사용하는 에이전트 워크플로우가 IDE 안으로 들어왔다는 것입니다. 이번 글에서는 Apple의 공식 발표를 기준으로 Xcode 27에 무엇이 추가됐는지, 모바일 앱 개발자의 작업..

IT News 2026.06.24

Race condition이란? 동시성 버그와 임계 구역 이해하기

멀티스레드와 운영체제를 공부하다 보면 race condition이라는 표현을 자주 만나게 됩니다.한국어로는 보통 경쟁 상태라고 부릅니다.말 그대로 여러 실행 흐름이 같은 데이터나 자원을 두고 경쟁하면서, 실행 순서에 따라 결과가 달라지는 문제입니다.프로세스와 스레드, 데드락을 이해했다면 그다음으로 반드시 짚고 넘어가야 하는 동시성 개념입니다. Race condition은 여러 작업이 공유 자원에 동시에 접근하고, 그 접근 순서가 결과를 바꿀 때 발생하는 동시성 버그입니다. 이번 글에서는 race condition이 무엇인지, 왜 재현하기 어려운지, C++ 코드와 DB 예시에서는 어떻게 나타나는지, 실무에서는 어떤 기준으로 예방해야 하는지 정리해보겠습니다. 1. Race condition은 무엇인가?Rac..

CS 2026.06.23

std::shared_ptr과 std::weak_ptr 제대로 이해하기

C++에서 스마트 포인터를 공부하다 보면 std::unique_ptr 다음으로 std::shared_ptr을 만나게 됩니다.이름만 보면 여러 곳에서 함께 쓰기 좋은 포인터처럼 보입니다.하지만 shared_ptr은 단순히 “복사 가능한 스마트 포인터”가 아닙니다.shared_ptr은 하나의 객체를 여러 소유자가 함께 책임지는 구조를 표현합니다. shared_ptr은 공유 소유권을 표현하는 도구이고, weak_ptr은 그 소유권에 참여하지 않고 객체를 관찰하는 도구입니다. 이번 글에서는 std::shared_ptr이 어떤 방식으로 객체 수명을 관리하는지, 왜 순환 참조가 문제가 되는지, 그리고 std::weak_ptr을 언제 사용해야 하는지 코드 예제로 정리해보겠습니다. 1. shared_ptr은 무엇인가?..

C++/Concepts 2026.06.22

옵저버 패턴 쉽게 이해하기

디자인 패턴을 공부하다 보면 전략 패턴과 함께 자주 등장하는 패턴이 옵저버 패턴입니다.옵저버 패턴은 어떤 객체의 상태가 바뀌었을 때, 그 객체를 지켜보는 여러 객체에게 자동으로 알림을 보내는 구조입니다.이벤트 처리, UI 갱신, 알림 시스템, 데이터 변경 통지, 게임 오브젝트 이벤트 등 다양한 곳에서 사용됩니다. 옵저버 패턴은 한 객체의 변경을 여러 객체에게 느슨하게 전달하기 위한 디자인 패턴입니다. 이번 글에서는 옵저버 패턴이 왜 필요한지, C++에서는 어떻게 구현할 수 있는지, 그리고 실무에서 어떤 점을 조심해야 하는지 정리해보겠습니다. 1. 옵저버 패턴은 무엇인가?옵저버 패턴은 Observer Pattern이라고 부릅니다.어떤 객체의 상태가 변하면, 그 객체에 등록된 여러 관찰자에게 변경 사실을 알..

반응형