본문 바로가기

upcurve661

제가 만든 AI가 처참히 패배했습니다 (그리고 그보다 짜릿한 순간은 없었습니다) 백엔드 개발자로서 제 세계는 주로 잘 설계된 API, 데이터 처리 프로세스, 그리고 서버의 로그를 중심으로 돌아갑니다. 하지만 최근 친구들과 떠난 1박 2일 여행에서, 이 세계를 완전히 뒤흔드는 경험을 했습니다. 딱 3시간만 투자해 열었던 작은 코드 배틀이 제게 던진 커다란 질문들에 대한 이야기입니다. 이번 해커톤의 기획자로서, 참가자들이 상대할 ‘고급’ 난이도의 내장 AI를 직접 만들었습니다. 솔직히, 이 AI가 너무 어려워서 참가자들이 모두 패배하면 어쩌나 하는 기우도 있었습니다. 모두가 제 '정답' 앞에서 좌절하는 그림을 내심 바랐던 걸지도 모릅니다. 하지만 역설적이게도 가장 짜릿했던 순간은, 바로 그 우려가 깨지는 순간이었습니다. 참가자들이 저마다의 기발한 전략으로 제가 만든 알고리즘의 허점을 파.. 2025. 8. 1.
O(n²) 너머 ②: 제자리 정렬의 해답, 힙 정렬(Heap Sort) 🚀 들어가며: 가장 중요한 데이터, 어떻게 항상 맨 앞에 둘 수 있을까?지난번 글에서 병합 정렬을 통해 '분할 정복'이라는 강력한 무기로 $O(n^2)$의 벽을 넘는 법을 다뤘다. 병합 정렬은 전체를 정렬하는 아주 효율적인 방법이다. https://upcurvewave.tistory.com/789 O(n²)의 벽을 넘어서기 위한 관문, 병합 정렬버블, 삽입, 선택 정렬을 직관적인 알고리즘이다. 이 알고리즘들은 직관적이지만 데이터가 많아지면 속도에 한계가 있다. 오늘은 그 한계를 뛰어넘는 병합 정렬(Merge Sort)에 대해 이야기 나눠보upcurvewave.tistory.com 그런데 잠시 다른 질문을 던져보면 어떨까? "전체 리스트를 매번 정렬하는 게 아니라, 그저 '가장 중요한 데이터 1개'만 .. 2025. 7. 24.
테스트 30분 → 3분: MSA 인증 시스템과 E2E 자동화 플랫폼 20시간 구축 썰 0. 이 글의 탄생 배경이 글은 "어떻게 하면 시스템 전체를 쉽게 테스트할까?"라는 질문에서 시작된 개인 프로젝트 기록입니다. 여러 서비스가 얽힌 복잡한 흐름을 검증하다 보면, 개발자와 QA의 경계는 모호해지고 반복 작업만 늘어납니다. 개인 프로젝트를 하는 과정에서도 만난 이 문제를 해결하고자 E2E 테스트 플랫폼을 만들어봤습니다. 레고 블록처럼 테스트를 조립하는 아이디어부터 실제 구현, 그리고 AI를 활용해 완성하기까지의 과정을 담았습니다. 상세한 과정과 후기부터 테스트와 개발 생산성에 대한 생각을 공유하고자 합니다. 1. "제 서비스에선 잘 되는데요?" - 마이크로서비스의 함정개발자 농담이라고 자주 회자되는 표현이 있습니다. "내 로컬에선 되는데?" 실제 개발 환경에서는 이 농담이 "내 서비스에선 잘.. 2025. 7. 13.
O(n²)의 벽을 넘어서기 위한 관문, 병합 정렬 버블, 삽입, 선택 정렬을 직관적인 알고리즘이다. 이 알고리즘들은 직관적이지만 데이터가 많아지면 속도에 한계가 있다. 오늘은 그 한계를 뛰어넘는 병합 정렬(Merge Sort)에 대해 이야기 나눠보고자 한다. 단순히 "병합 정렬은 빠르다"에서 그치지 않고, 우리가 배운 정렬들과 비교하며 "왜 빠른지", "어떤 대가를 치르는지" 함께 질문하고 답을 찾아가는 시간을 가져보자. 🚀 본격적인 탐구에 앞서: 접근법의 차이버블, 삽입, 선택 정렬의 공통점은 바로 배열의 처음부터 끝까지 차근차근 훑어보면서 제자리를 찾아주는 방식이라는 것이다. 마치 책상 위 엉망인 책들을 한 권씩 순서대로 꽂아 넣는 것처럼 말이다. 그런데 오늘 배울 병합 정렬은 생각의 방향이 완전히 다르다. 질문 1: 버블, 삽입, 선택 정렬은.. 2025. 7. 11.
프론트 제가 한번 세팅해봤는데요 (← 프론트 1도 모르는 백엔드 개발자) 이 글의 탄생 배경 혼자서 뚝딱거려 만든 프론트엔드 작은 토이 프로젝트가 있었습니다. 처음에는 그저 제 컴퓨터에서 돌아가기만 하면 만족이었죠. 하지만 이 프로젝트를 더 이상 혼자가 아닌, 다른 팀원과 함께 키워나가야 할 시점이 왔습니다. 그때부터 문제는 시작되었습니다. "제 PC에서는 되는데, 팀원 PC에서는 왜 안될까?""분명 같은 코드인데 왜 다른 결과가 나오지?" 이런 비효율적인 상황을 막기 위해, 백엔드 개발자인 제가 프론트엔드 '협업 환경'이라는 낯선 땅에 직접 발을 들이기로 결심했습니다. 이 글은 npm install조차 모르던 제가 수많은 에러와 질문을 거쳐, 팀을 위한 개발 환경의 기준을 세워나가기까지의 여정을 담은 기록입니다.1단계: 눈앞의 불부터 끄기처음 제 목표는 단순했습니다. 'Ve.. 2025. 7. 7.