AI 에이전트 시대의 개발 방식 변화와 Harness Engineering
·
기술 트렌드
참고한 글OpenAI 공식 글: 하네스 엔지니어링: 에이전트 우선 세계에서 Codex 활용하기https://openai.com/ko-KR/index/harness-engineering/들어가며최근 AWS Summit 행사에 다녀온 이후 AI 에이전트를 활용한 개발 방식에 대해 관심이 많아졌다.행사에서도 Cursor, Codex, AI Agent, 바이브 코딩 같은 이야기가 굉장히 많이 나왔는데, 단순히 “코드 자동완성” 수준이 아니라 실제 개발 흐름 자체가 바뀌고 있다는 느낌을 받았다.이후 OpenAI의 Harness Engineering 글을 읽게 되었는데, 단순한 AI 활용 이야기가 아니라 앞으로 개발 환경이 어떤 방향으로 변할지에 대한 내용이 인상 깊었다.특히 흥미로웠던 부분은:AI 에이전트가 실제..
AWS 행사에서 느낀 AI 시대 개발자의 변화
·
회고
최근에(5월 21일) AWS 관련 행사에 다녀왔다. AWS Summit Seoul 2026은 2026년 5월 20일부터 21일까지 열렸다. 나는 20일은 시간이 안되서 가지 못했고 21일에만 참석을 했다.20일은 Industry Day로 금융 및 핀테크, SaaS 및 디지털 플랫폼, 피지컬 AI 등 으로 구성이 되었고21일은 AI Day로 에이전트 구축 도구, AI 인프라, 데이터 기반 AI, AI 모델 개발부터 관리형 AI 모델 활용 등 으로 구성이 되었다.해당 사진은 21일 기조 연설 사진이다.올해 본것 중에서 사람이 제일 많았던거 같다. 확실히 유명한 summit 이다보니까 사람들이 많이 오는거 같다.사진을 많이 찍는 편이 아니어서 사진이 많지는 않다.(사실 이것도 많이 찍은편이다) 다른 사진들도 ..
인덱스를 만들었는데 성능이 그대로인 이유
·
DB
MySQL 옵티마이저와 InnoDB 구조로 이해하는 성능의 진짜 원리 데이터베이스를 공부하다 보면 한 번쯤 이런 경험을 한다.인덱스를 만들었다.그런데 쿼리가 여전히 느리다.EXPLAIN을 보니 인덱스를 아예 안 쓰고 있다.이 글에서는 그 이유를 MySQL 구조 관점에서 단계적으로 정리할 예정이다.핵심은 단 하나다.인덱스는 자동으로 쓰이지 않는다. 선택하는 건 옵티마이저다.1 MySQL 전체 구조 먼저 이해하기MySQL은 크게 두 계층으로 나뉜다.1 SQL 계층ParserOptimizerExecutor2 Storage Engine 계층InnoDBMyISAM 등여기서 중요한 포인트는 다음이다.인덱스 구조는 스토리지 엔진 소속인덱스를 쓸지 말지 결정하는 건 옵티마이저이 두 개를 구분하지 않으면 인덱스가 왜 안..
클러스터 인덱스 vs 논클러스터 인덱스(랜덤 I/O 관점)
·
DB
인덱스를 이해하려면 “빠르다 / 느리다”가 아니라디스크가 어떻게 움직이는가 (I/O)를 이해해야 한다.1. 먼저: 랜덤 I/O vs 순차 I/O순차 I/O (Sequential I/O)디스크가 연속된 블록을 쭉 읽는 것한 번 읽기 시작하면 끊김 없이 진행매우 빠름예:1 → 2 → 3 → 4 → 5 랜덤 I/O (Random I/O)디스크가 여기저기 점프하며 읽는 것위치 이동(Seek) 비용 발생매우 느림예:1 → 5000 → 120 → 9800 → 45 인덱스 성능의 본질은 랜덤 I/O를 얼마나 줄이느냐에 있다.2. 클러스터 인덱스 (Clustered Index)구조테이블 데이터 자체가 인덱스 순서로 저장됨리프 노드 = 실제 데이터테이블당 1개만 가능InnoDB에서는 PK가 클러스터 인덱스예시SELECT..
인덱스란 무엇인가? (트리, B-Tree, B+Tree 개념 이해하기)
·
DB
1. 인덱스(Index)란 무엇인가?1) 한 줄 정의인덱스는 데이터를 빠르게 찾기 위한 자료구조이다.2) 책으로 비유해보자책에서 “경복궁”이라는 단어를 찾는다고 가정해보자.인덱스가 없다면1페이지부터 끝까지 전부 읽어야 함→ Full Scan인덱스가 있다면책 맨 뒤 색인(Index)에서 “경복궁” 찾음페이지 번호 확인바로 해당 페이지로 이동 예를 들어 이런 테이블이 있다고 해보자.idnameage1철수202영희253민수30.........여기서SELECT * FROM member WHERE age = 25;을 실행하면 어떻게 될까?인덱스가 없다면모든 행을 다 검사→ Full Table Scan데이터 100만 건이면 100만 번 비교age 컬럼에 인덱스가 있다면age 기준 정렬된 구조에서 바로 찾음→ 빠른..
Spring Boot에서 의존성 주입이 되는 전체 구조 정리
·
SPRINGBOOT
프로젝트를 하다보면은 가끔 헷갈리는 부분이이 있다. 바로 DI(의존성)부분이다. 사실 이 DI는 Bean이라는 부분과도 연결성이 있기 때문에 헷갈린김에 한번 정리를 할려고 한다. Spring Boot를 쓰다 보면 이런 코드를 자주 보게 된다.private final NearbyAttractionRepository nearbyAttractionRepository; 생성자를 직접 만들지 않았는데도, Spring이 알아서 Repository를 주입해준다.이걸 이해하려면 왜 의존성이 필요하고, DI가 뭔지, Spring 컨테이너와 Bean이 어떤 역할을 하는지를 먼저 알아야 한다.1. 의존성(Dependency)이란 무엇인가의존성이란 말은 어렵게 들리지만 의미는 단순하다.한 클래스가 일을 하기 위해 다른 객체가..
제어의 역전(IoC)과 DI 정리
·
SPRINGBOOT
Spring을 공부하다 보면 반드시 마주치는 두 개념이 있다.IoC (Inversion of Control, 제어의 역전)DI (Dependency Injection, 의존성 주입)이 둘은 비슷해 보이지만 같은 개념이 아니고, IoC가 더 큰 개념이고 DI는 그 구현 방법이다.이걸 정확히 이해하려면 “제어가 무엇인지”부터 짚어야 한다.1. 여기서 말하는 “제어(Control)”란 무엇인가객체지향 코드에서 말하는 제어는 다음을 의미한다.객체를 언제 생성할지객체를 어디서 생성할지객체를 누가 관리할지객체 간 의존 관계를 누가 연결할지즉,객체의 생명주기와 관계를 결정하는 권한이게 바로 “제어”다.2. IoC 이전: 제어가 개발자 코드에 있는 상태Spring을 쓰지 않는 전통적인 방식부터 보자.public cla..
백준 1260번 : DFS와 BFS
·
백준(Baekjoon)
https://www.acmicpc.net/problem/1260 문제 요약정점 N개, 간선 M개로 이루어진 무방향 그래프가 주어진다.시작 정점 V에서 출발해서DFS(깊이 우선 탐색) 결과를 출력하고BFS(너비 우선 탐색) 결과를 출력한다.단, 중요한 조건이 하나 있다.방문할 수 있는 정점이 여러 개면 “번호가 작은 정점부터” 방문한다.그래서 인접 리스트를 반드시 정렬해야 한다.핵심 아이디어 3가지1) 그래프 표현: 인접 리스트array[i] 안에 “정점 i와 연결된 정점들”을 저장한다.array = new ArrayList[n+1];for(int i=1; i();}간선이 (one, two)로 들어오면 무방향이니까 양쪽에 다 넣는다. array[one].add(two);array[two].add(one)..
백준 10828번 : 스택
·
백준(Baekjoon)
https://www.acmicpc.net/problem/108281. 문제 개요백준 10828번 – 스택 문제는 자료구조 스택(Stack) 의 기본 동작을 정확히 이해하고 있는지를 확인하는 문제다.정수 스택을 하나 만들고, 입력으로 주어지는 명령들을 순서대로 처리하면서 결과를 출력하면 된다.2. 스택(Stack) 개념 정리스택은 후입선출(LIFO, Last In First Out) 구조를 가진 자료구조다.접시를 쌓아두는 상황을 떠올리면 이해하기 쉽다.마지막에 넣은 값이 가장 먼저 나온다항상 맨 위 요소만 접근 가능2-1. 스택의 대표 연산push : 값 넣기pop : 맨 위 값 제거 + 반환top(peek) : 맨 위 값 확인 (제거하지 않음)size : 스택에 들어 있는 개수empty : 비어 있는지..
백준 9375번 : 패션왕 신해빈 [조합,해쉬맵]
·
백준(Baekjoon)
https://www.acmicpc.net/problem/9375문제 핵심옷을 여러 종류(카테고리)로 가지고 있을 때, 하루에 입을 수 있는 “조합(코디)”의 개수를 구하는 문제다.각 옷은 이름 + 종류(카테고리)로 주어진다.하루에 옷을 입을 때 규칙:같은 종류에서 최대 1개만 선택 가능어떤 종류는 아예 안 입을 수도 있음단, 아무것도 안 입는 경우(전부 안 고름) 는 제외왜 “곱하기”로 풀리나? (조합 원리)1) 종류별 선택 경우의 수예를 들어 종류가 2개라면:headgear가 2개면 선택은(모자1), (모자2), (안 입음) → 3가지eyewear가 1개면 선택은(안경1), (안 입음) → 2가지전체 조합은 서로 독립이니까총 경우의 수 = 3 × 2 = 6그런데 여기엔 “전부 안 입음”이 1개 포함된..