프로그래밍 기초편 · 지금 할 수 있는 것

AI가 쓴 코드에 복잡도 건강검진 한 번

알고리즘 편의 마무리 실전: 진짜 AI가 쓴 코드 한 조각을 들고 자체 보고 → 최적화 → 실측까지 건강검진 전 과정을 밟아 보세요. 투입량에 따라 세 단계 중 하나를 고르면 되고, 30분부터 시작할 수 있어요. 세 번째 단계까지 가면 AI가 말한 복잡도가 허풍이었는지 직접 눈으로 확인할 수 있어요.

난이도 하나 고르고 · 오늘 바로 손대세요
🥉

과제 1 · 자백시키기

AI가 자기 코드에 복잡도를 달게 하기

30분

AI가 방금 쓴 함수를 가져오세요(없으면 「두 리스트의 공통 원소 찾기」를 쓰게 하세요—열에 아홉은 먼저 O(n²) 버전을 줍니다). 아래 프롬프트를 던져서 빠르고 느린 걸 스스로 말하게 하세요.

방금 쓴 이 함수에 대해 복잡도 자체 점검을 하고, 쉬운 말로 답하세요: 1. 줄별(또는 루프 블록별)로 시간 복잡도를 달고, 각 곳에 왜 그런지 한 문장으로 설명하세요; 2. 병목 줄을 명확히 짚으세요: 함수 전체에서 가장 느린 줄/루프는? 왜 그곳인가요? 3. 요약: 전체 시간 복잡도와 공간 복잡도는 각각 얼마인가요; 4. 사람 말로 번역: 데이터량이 1천에서 100만으로 늘면 이 함수는 몇 배 느려지나요? 사용자 체감은 「무감」「잠깐 버벅」인가요, 아니면 「빙글빙글 돌다가 인생이 회의로워질 정도」인가요? 저는 초보예요. 용어를 쌓지 말고, 비유할 수 있으면 비유하세요.
완료 기준: 코드를 가리키며 「병목은 이 줄이에요. 중첩 루프/전부 스캔이라서요」라고 말할 수 있으면—병목 줄을 말할 수 있으면 이 단계는 졸업입니다.
🥈

과제 2 · 한 단계 최적화

속도를 요구하되, 대가를 말하게 하기

반나절

과제 1에 이어서: AI가 O(n²)라고 자체 보고했다면 O(n log n) 또는 O(n)으로 최적화하라고 하세요—핵심은 빨라지는 게 아니라 대가를 말하게 하는 거예요. ds-6을 끝낸 당신은 그 방안에서 「공간으로 시간을 산」 줄이 어디인지 짚을 수 있어야 해요.

방금 그 O(n²) 함수를 O(n log n) 또는 O(n)으로 최적화해 주세요. 요구사항: 1. 옛·새 두 버전 코드를 모두 남기고, 최적화 핵심 줄에 주석을 달세요; 2. 속도를 올린 수단이 무엇인지(정렬 후 이진 탐색? 해시 테이블로 교체?), 어느 알고리즘 사고에 해당하는지 말하세요; 3. 대가를 솔직히: 가독성이 나빠졌나요? 메모리는 얼마나 더 썼나요? 데이터량이 작을 때처럼 옛 버전이 더 나은 장면이 있나요? 4. 「공간으로 시간을 산」 방안이면 어느 줄인지, 얼마나 공간으로 얼마나 시간을 샀는지 명확히 짚으세요. 마지막으로 저를 시험하는 문제를 내세요: 새 버전에서 「공간으로 시간을 산」 곳이 어디인지 짚게 한 뒤, 답을 공개하세요.
완료 기준: AI가 낸 시험 문제를 맞히면—직접 「공간으로 시간을 산」 줄을 짚을 수 있다면 ds-6과 이 장이 진짜로 이어진 거예요.
🥇

과제 3 · 실측으로 허풍 깨기

실제 데이터로 허풍이 아닌지 검증하기

일주일

복잡도는 종이 위 추론이고, 소요 시간 곡선이 철증이에요. AI에게 벤치마크 스크립트를 쓰게 하고, 세 가지 규모 랜덤 데이터를 만들어 각각 시간을 재보세요. 최적화 전후 곡선이 얼마나 갈라지는지 눈으로 보고—자체 보고한 복잡도가 허풍이었는지도 함께 검사하세요.

옛·새 두 버전 함수용 벤치마크 스크립트를 작성해 주세요. 요구사항: 1. 세 단계 랜덤 테스트 데이터 생성: 1천 / 10만 / 1000만 건(1000만이 안 되면 100만으로 낮추고 이유를 설명해도 됩니다); 2. 각 단계마다 옛·새 버전을 3회씩 돌려 평균 소요 시간을 내고, 비교표 출력: 데이터량 | 옛 버전 소요 | 새 버전 소요 | 배수 차; 3. 스크립트는 바로 실행 가능해야 하고, 어떤 명령으로 돌리는지·대략 얼마나 기다리는지 알려 주세요; 4. 돌린 뒤 판단 도와주세요: 실측 소요 증가 추세가 앞서 자체 보고한 복잡도와 맞나요? 안 맞으면(예: O(n)이라 했는데 제곱처럼 늘면) 원인을 솔직히 분석하세요. 실측 결과를 다시 붙여 줄 테니, 곡선 해석은 당신이 해 주세요.
완료 기준: 세 단계 데이터량의 실측 소요 표가 있고, 「실측 곡선과 자체 보고 복잡도가 맞는가」에 답할 수 있으면—맞아도 허풍이 드러나도, 건강검진은 완료입니다.
🩺 건강검진 보고서 생성기 · 세 칸 채우면 단톡에 올릴 요약이 나와요
세 칸을 모두 채워야 보고서가 완전해요~
왜 꼭 실측이 필요할까요?AI의 복잡도 자체 보고는 대부분 맞지만, 「대부분」은 「매번」이 아니에요—라이브러리 함수 안에 숨은 정렬, 루프 안 몰래 하는 문자열 이어붙이기 같은 것들이 실제 곡선과 종이 위 추론을 어긋나게 만들 수 있어요. 벤치마크를 한 번이라도 돌려 본 사람은 「O(n)이라니까 O(n)이겠지」에 대해 직업적 의심을 유지하게 되고, 그게 바로 검수자가 가져야 할 자세예요.

✅ 이 강의가 전하고 싶은 것